zoukankan      html  css  js  c++  java
  • 第七章 监控系统zabbix自定义监控项入门

    一、zabbix监控基础架构

    zabbix-agent(数据采集) --> zabbix-server(数据分析\报警) --> 数据库(数据存储) --> zabbix-web(数据展示)
    

    二、自定义监控项格式

    需求:监控登录服务器的用户会话数量
    
    ### Option: UserParameter
    #       User-defined parameter to monitor. There can be several user-defined parameters.
    #       Format: UserParameter=<key>,<shell command>
    #       See 'zabbix_agentd' directory for examples.
     
    #官方示例
    UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
    UserParameter=mysql.version,mysql -V
    
    
    #单参数语法 :
    UserParameter=<key>,<command>
    
    简单的命令:
    UserParameter=ping,echo 1
    UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive
    
    例子 : [root@10_56_80_254 ~]# mysqladmin -uroot -proot | grep -c alive
    1
    
    # 多参数语法:
    方法一 : 在配置文件zabbix_agentd.conf内配置多个
    
    UserParameter=zabbix_name,hostname
    UserParameter=zabbix_ifconfig,ifconfig
    
    
    方法二 : 在zabbix_agentd.d目录下定义*.conf文件
    
    [root@10_56_80_254 zabbix_agentd.d]# pwd
    /etc/zabbix/zabbix_agentd.d  #该路径下创建*.conf文件
    
    [root@10_56_80_254 zabbix_agentd.d]# cat test.conf
    UserParameter=zabbix_id,id zabbix | awk '{print$2}'
    UserParameter=zabbix_name,hostname
    UserParameter=zabbix_ifconfig,ifconfig
    UserParameter=zabbix_a,/bin/sh /tmp/test/a.sh  #获取脚本信息时,刷新间隔时间短会产生无数据
    
    灵活的用户参数使用Key接受参数。这样一个灵活的用户参数可以作为创建几个监控项的基础。
    灵活的用户参数具有以下语法:
    UserParameter=key[*],command
    
    参数 描述
    Key 唯一的监控项Key。[*]定义该Key接收括号内的参数。在配置监控项时给出参数。
    Command 执行命令以评估Key的值。仅适用于灵活的用户参数:你可以使用命令中的位置引用$ 1 … $ 9来引用监控项Key中的相应参数。Zabbix解析监控项Key的[]中包含的参数,并相应地替换$ 1,…,$ 9。$ 0将由原始命令(在扩展$ 0,…,$ 9之前)替换为运行。不管它们是用双引号(“)还是单引号(')括起来,都会解析位置引用。要使用位置引用不变,请指定双美元符号 - 例如,awk'{print $$2}'。 在这种情况下,执行命令时,“$$2”实际上会变成“$2”。

    三、自定义监控项第一步

    #1.自定义监控首先在配置文件开启监控脚本
    [root@prd-apm001 ~]$ vim /etc/zabbix/zabbix_agentd.conf
    UnsafeUserParameters=1  #是否启用用户自定义监控脚本
    Include=/etc/zabbix/zabbix_agentd.d/*.conf  #该路径下定义监控
    
    #2.使用命令查看服务器当前登录用户会话数量
    [root@redis01 ~]# uptime |awk '{print $6}'
    

    四、自定义监控项第二步

    #方法一 : 在配置文件/etc/zabbix/zabbix_agentd.conf内配置多个
    UserParameter=zabbix_name,hostname
    UserParameter=zabbix_ifconfig,ifconfig
    
    #方法二 : 在zabbix_agentd.d目录下定义*.conf文件
    [root@prd-apm001 ~]# cd /etc/zabbix/zabbix_agentd.d/
    [root@prd-apm001 /etc/zabbix/zabbix_agentd.d]$ cat test.conf 
    UserParameter=zabbix_id,id zabbix | awk '{print$2}'
    UserParameter=zabbix_name,hostname
    UserParameter=zabbix_ifconfig,ifconfig
    UserParameter=zabbix_a,/bin/sh /tmp/test/a.sh  #获取脚本信息时,刷新间隔时间短会产生无数据
    
    #把命令加入配置文件并起名
    [root@prd-apm001 ~]$ cd /etc/zabbix/zabbix_agentd.d/
    [root@prd-apm001 /etc/zabbix/zabbix_agentd.d]$ cat test.conf 
    UserParameter=user.count,uptime |awk '{print $6}'
    
    #重启服务
    [root@prd-apm001 /etc/zabbix/zabbix_agentd.d]$ systemctl  restart zabbix-agent.service
    

    五、自定义监控项第三步

    #客户端,查看监控项
    [root@prd-apm001 ~]$ zabbix_agentd -p |grep user.count
    user.count                                    [t|1]
    

    六、自定义监控项第四步

    在zabbix-server端获取agent端数据,使用zabbix_get命令
    
    #安装zabbix_get命令
    [root@prd-apm001 ~]$ rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-get-5.0.0-1.el7.x86_64.rpm
    
    #语法
    [root@prd-apm001 ~]$ zabbix_get
    usage:
      zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
      zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address]
                    --tls-connect cert --tls-ca-file CA-file
                    [--tls-crl-file CRL-file] [--tls-agent-cert-issuer cert-issuer]
                    [--tls-agent-cert-subject cert-subject]
                    --tls-cert-file cert-file --tls-key-file key-file -k item-key
      zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address]
                    --tls-connect psk --tls-psk-identity PSK-identity
                    --tls-psk-file PSK-file -k item-key
      zabbix_get -h
      zabbix_get -V
    
    
    #获取数据
    [root@prd-apm001 ~]$ zabbix_get -s 127.0.0.1 -k user.count
    1
    

    七、自定义监控项第五步

    #1.在web页面添加监控项,选择配置主机中的监控项。
    

    #2.创建监控项
    

    #3.填写监控项
    1、监控项名称
    2、键值为自定义配置时的key名称
    3、选择主机接口
    4、填写新的应用集
    5、添加描述
    6、点击测试,测试完成后点击添加
    

    #4.查看应用集,可以看到我们新创建的应用集
    

    #5.点击查看监控项即可
    

    八、自定义监控项第六步

    添加触发器:当用户登录超过2人的时候,就要报警
    
    #1.点击配置主机中的触发器
    

    #2.点击新建触发器
    

    #3.创建触发器
    1、添加触发器名称
    2、选择报警的严重性
    3、添加表达式
    1)选择监控项
    2)结果> 2
    4、点击插入
    5、添加触发器描述
    6、点击添加
    

    #4.多用户登录测试
    

    #5.优化触发器名称
    用zabbix内置变量,来优化触发器的名称,此处使用的是
    
    主机名变量:{HOST.NAME}
    IP地址变量:{HOST.IP}
    
    Monitor Login User Count Problem 主机名:{HOST.NAME} IP地址:{HOST.IP}
    

    #6.再次查看问题触发器信息
    

    #7.前端web页面告警
    

    九、自定义监控项第七步

    添加图形化界面
    #1.点击配置主机中的图形
    

    #2.点击创建图形
    

    #3.添加图像化
    1.填写图形化名称
    2.添加监控项
    3.点击添加
    

    #4.查看图形化界面
    

    十、自定义监控项第八步

    给触发器,添加动作,邮件告警
    
    如果事件源是触发器,那么就会触发动作,触发什么动作呢?就需要自己来创建了。
    自定义触发器--->动作--->通知
    如果事件源是触发器-->则创建一个触发的动作-->通知
    1.我怎么通知。通过介质(配置一个邮箱的发件人)
    2.通知给谁。(接收的邮箱)
    3.通知的内容(内容可以自定义
    
    #1.创建动作
    

    #2.添加触发器
    

    #3.设置邮件告警发送人
    

    #4.配置邮件服务
    

    #5.添加管理员邮件地址
    

    #6.查看邮件
    

  • 相关阅读:
    SSH使用TCP Wrappers实现访问控制
    Java设计模式(15)——行为模式之策略模式(Strategy)
    Java设计模式(14)——行为模式之不变模式(Immutable)
    Java设计模式(13)——结构型模式之桥梁模式(Bridge)
    Java设计模式(12)——结构型模式之门面模式(Facade)
    Java设计模式(11)——结构型模式之享元模式(Flyweight)
    Java设计模式(10)——结构型模式之代理模式(Proxy)
    Java设计模式(9)——结构型模式之装饰模式(Decorator)
    Java设计模式(8)——结构型模式之组合模式(Composite)
    Java设计模式(7)——结构型模式之适配器模式(Adapter)
  • 原文地址:https://www.cnblogs.com/jhno1/p/15715310.html
Copyright © 2011-2022 走看看