版权声明:欢迎转载,转载请注明出处 https://blog.csdn.net/miss1181248983/article/details/84664377
1. 配置主动模式
通常情况下,我们不需要监控服务的具体运行状态,只需要知道服务在运行、端口在监听即可。我们可以通过脚本自定义键值来实现目的,但相比于Zabbix自带的键值来说显得稍微麻烦些。
1.1 设置主动模式
这里采用主动模式,有两个好处:
1. 不受客户端防火墙限制;
2. 可以减轻zabbix服务端的压力。
- 编辑zabbix-agent配置文件:
vim /etc/zabbix/zabbix_agent.conf
Server=192.168.1.254 #被动模式的serverip地址,如果设置纯被动模式,可以注释掉这行
ServerActive=192.168.1.254 #主动模式的serverip地址
StartAgents=3 #打开主动模式,0表示纯主动模式,纯主动模式下不会监听任何tcp端口
纯主动模式下,zabbix-agent 不会监听10050端口。而且,在web界面配置监控项时,如果设置为Zabbix客户端
,监控项也是不会起作用的,必须设置为Zabbix客户端(主动式)
。
上面,指定了主、被动模式下server端ip地址,而且进行被动检查的agent分支进程设置为3,所以是主、被动模式共存。
1.2 设置监控端口
倘若一个服务监听的端口没了,那这个服务必然宕掉了,我们可以通过监控端口是否存在来判断服务是否在运行。
- 先创建模板。
配置
→模板
→创建模板
填好后,切换到宏
页面,添加宏
- 再创建监控项。
配置
→模板
→Port and Proc monitor
→监控项
→创建监控项
- 再创建触发器。还在
Port and Proc monitor
模板下面,触发器
→新建触发器
- 再创建图形。
图形
→创建图形
- 测试监控效果:
nginx服务正在运行,正在监听80端口
systemctl stop nginx #关闭nginx服务
[root@server3 home]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1170/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 10312/zabbix_agentd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 950/sshd
tcp6 0 0 127.0.0.1:7001 :::* LISTEN 14274/java
tcp6 0 0 :::12345 :::* LISTEN 14274/java
tcp6 0 0 ::1:25 :::* LISTEN 1170/master
tcp6 0 0 :::40607 :::* LISTEN 14274/java
tcp6 0 0 :::10050 :::* LISTEN 10312/zabbix_agentd
tcp6 0 0 :::8081 :::* LISTEN 14274/java
tcp6 0 0 :::45105 :::* LISTEN 14274/java
tcp6 0 0 :::22 :::* LISTEN 950/sshd
可以看到已经显示为0,收到邮件告警
systemctl start nginx
收到恢复告警
这样就实现了对端口的监控,而具体的端口我们是可以在宏
那里定义的。
1.3 设置监控进程
监控了端口还不够,我们还要根据进程名来监控具体的进程,由此来判断业务服务是否在运行。具体步骤与上面类似,键值有改变。
- 在
Port and Proc monitor
模板页面,添加宏
- 创建监控项。
监控项
→创建监控项
- 创建触发器。
触发器
→创建触发器
- 创建图形。
图形
→创建图形
- 测试监控结果:
manager stop #自定义的java服务,关闭它
可以看到已经显示为0,收到邮件告警
manager start
收到恢复告警
这样就实现对具体进程的监控。
以上都是对服务的简单监控,如果监控需求不用涉及到服务具体的运行状态,那这样就可以满足需求。