zabbix3.0.4使用shell脚本和zabbix自带模板两种方法添加对指定进程和端口的监控

zabbix3.0.4添加对进程的监控:

方法一:通过自定义命令进行监控

主要思路:

通过 ps -ef|grep sdk-push-1.0.0.jar |grep -v grep|wc -l 这个命令来判断进程sdk-push是否运行,如果不等于1则表示进程挂了,触发报警

被监控的zabbix-agent端:
添加监控参数:
# vim /etc/zabbix/zabbix_agentd.conf

UserParameter=sdk_push,ps -ef|grep sdk-push-1.0.0.jar |grep -v grep|wc -l


重启zabbix-agent使配置生效

service zabbix-agent restart


zabbix-server测试是否ok,当端口不是默认的10050时,需要添加-p指定端口:
zabbix_get -s 1.1.1.1 -p 20050 -k sdk_push

在zabbix的web页面添加对应的监控:

添加监控项item
Confuguration --> Hosts --> 找到对应的主机,点开 Items --> Create item


创建对该监控项的触发器
Confuguration --> Hosts --> 找到对应的主机,点开 Triggers --> Create trigger


当然还可以定义动作action来对应用进行重新启动,如果应用较为复杂不建议这么做


最后不要忘记测试,可以将进程停止看是否会报警



方法二:通过zabbix自带的模板对指定进程进行监控



以下是对elasticsearch进程的监控配置,key中的参数说明,第一个参数是进程名字,没必要填写,填了反而会使监控不太准确,第二个参数是运行进程的用户名,第三个为进程的状态 ,包括:all (default), run, sleep, zomb ,第四个参数用来指定进程名中包含的字符,对进程进行过滤。

items --> create item
Name: amount of es
Type: Zabbix agent
Key: proc.num[,yunva,all,elasticsearch]
Application: process monitor


Key: proc.num[,yunva,all,elasticsearch] 中的值yunva要根据实际情况填写(运行elasticsearch程序的用户)

注意Type要选择Type: Zabbix agent 因为Type: Zabbix agent(active) 模式不能执行远程命令

3.配置好监控项后,添加触发器,如下触发器表示最后两次的值都是0,说明没有elasticsearch进程在运行,则出发报警。
trggiers --> create trigger

Name: process of es is down
Expression: {hostname:proc.num[,yunva,all,elasticsearch].max(#2)}=0




通过自带模板对端口进行监控

添加item:
name: yuyin file port 9999
Type: zabbix agent
key : net.tcp.listen[9999]



trigger:

Name: yuyin port 9999 is down
Expression: {Template OS Linux_yuyin_file_aiwaya:net.tcp.listen[9999].max(#2)}=0



原文地址:https://www.cnblogs.com/reblue520/p/6784511.html