热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

zabbixtemplate自动发现端口

环境介绍:系统版本:catetccentos-releaseCentOSLinuxrelease7.6.1810(Core)zabbix版本

环境介绍:

系统版本: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&#61;0;i<$length;i&#43;&#43;))doprintf &#39;\n\t\t{&#39;printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"if [ $i -lt $[$length-1] ];thenprintf &#39;,&#39;fidone
printf  "\n\t]\n"
printf "}\n"

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

PidFile&#61;/var/run/zabbix/zabbix_agentd.pid
LogFile&#61;/var/log/zabbix/zabbix_agentd.log
LogFileSize&#61;0
Server&#61;127.0.0.1
ServerActive&#61;127.0.0.1
Hostname&#61;Zabbix server
Include&#61;/etc/zabbix/zabbix_agentd.d/*.conf
UserParameter&#61;testkey,who | wc -l # 这是testuser登陆人数的key
UserParameter&#61;tcp_state[*],netstat -ant|grep -c $1 # 这是tcp九种状态的被动key
UserParameter&#61;testpasswd,md5sum /etc/shadow # 监控文件变化
UserParameter&#61;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 

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

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

chmod 660 /etc/sudoers
echo "zabbix ALL&#61;(ALL) NOPASSWD: ALL" >> /etc/sudoers

 


推荐阅读
author-avatar
PHPdudu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有