zabbix 自动发现监控端口(六)

一、配置脚本,将脚本分发到各个minion端

1.1.脚本内容

vim discover_port.sh 

#!/bin/bash
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"

1.2.本地测试脚本

# /bin/bash /usr/local/zabbix-agent/script/discover_port.sh
{
        "data":[
                {"{#TCP_PORT}":"10050"},
                {"{#TCP_PORT}":"22"},
                {"{#TCP_PORT}":"25"},
                {"{#TCP_PORT}":"443"},
                {"{#TCP_PORT}":"80"},
                {"{#TCP_PORT}":"9008"},
                {"{#TCP_PORT}":"9012"},
                {"{#TCP_PORT}":"9083"},
                {"{#TCP_PORT}":"9085"},
                {"{#TCP_PORT}":"9088"},
                {"{#TCP_PORT}":"9089"}
        ]
}

二、修改zabbix客户端配置文件,增加参数

2.1.修改配置文件,增加参数

# vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf
#增加如下
UserParameter=tcpportlisten,/bin/bash /usr/local/zabbix-agent/script/discover_port.sh "$1"

2.2.重启zabbix客户端

# /etc/init.d/zabbix_agentd restart                 
Shutting down zabbix_agentd:                               [  OK  ]
Starting zabbix_agentd:                                    [  OK  ]

三、服务端测试连通

3.1.测试通信

#  /usr/local/zabbix/bin/zabbix_get -s 10.27.182.76 -k tcpportlisten            
{
        "data":[
                {"{#TCP_PORT}":"10050"},
                {"{#TCP_PORT}":"22"},
                {"{#TCP_PORT}":"25"},
                {"{#TCP_PORT}":"443"},
                {"{#TCP_PORT}":"80"},
                {"{#TCP_PORT}":"9008"},
                {"{#TCP_PORT}":"9012"},
                {"{#TCP_PORT}":"9083"},
                {"{#TCP_PORT}":"9085"},
                {"{#TCP_PORT}":"9088"},
                {"{#TCP_PORT}":"9089"}
        ]
}

四、添加自动发现规则

4.1.创建发现规则

4.2.配置发现规则名称

4.3.配置检测规则

4.4.配置触发器

五、错误处理

5.1.服务器测试与客户端通信时:

zabbix sudo: no tty present and no askpass program specified

解决:

zabbix客户端修改zabbix_agentd.conf:

AllowRoot=1

重启客户端:

# /etc/init.d/zabbix_agentd restart

脚本添加权限及修改属主:

# chown zabbix. discover_port.sh
# chmod +x discover_port.sh

5.2.测试通信报错2:

zabbix sudo: sorry, you must have a tty to run sudo

解决:

vi /etc/sudoers (最好用visudo命令)
注释掉 Default requiretty 一行
#Default requiretty

原文地址:http://blog.51cto.com/ckl893/2104864

时间: 2024-11-25 23:21:22

zabbix 自动发现监控端口(六)的相关文章

zabbix自动发现监控多台mysql

1: 前言 由于前面写的博客,zabbix自动发现监控redis.zabbix自动发现监控mongo这两篇博客虽然都能自动发现并监控,但是由于每个zabbix_agentd都得配置,监控起来非常不方便,因此,再做了个模板,能够自动发现并监控多台mysql.这个方法在监控mongo.redis或者mysql主从等时候也都适用. 2: 在zabbix_agentd下编写自动发现并监控多台mysql的脚本,脚本如下: #!/bin/sh #zhuangweihong 20160512 zabbix d

zabbix自动发现监控mongo

1: zabbix自动发现mongo监控的端口,并返回zabbix_server需要的格式,脚本部署在zabbix_agent上,路径为/usr/local/zabbix/zabbix_discover_mongo.sh,脚本内容如下: #!/bin/sh #zhuangweihong 20160419 zabbix discover mysql res=`sudo ss -tulnp|grep mongo|grep -v 28107|awk '{print $(NF-2)}'|awk -F':

使用 zabbix 自动发现监控 MySQL

介绍 使用 zabbix 的 low-level 自动发现功能完成单主机多端口的监控, 详见low_level_discovery, 整体上监控类似 percona 的 zabbix 监控插件, 不过使用 mymonitor.pl 替换了脚本 ss_get_mysql_stats.php, 而且配置有点不同. 具体代码及配置详见: zabbix_mysql 1. 结构说明: zabbix_mysql/ |-- README.md |-- bin | |-- get_mysql_stats_wra

zabbix自动发现使用中端口并图形展示各个端口连接数

zabbix自动发现当前服务器使用中的端口并图形展示各个端口连接数 1.修改配置文件 vi /data/server/zabbix_agent/conf/zabbix_agentd.conf UserParameter=tcp.port.discovery,/data/server/zabbix/bin/discover_tcp_port_count tcp_port_discovery UserParameter=tcp.port.count[*],/data/server/zabbix/bi

Zabbix自动发现监控Mysql数据库

结果图展现 先让大家看下结果图,Zabbix通过自动发现监控Mysql每秒的增.删.改.查,通过自动发现监控Mysql的流入流出流量,结果图如下: Mysql给Zabbix监控的权限 首先创建一个监控用户,usage on为比较小的权限,较安全.sql如下 grant usage on *.* to 'monitor'@'127.0.0.1' identified by 'shijiangepwd'; flush privileges; 测试监控用户是否生效,测试结果如下 mysql -umon

zabbix自动发现mysql端口并监控

一.需求: 因为我们是游戏业务,要用到mysql,一个服务器上面跑多个mysql实例也是很正常.如果单独手动一台台修改agent.conf,添加web监控,太费时费力.所以就想的要用zabbix 的自动发现来监控 二.配置Agent 1.编写自动发现端口脚本 [[email protected] ~]# cat /etc/zabbix/alertscripts/zabbix_discovery_mysql.sh  #!/bin/bash mysql() {             port=($

zabbix自动发现监控redis

1: 在zabbix_agentd端编写自动发现的脚本,主要是自动发现redis的监控端口,脚本如下: vim /usr/local/zabbix/zabbix_discover_redis.sh #!/bin/sh #zhuangweihong 20160419 zabbix discover redis res=`sudo ss -tulnp|grep redis|awk '{print $(NF-2)}'|awk -F':' '{print $(NF)}'|sort -u` if [[ -

zabbix自动发现监控tomcat健康页面

一.背景 公司系统平台有10几个tomcat服务,由于需要服务保持全年无间断服务,特在tomcat中嵌入专门的监控页面,在curl 专用页面返回值为200时,则认定服务正常运行,否则报警发送专门的监控运维的邮箱. 二.原理 正常的tomcat健康状态监控页面如下图 我们利用如下命令判断返回值是否为200 shell>/usr/bin/curl -o /dev/null -s --connect-timeout 5 -w '%{http_code}' http://10.0.0.107:9100/

zabbix 自动发现指定端口和服务

官方有模板示例,根据官方更改 连接如下 https://zabbix.org/wiki/File:ZabbixTemplate_-_TCP_service_discovery.xml 配置端口服务列表 root #cat tcp-port.conf http,80 tomcat,8080 mq,1883 编写自动发现脚本 discovery_tcp_service.sh #/bin/bash CONFIG_FILE=/etc/zabbix/script/tcp-port.conf portarr