监控nginx服务,实现nginx宕机,zabbix自动重启其服务,如若重启失败,则邮件报警。

这篇博客详细介绍了如何在被控端192.168.1.37上安装Zabbix 4.0 Agent,配置文件以监控Nginx服务状态,并通过脚本获取各项指标。还涵盖了启动agent、添加主机到Web界面、创建触发器、邮件报警设置以及自动重启服务的步骤。
摘要由CSDN通过智能技术生成

Zabbix服务器:192.168.1.36;
被控端:192.168.1.37

#在被控端:192.168.1.37安装agent

yum install zabbix40-agent -y

#修改zabbix-agent配置文件:

[root@localhost ~]# vim /etc/zabbix_agent.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.36
Hostname=192.168.1.36
UserParameter=nginx.status[*],bash /data/sh/nginx_status.sh $1	      # 指定监控项及获取值的方式

#创建脚本

vim /data/sh/nginx_status.sh
#!/bin/bash
#######################
function active {
curl 192.168.1.37/status 2>/dev/null |awk 'NR==1{print $NF}'
}
function accepts {
curl 192.168.1.37/status 2>/dev/null | awk 'NR==3{print $1}'
}
function handled {
curl 192.168.1.37/status 2>/dev/null | awk 'NR==3{print $2}'
}
function requests {
curl 192.168.1.37/status 2>/dev/null | awk 'NR==3{print $3}'
} 
function reading {
curl 192.168.1.37/status 2>/dev/null | awk 'NR==4{print $2}'
} 
function writing {
curl 192.168.1.37/status 2>/dev/null | awk 'NR==4{print $4}'
}
function waiting {
curl 192.168.1.37/status 2>/dev/null | awk 'NR==4{print $NF}'
}
$1

#启动agent服务

systemctl start zabbix-agent

#在web界面添加agent主机
在这里插入图片描述
在这里插入图片描述
#添加监控项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建触发器:
在这里插入图片描述
在这里插入图片描述
在192.168.1.37关闭nginx服务,zabbix就会报问题了
在这里插入图片描述
自动邮件报警:
#添加接收报警的邮箱:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#设置发送报警邮件的邮箱:
在这里插入图片描述
在这里插入图片描述
#添加动作:(发送邮件和自动重启 nginx服务)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:在agent192.168.1.37关闭ngnix:
systemctl stop nginx
在这里插入图片描述
在这里插入图片描述
可以看到监听端口变成0了,问题中也出现信息了。在这里插入图片描述
邮件也收到了。
在这里插入图片描述
Zabbix自动发送了邮件,并重启了服务。在被控端查看,nginx服务已经启动:

[root@localhost sh]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      16419/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      900/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      988/master          
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      10120/zabbix_agentd 
tcp6       0      0 :::80                   :::*                    LISTEN      16419/nginx: master 
tcp6       0      0 :::22                   :::*                    LISTEN      900/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      988/master          
tcp6       0      0 :::10050                :::*                    LISTEN      10120/zabbix_agentd
实现监控Nginx发送邮件报警,需要进行以下步骤: 1. 在Nginx服务器上安装zabbix-agent; 2. 在zabbix服务器上配置Nginx监控项; 3. 在zabbix服务器上设置触发器,并将触发器关联到操作; 4. 在zabbix服务器上配置邮件报警操作。 具体步骤如下: 1. 在Nginx服务器上安装zabbix-agent 在Nginx服务器上执行以下命令安装zabbix-agent: ``` sudo apt-get update sudo apt-get install zabbix-agent ``` 然后编辑zabbix-agent的配置文件`/etc/zabbix/zabbix_agentd.conf`,修改以下参数: ``` Server=<zabbix_server_ip> ServerActive=<zabbix_server_ip> Hostname=<nginx_server_hostname> ``` 其中,`<zabbix_server_ip>`为zabbix服务器的IP地址,`<nginx_server_hostname>`为Nginx服务器的主机名。 修改完成后,重启zabbix-agent服务: ``` sudo systemctl restart zabbix-agent ``` 2. 在zabbix服务器上配置Nginx监控项 在zabbix服务器上进入Web界面,在“配置”->“主机”中添加Nginx服务器,并在“模板”中选择“Template Nginx”。 然后在“配置”->“模板”中找到“Template Nginx”,进入模板详情页,在“应用”中添加一个新的应用,名称为“Nginx”。 在“Nginx”应用中添加一个新的监控项,名称为“Nginx status”,键值为“nginx.status[active]”。 保存配置后,等待一段时间,zabbix服务器自动发现Nginx服务器,并开始监控Nginx状态。 3. 在zabbix服务器上设置触发器,并将触发器关联到操作 在“配置”->“触发器”中添加一个新的触发器,使用以下表达式: ``` {<nginx_server_hostname>:nginx.status[active].last()}=0 ``` 其中,`<nginx_server_hostname>`为Nginx服务器的主机名。 保存触发器后,进入触发器详情页,在“操作”中添加一个新的操作,选择“发送邮件”为动作。 4. 在zabbix服务器上配置邮件报警操作 在“管理”->“报警媒介类型”中添加一个新的媒介类型,类型为“Email”,并填写SMTP服务器、端口、用户名、密码等信息。 然后在“配置”->“动作”中编辑之前创建的触发器操作,选择“默认收件人”为收件人,并在“消息”中填写邮件内容。 保存配置后,当Nginx状态异常时,zabbix服务器自动发送邮件报警
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值