zoukankan      html  css  js  c++  java
  • zabbix监控远程端口

    需求:监控api端口状态

    查找资料,没有找符合需求的zabbix自有监控项,改变策略,查看linux是否有命令可以检测api端口是否开通,然后使用zabbix自定义脚本监控

    参考:https://www.cnblogs.com/pizitai/p/6519872.html

    一、linux检测远程端口方法:

    1、telnet

    # telnet 114.242.151.66 8829
    Trying 114.242.151.66...
    Connected to 114.242.151.66.
    Escape character is '^]'.

    脚本方法:

    # echo -e "
    " | telnet 114.242.151.66 8829 | grep Connected
    Connected to 114.242.151.66.
    Connection closed by foreign host.

    2、nmap

    # nmap 114.242.151.66 -p 8829
    
    Starting Nmap 5.51 ( http://nmap.org ) at 2017-12-05 17:00 CST
    Nmap scan report for 114.242.151.66
    Host is up (0.026s latency).
    PORT     STATE SERVICE
    8829/tcp open  unknown
    
    Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds

    脚本方法:

    # port_stats=`nmap 114.242.151.66 -p 8829 |grep open | wc -l`;[[ $port_stats -ge 1 ]] && echo 0 || echo 1
    0

    3、nc

    # nc -z 5 114.242.151.66 8829 && echo 1 ||echo 0
    1
    # nc -z 5 114.242.151.166 8829 && echo 1 ||echo 0
    0

    确认检测方法后,发现zabbix自定义还不会,又在网上学习,总结经验如下

    参考:https://www.cnblogs.com/xiaolinstudy/p/7271861.html

    二、zabbix自定义监控

    1、相关概念

    • item: Items是从agnet主机里面获取的所有数据。通常情况下我叫itme为监控项,item由key+参数组成
    • Key:我们可以理解为key是item的唯一标识,在agent端有很多监控项,zabbix-server根据key区分不同的监控项
    • trigger:触发器是建立在item数据上的,具有阈值触发事件的功能

    基本格式:  :.()}

    server:agent名称,加入主机时配置的
    key:就是上面说的key
    function:对阈值进行操作的函数,以下函数
    operate:表达式
    constant:常量

    2、自定义脚本格式

    key[*],[command|sh]
    # <key[参数]>,<命令或者脚本>
    # [*]:固定格式,表示server端是否传过来参数,在命令或者脚本中用$1,23...引用,shell脚本中的引用$$1,2,3..引用,
    # 如果server端不传参数,[*]可以不写

    /etc/zabbix/zabbix_agentd.conf

    Include=/apps/zabbix/etc/zabbix_agentd.conf.d/
    UnsafeUserParameters=1

    创建配置目录

    # mkdir /apps/zabbix/etc/zabbix_agentd.conf.d/
    # mkdir /apps/zabbix/script/
    # chown -R zabbix.zabbix /apps/zabbix

    创建自定义key

    # touch UserParameter.conf
    UserParameter=mport.nc,nc -w 5 192.168.151.66 8829 && echo 0 || echo 1
    UserParameter=mport.nmap[*],/data/zabbix/scripts/mport_namp.sh $1 $2

    测试

    # zabbix_get -s 192.168.56.131 -p 10050 -k "mport.nc"
    # zabbix_get -s 192.168.56.131 -p 10050 -k "mport.nmap[192.168.151.66,8829]"

    # 测试时,会提示权限不够,脚本需要755权限,并给zabbix sudo权限
    # chmod 755 /data/zabbix/scripts/mport_namp.sh
    # echo 'zabbix        ALL=(ALL)       NOPASSWD: ALL' > /etc/sudoers

    3、web设置

    【配置】--【主机】-- 【Zabbix server】

     

    【监控项】--【创建监控项】

    【名称】:按需填写

    【类型】:Zabbix客户端

    【键值】:填写UserParameter.conf中对应的键值

    重启zabbix_agent

  • 相关阅读:
    BlocksKit block从配角到主角—oc通往函数式编程之路--oc rx化?
    使用NSProxy和NSObject设计代理类的差异
    面向发布(部署)编程—热修复、动态库与补丁
    解释器就是虚拟机
    动态和多态的本质是对不确定性的解释机制
    c+多态的本质:编译器维护了类型信息同时插入了解释执行机制
    ios Aspects面向切面沉思录—面向结构编程—面向修改记录编程—面向运行时结构编程—元编程?
    知行合一的方法论
    面向运行时结构信息编程
    c++、oc、swift初步评价
  • 原文地址:https://www.cnblogs.com/loki717/p/7991081.html
Copyright © 2011-2022 走看看