编写python3脚本监控Nginx服务状态

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写python3脚本监控Nginx服务状态相关的知识,希望对你有一定的参考价值。

nginx自定义json格式日志

#注意:此指令只支持http块,不支持server块
  log_format access_json '{"@timestamp":"$time_iso8601",'
		'"host":"$server_addr",'
		'"clientip":"$remote_addr",'
		'"size":$body_bytes_sent,'
		'"responsetime":$request_time,' #总的处理时间
		'"upstreamtime":"$upstream_response_time",'
		'"upstreamhost":"$upstream_addr",' #后端应用服务器处理时间
		'"http_host":"$host",'
		'"uri":"$uri",'
		'"xff":"$http_x_forwarded_for",'
		'"referer":"$http_referer",'
		'"tcp_xff":"$proxy_protocol_addr",'
		'"http_user_agent":"$http_user_agent",'
		'"status":"$status"}';
access_log /apps/nginx/logs/access_json.log access_json;

编写py3脚本实现json 格式的日志访问统计

#python3
#!/usr/bin/env python3
#coding:utf-8
status_200= []
status_404= []
with open("access_json.log") as f:
	for line in f.readlines():
		line = eval(line)
			if line.get("status") == "200":
				status_200.append(line.get)
			elif line.get("status") == "404":
				status_404.append(line.get)
			else:
				print("状态码 ERROR")
				print((line.get("clientip")))
f.close()
print("状态码200的有--:",len(status_200))
print("状态码404的有--:",len(status_404))

以上是关于编写python3脚本监控Nginx服务状态的主要内容,如果未能解决你的问题,请参考以下文章

zabbix监控nginx状态

zabbix添加nginx监控

脚本自动部署构架集群和监控状态

zabbix3.0.4监控nginx服务

Python3 - 监控CentOS磁盘空间&预警发送邮件

zabbix监控nginx状态端口不监听触发报警