• zabbix内置宏、自动发现与注册


    一、zabbix内置宏

    1、概念:

    在Zabbix中,内置宏是一种特殊的变量,通常用在 Trigger 名称和表达式中,引用有关监控对象的信息。

    2、种类:

    {HOST.NAME}  主机名

    {HOST.IP}  主机 IP 地址

    {TRIGGER.DESCRIPTION}   触发器描述

    {TRIGGER.NAME}   触发器名

    {TRIGGER.EVENTS.ACK}   触发器事件是否确认

    3、图示:

    二、自动发现和自动注册

    1、自动发现

    (1) 概念:

    Zabbix的自动发现(Zabbix Auto Discovery)是一种功能,它能够自动识别并监控网络、服务器、虚拟机、容器等资源,无需手动配置每个监控对象。

    (2) 创建自动发现规则:

    ① 在“配置”菜单栏里,选择“自动发现”,点击“创建发现规则”

    ② 创建自动发现动作与操作细节:

    自动发现状态 等于 上:检测正常运行的主机

    ③ 在“检测中” → “自动发现”可以查看已发现的设备:

    2、自动注册

    (1) zabbix 代理器配置:

    主动模式:配置ServerActive ip

    vim /etc/zabbix/zabbix_agentd.conf

    systemctl restart zabbix-agent

    (2) zabbix 服务器配置:

    选择“自动注册动作”,配置动作与操作细节

    在“配置” → “主机”中查看注册的设备信息

    三、zabbix 监控 TCP 连接

    1、TCP 状态码:

    CLOSED (0)初始状态,表示TCP连接未建立
    LISTEN (1)表示TCP服务器正在等待来自客户端的连接请求,处于监听状态
    SYN_SENT (2)表示TCP客户端已发送连接请求(SYN),等待确认(ACK)
    SYN_RECEIVED (3)表示TCP服务器已收到客户端的连接请求(SYN),并已发送确认(ACK)
    ESTABLISHED (4)表示TCP连接已成功建立,数据可以在客户端和服务器之间双向传输
    FIN_WAIT_1 (5)表示TCP客户端已发送连接终止请求(FIN),等待服务器确认
    CLOSE_WAIT (6)表示TCP服务器已收到客户端的连接终止请求(FIN),等待客户端关闭连接
    FIN_WAIT_2 (7)表示TCP客户端已收到来自服务器的连接终止请求(FIN),等待服务器的确认
    LAST_ACK (8)表示TCP服务器已发送确认(ACK)并等待客户端的确认,即将关闭连接
    TIME_WAIT (9)表示TCP连接已经关闭,在等待可能延迟的数据包

    2、监控 TCP 连接(自定义键值 key):

    (1) zabbix 代理器配置:

    vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf

    UserParameter=tcp.status.listen,ss -an |grep :80 | grep -i 'LISTEN' |wc -l

    UserParameter=tcp.status.timewait,ss -an |grep :80 | grep -i 'TIME-WAIT' |wc -l

    UserParameter=tcp.status.established,ss -an |grep :80 | grep -i 'ESTAB' |wc -l

    UserParameter=tcp.status.syn_recv,ss -an |grep :80 | grep -i 'SYN_RECV' |wc -l

    UserParameter=tcp.status.syn_sent,ss -an |grep :80 | grep -i 'SYN_SENT' |wc -l

    UserParameter=tcp.status.close,ss -an |grep :80 | grep -i 'CLOSE' |wc -l

    重启服务:systemctl restart zabbix-agent

    (2) zabbix 服务器调用:

    zabbix_get -s 192.168.198.130 -k tcp.status.listen

    3、监控 TCP 连接(传参调用):

    zabbix 代理器:

    vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf

    UserParameter=tcp.status[*],ss -an |grep :80 | grep -i "$1" |wc -l

    ● * :在这个命令中,* 作为 UserParameter 中的占位符,表示将接受用户传递的参数;

    ● $1:* 接收的参数将会传递给 $1(一次传参)

    4、监控 TCP 连接(下载自定义 key 包):

    (1) zabbix 代理器:

    下载自定义 key 包,并授权:

    (2) 拷贝脚本和配置文件至 zabbix 目录:

    cp tcp_connect_status/tcp_connect_status.sh /etc/zabbix/tcp_connect.status/

    cp zabbix-example/tcp_connect_status/tcp_connect_status /etc/zabbix/zabbix_agentd.d/tcp_connect_status.conf

    重启服务:systemctl restart zabbix-agent

    (3) 文件工作流程:

    ① /etc/zabbix/zabbix_agentd.d/tcp_connect_status.conf

    * 里的参数会传递给 $1(一次传参)

    例如:用户输入命令 zabbix_get -s 192.168.198.130 -k tcp.status[LISTEN],* 的值就是 LISTEN,再传递给 $1,系统就会调用脚本

    bash /etc/zabbix/tcp_connect.status/tcp_connect_status.sh LISTEN

    ② /etc/zabbix/tcp_connect.status/tcp_connect_status.sh

    脚本里的 $1 匹配外部的参数(二次传参)

    例如:系统调用了脚本

    bash /etc/zabbix/tcp_connect.status/tcp_connect_status.sh LISTEN,脚本中就会调用 LISTEN() 函数,执行其对应的功能。

    zabbix 服务器查看监控效果:

  • 相关阅读:
    前端工程化01-复习jQuery当中的AJAX
    sklearn快速入门教程:标准化
    Golang入门(1)—— helloworld 初体验
    从零开始学Graph Database:什么是图
    接口自动化测试系列-excel管理测试用例
    Linux——指令初识(二)
    现代C++、STL、QTL的使用
    【Vue】VueX 的语法详解(1)
    虹科案例 | 空调故障无冷气,且没有故障码
    学点设计模式,盘点Spring等源码中与设计模式的那些事,给所有的设计模式来个大总结
  • 原文地址:https://blog.csdn.net/weixin_61428407/article/details/133843635