zabbix-template自动发现端口

环境介绍:

系统版本:cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

zabbix版本: rpm -qa | grep zabbix
zabbix-get-4.0.27-1.el7.x86_64
zabbix-web-mysql-4.0.27-1.el7.noarch
zabbix-web-4.0.27-1.el7.noarch
zabbix-release-4.0-2.el7.noarch
zabbix-server-mysql-4.0.27-1.el7.x86_64
zabbix-agent-4.0.27-1.el7.x86_64
[root@ansible-kvm zabbix]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

 

操作步骤:

1 写脚本 ->  2 配置zabbix_agent.conf并重启agent -> 3 zabbix_get测试 ->  4 web界面添加监控项

1 脚本:cat dis_tcpport.sh 
 

#!/bin/bash
#portarray=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
portarray=(`sudo netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
length=${#portarray[@]}
printf "{\n"
printf  '\t'"\"data\":["
for ((i=0;i<$length;i++))
  do
     printf '\n\t\t{'
     printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"
     if [ $i -lt $[$length-1] ];then
                printf ','
     fi
  done
printf  "\n\t]\n"
printf "}\n"

2    #     cat /etc/zabbix/zabbix_agentd.conf | grep -v ^$ | grep -v ^#

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UserParameter=testkey,who | wc -l  # 这是testuser登陆人数的key
UserParameter=tcp_state[*],netstat -ant|grep -c $1  # 这是tcp九种状态的被动key
UserParameter=testpasswd,md5sum /etc/shadow   # 监控文件变化
UserParameter=tcpportlisten,/usr/lib/zabbix/dis_tcpport.sh "$1"  # 添加此项

3 测试 得到下面数据即可  主机 #TCP_PORT  这个key 后面会用到

zabbix_get -s 127.0.0.1 -p 10050 -k tcpportlisten

{
    "data":[
        {"{#TCP_PORT}":"10050"},
        {"{#TCP_PORT}":"10051"},
        {"{#TCP_PORT}":"111"},
        {"{#TCP_PORT}":"21"},
        {"{#TCP_PORT}":"22"},
      ...
        {"{#TCP_PORT}":"9100"},
        {"{#TCP_PORT}":"9200"},
        {"{#TCP_PORT}":"9300"},
        {"{#TCP_PORT}":"9600"}
    ]
}
4 模板添加  先添加模板和  自动发现规则  ---  然后是item  -----  然后是 trigger 

# 上面的截图 = 1不对 应该是0  另外 报警里面加上 #TCP_PORT的变量

#   yinweinetstat 普通用户权限不够看所有端口,会提示权限不够 记得给 zabbix提权 

chmod 660 /etc/sudoers
echo "zabbix  ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值