第一步:写监控监控,脚本如下

#!/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]# lltotal 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.confLogFile=/tmp/zabbix_agentd.logServer=192.168.10.11ServerActive=127.0.0.1Hostname=192.168.10.12Include=/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 restartShutting 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.confLogFile=/tmp/zabbix_agentd.logServer=192.168.10.11ServerActive=127.0.0.1Hostname=192.168.10.12Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/UserParameter=mysql_alive, mysqladmin -uroot  -S /var/lib/mysql/mysql.sock ping |grep -c aliveUserParameter=linux_status[*],/usr/local/zabbix/etc/zabbix_agent.conf.d/zabbix_linux_plugin.sh "$1" "$2"

重复添加tcp的11个监控状态,仅仅需要修改上面图片中的监控名称,已经键值即可。

第五步:添加监控图像

完成