• zabbix 添加自动发现端口并监控


    最近在部署zabbix监控  有些服务器上开启的服务端口非常多  如果一个个添加监控会很繁琐,于是想到了自动发现规则  自动发现服务器上的服务端口并进行监控。

    在zabbix客户端服务器上进行操作

    1)编写端口自动发现的脚本

      

    cat /usr/local/zabbix/scripts/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 "{ "
    printf ' '""data":["
    for ((i=0;i<$length;i++))
    do
    printf ' {'
    printf ""{#TCP_PORT}":"${portarray[$i]}"}"
    if [ $i -lt $[$length-1] ];then
    printf ','
    fi
    done
    printf " ] "
    printf "} "

    chmod +x discovertcpport.sh ##增加执行权限

    2)配置zabbix客户端的配置文件

    在最后添加

    tail -5 /usr/local/zabbix/etc/zabbix_agentd.conf

    ##自动发现端口并监控
    UserParameter=tcpportlisten,/bin/bash /usr/local/zabbix/scripts/discover_port.sh "$1"

    3)重启zabbix_agent服务

    /etc/init.d/zabbix_agentd restart

    4)在zabbix客户端进行脚本测试

    sh /usr/local/zabbix/scripts/discover_port.sh
    {
    "data":[
    {"{#TCP_PORT}":"10050"},
    {"{#TCP_PORT}":"10509"},
    {"{#TCP_PORT}":"111"},
    {"{#TCP_PORT}":"12871"},
    {"{#TCP_PORT}":"228"},
    {"{#TCP_PORT}":"25"},
    {"{#TCP_PORT}":"3001"},
    {"{#TCP_PORT}":"32555"},
    {"{#TCP_PORT}":"38312"},
    {"{#TCP_PORT}":"8001"},
    {"{#TCP_PORT}":"8002"},
    {"{#TCP_PORT}":"8003"},
    {"{#TCP_PORT}":"8004"},
    {"{#TCP_PORT}":"8005"},
    {"{#TCP_PORT}":"9000"}
    ]
    }

    5)在zabbix服务端进行测试

    /usr/local/zabbix/bin/zabbix_get -s 10.128.10.93 -k tcpportlisten
    {
    "data":[
    {"{#TCP_PORT}":"10050"},
    {"{#TCP_PORT}":"10509"},
    {"{#TCP_PORT}":"111"},
    {"{#TCP_PORT}":"12871"},
    {"{#TCP_PORT}":"228"},
    {"{#TCP_PORT}":"25"},
    {"{#TCP_PORT}":"3001"},
    {"{#TCP_PORT}":"32555"},
    {"{#TCP_PORT}":"38312"},
    {"{#TCP_PORT}":"8001"},
    {"{#TCP_PORT}":"8002"},
    {"{#TCP_PORT}":"8003"},
    {"{#TCP_PORT}":"8004"},
    {"{#TCP_PORT}":"8005"},
    {"{#TCP_PORT}":"9000"}
    ]
    }

    测试通过后再zabbixweb页面上进行配置

    创建自动发现规则

     创建监控项原型

     创建 触发器原型

     6)查看是否成功

    在配置---主机----触发器中进行查看  说明已经成功

    问题总结

    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
  • 相关阅读:
    centOS 6.5下升级mysql,从5.1升级到5.6
    利用PHP脚本辅助MySQL数据库管理5-检查异常数据
    利用PHP脚本辅助MySQL数据库管理4-两个库表结构差异比较
    利用PHP脚本辅助MySQL数据库管理3-删除重复表索引
    利用PHP脚本辅助MySQL数据库管理2-表主键表索引
    利用PHP脚本辅助MySQL数据库管理1-表结构
    Linux驱动设计——内存与IO访问
    Linux驱动设计—— 驱动调试技术
    Linux系统编程@终端IO
    Linux驱动设计—— 内外存访问
  • 原文地址:https://www.cnblogs.com/pyng/p/10189250.html
Copyright © 2020-2023  润新知