Zabbix-使用自动发现,实现对应用进程的监控
说明
在维护工作中,对应用进程的监控是必不可少的一部分,当服务器规模庞大,应用进程种类繁多时,逐个的添加进程监控会让人很恼火。那如何能快速、有效的在各类服务器中,对应用进程实现准确的监控呢?本文将从思路、过程、验证三个维度,一步步的举例完成。
思路
一,梳理需要监控哪些进程
二,编写进程自动发现脚本
三,编写获取进程数脚本
四,修改agent配置文件
五,创建监控模板
六,验证
一,梳理进程
本文将以app_mon和app_mon_master进程举例,因为在工作中经常遇到在同一服务器上,有名称相似的进程。当grep一个进程时,会将另外一个进程也检索出来,这种情况会对判断进程是否存在带来很大干扰,为此总结分享,有效闭坑。
[root@localhost scripts]# ps -ef | grep app_mon
root 13125 12456 0 12:50 pts/1 00:00:00 sh /apps/soft/proc_test/app_mon
root 13136 12456 0 12:50 pts/1 00:00:00 sh /apps/soft/proc_test/app_mon_master
root 16316 15549 0 14:56 pts/3 00:00:00 grep --color=auto app_mon
二,进程自动发现脚本
脚本运行在zabbix agent端。进程名当做参数传入脚本,判断在服务器中是否存在该进程,若存在,将会检索出进程的绝对路径,并以[{#NAME:绝对路径/进程名},{#NAME:绝对路径/进程名},…]的方式显示,并交个zabbix server,用于进程的自动发现。
[root@ys~]# /etc/zabbix/scripts/find_proc_list.sh
#!/bin/bash
fun_check()
{
data=""
for x in $@
#$@代表所有位置参数
do
data="${data}{
\"{#NAME}