赞
踩
第一步:写监控监控,脚本如下#!/bin/bash
############################################################
# $Name: zabbix_linux_plugins.sh
# $Version: v1.0
# $Function: zabbix plugins
# $Author: Jason Zhao
# $organization: www.unixhot.com
# $Create Date: 2014-08-10
# $Description: Monitor Linux Service Status
############################################################
tcp_status_fun(){
TCP_STAT=$1
#netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,state[key]}' > /tmp/netstat.tmp
ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > /tmp/netstat.tmp
TCP_STAT_VALUE=$(grep "$TCP_STAT" /tmp/netstat.tmp | cut -d ' ' -f2)
if [ -z $TCP_STAT_VALUE ];then
TCP_STAT_VALUE=0
fi
echo $TCP_STAT_VALUE
}
main(){
case $1 in
tcp_status)
tcp_status_fun $2;
;;
*)
echo $"Usage: $0 {tcp_status key}"
esac
}
main $1 $2 $3
第二步:把脚本放在需要监控的服务器上(即zabbix的客户端),并且在zabbix客户端配置文件中应用它。[root@localhost zabbix_agent.conf.d]# ll
total 4
-rwxr-xr-x 1 root root 2776 May 2 12:47 zabbix_linux_plugin.sh
[root@localhost zabbix_agent.conf.d]# pwd
/usr/local/zabbix/etc/zabbix_agent.conf.d
[root@localhost zabbix_agent.conf.d]#
[root@localhost zabbix_agent.conf.d]# egrep -v '^$|#' ../zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.10.11
ServerActive=127.0.0.1
Hostname=192.168.10.12
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UserParameter=mysql_alive, mysqladmin -uroot -S /var/lib/mysql/mysql.sock ping |grep -c alive
###下面这一行就是引用刚才的监控脚本
UserParameter=linux_status[*],/usr/local/zabbix/etc/zabbix_agent.conf.d/zabbix_linux_plugin.sh "$1" "$2"
[root@localhost zabbix_agent.conf.d]#
第三步:重启zabbix客户端,并且在zabbix服务器中测试,是否能够获取这个key[root@localhost zabbix_agent.conf.d]# /etc/init.d/zabbix_agentd restart
Shutting down zabbix_agentd: [ OK ]
Starting zabbix_agentd: [ OK ]
[root@localhost zabbix_agent.conf.d]#
[root@zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.10.12 -k linux_status[tcp_status,ESTAB]
2
[root@zabbix ~]#
第四部:在zabbx服务端的web中添加对于tcp链接数的监控项目。
主要就是注意键值的编写:键值中的键linux_status[tcp_status,ESTAB] ,其中tcp_status也就是$1,ESTAB也就是$2。[root@localhost zabbix_agent.conf.d]# egrep -v '^$|#' ../zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.10.11
ServerActive=127.0.0.1
Hostname=192.168.10.12
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UserParameter=mysql_alive, mysqladmin -uroot -S /var/lib/mysql/mysql.sock ping |grep -c alive
UserParameter=linux_status[*],/usr/local/zabbix/etc/zabbix_agent.conf.d/zabbix_linux_plugin.sh "$1" "$2"
重复添加tcp的11个监控状态,仅仅需要修改上面图片中的监控名称,已经键值即可。
第五步:添加监控图像
完成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。