提交nginx监控模块

master
newrain 3 years ago
parent 1f59beb56b
commit 3427b1f470
  1. 3
      README.md
  2. 5
      zabbix_agentd.d/nginx.conf
  3. 2
      zabbix_agentd.d/script/dbMonitor.sh
  4. 51
      zabbix_agentd.d/script/nginxMonitor.sh

@ -5,7 +5,7 @@ zabbix 监控脚本
#### 软件架构 #### 软件架构
软件架构说明 软件架构说明
centos 7
#### 安装教程 #### 安装教程
@ -17,3 +17,4 @@ zabbix 监控脚本
2. 将代码放置在/etc/zabbix/目录下 2. 将代码放置在/etc/zabbix/目录下
3. 设置执行权限 3. 设置执行权限
4. zabbix客户端导入xml文件 4. zabbix客户端导入xml文件
5. 客户端需安装工具 net-tools,bc

@ -0,0 +1,5 @@
UserParameter=nginxCheck.HeartBeat,sh /etc/zabbix/zabbix_agentd.d/script/nginxMonitor.sh Heartbeat
UserParameter=nginxCheck.ResultCode,sh /etc/zabbix/zabbix_agentd.d/script/nginxMonitor.sh ResultCode
UserParameter=nginxCheck.WbConn,sh /etc/zabbix/zabbix_agentd.d/script/nginxMonitor.sh WbConn
UserParameter=nginxCheck.Request[*],sh /etc/zabbix/zabbix_agentd.d/script/nginxMonitor.sh Request $1
UserParameter=nginxCheck.RequestPath,sh /etc/zabbix/zabbix_agentd.d/script/nginxMonitor.sh RequestPath

@ -1,6 +1,6 @@
#!/usr/bin/bash #!/usr/bin/bash
# os check # db check
# build 2021-06-16 # build 2021-06-16
replPasswd=123456 # zabbix传参 replPasswd=123456 # zabbix传参

@ -0,0 +1,51 @@
#!/usr/bin/bash
# nginx check
# build 2021-06-20
accessLog=/var/log/nginx/access.log
# 1、web服务器是否存活 #返回数值,并添加触发器报警
function Heartbeat() {
curl 127.0.0.1 &>/dev/null
[ $? -ne 0 ] && echo 0 || echo 1
}
# 2、web响应是否正常 #返回数值,并添加触发器报警
function ResultCode() {
rcode=$(curl -s -I 127.0.0.1 | awk 'NR==1{print $2}')
echo $rcode
}
# 3、当前正在处理的请求 #返回数值
function WbConn() {
s=$(netstat -n | grep ':80' | awk '/^tcp/ {++S[$NF]} END {for(a in S) print S[a]}')
a=0
for i in $s; do
a=$(($a + $i))
done
echo $a
}
# 5、pv、uv #返回数值
# 7、访问最多的ip地址 #返回字符串
function Request() {
if [[ $1 == 'pv' || $1 == 'PV' ]]; then
num=$(awk '{print $1}' $accessLog | wc -l)
elif [[ $1 == 'uv' || $1 == 'UV' ]]; then
num=$(awk '{print $1}' $accessLog | sort -r | uniq | wc -l)
elif [[ $1 == 'top10' || $1 == 'TOP10' ]]; then
num=$(awk '{print $1}' $accessLog | sort -r | uniq -c | sort -n -r | head -10)
else
num=-1
fi
echo $num
}
#6、访问最多的页面 #返回字符串
function RequestPath() {
rpath=$(awk '{print $7}' /var/log/nginx/access.log | sort -r | uniq -c | sort -n -r | head -1)
echo $rpath
}
eval "$1 $2"
Loading…
Cancel
Save