0
点赞
收藏
分享

微信扫一扫

zabbix php swoft进程监控

炽凤亮尧 2022-02-10 阅读 84

首先自动发现脚本

#cat swoft_low_discovery.sh 
#!/bin/bash
swoft() {
            #list=`sudo /usr/bin/netstat  -tulnp|grep -w swoft|grep -v php-fpm|grep -v grep |awk '{print $4}'|awk -F: '{print $NF}'`
	    list=`sudo /usr/bin/netstat  -tulnp|grep -Ew 'swoft|usercenter|user-center|common-api'|grep -v php-fpm|grep -v grep |awk '{print $4}'|awk -F: '{print $NF}'`
            tail_line=`echo $list|awk '{print $NF}'`
            printf '{\n'
            printf '\t"data":[\n'
            for key in $list
            do
	    	item_pid=`sudo /usr/bin/netstat  -tulnp|grep -Ew 'swoft|usercenter|user-center|common-api'|grep -v php-fpm|grep -w "$key"|grep -v grep |awk '{print $7}'|awk -F/ '{print $1}'`
		item=`sudo /usr/bin/ps aux|grep -w "$item_pid"|grep -v php-fpm|grep -v grep |awk -F/ '{print $(NF-3)}'`
            	printf '\t {\n'
                if [ "$key" != "$tail_line" ];then
                	printf "\t\t\t\"{#SERVICEPORT}\":\"$item-${key}\"},\n"
                else
                        printf "\t\t\t\"{#SERVICEPORT}\":\"$item-${key}\"}\n"
                fi
             done
             printf '\t ]\n'
             printf '}\n'
}
$1

item的key的自定义的脚本

#cat swoft_monitor.sh 
#!/bin/bash
PORT=`echo $1|awk -F- '{print $2}'`
IMTEM_NUM=`sudo /usr/bin/netstat -tulnp|grep -w "$PORT"|grep -v grep |wc -l`
if [ "$IMTEM_NUM" == 0 ];then
	echo 0;
else
	echo 1;
fi

机器的sudo设置

#cat /etc/sudoers
zabbix ALL=(root) NOPASSWD:/usr/bin/netstat,/usr/bin/ps
zabbix ALL=(ALL:ALL) NOPASSWD: /soft/nodejs/bin/pm2-zabbix

zabbix配置文件设置

#cat zabbix_agentd.conf.d/userparameter_swoft.conf 
UserParameter=swoft_port.discovery[*], sh /etc/zabbix/zabbix_scripts/swoft_low_discovery.sh $1
UserParameter=swoft_port.status[*], /etc/zabbix/zabbix_scripts/swoft_monitor.sh $1

zabbix控制台配置

最后把对应机器应用这个模板即可

举报

相关推荐

0 条评论