Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例
作者:mmseoamin日期:2023-12-20

day02

day02配置告警用户数超过50,发送告警邮件实施验证告警配置配置钉钉机器人告警创建钉钉机器人编写脚本并测试添加报警媒介类型为用户添加报警媒介创建触发器创建动作验证自动发现配置自动发现主动监控配置web2使用主动监控修改配置文件,只使用主动监控创建用于主动监控的主机拓扑图完善拓扑图监控Nginxstub_status模块

配置告警

  • 默认情况下,监控项不会自动发送告警消息
  • 需要配置触发器与告警,并且通过通知方式发送信息给联系人
  • 触发器:设置条件,当条件达到时,将会执行某个动作
  • 动作:触发器条件达到之后要采取的行为,比如发邮件或执行命令

    用户数超过50,发送告警邮件

    • 当web1的用户数超过50时,认为这是一个问题(Problem)
    • 当出现问题时,将会执行动作。
    • 执行的动作是给管理员发邮件。
    • 给管理员发邮件,还要配置邮件服务器的地址,以及管理员的email地址
      实施
      • 创建触发器规则

        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第1张

         Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第2张

        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231161641957,第3张

        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231161800123,第4张

        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231161918016,第5张

        上图中,点击“添加”后,出现下图:

        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第6张 

         

        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231162216441,第7张

        上图中,点击“插入”后的结果如下:

        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第8张

        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231162527775,第9张

        • 创建邮件类型的报警媒介

          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第10张

          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231162806961,第11张

          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231162907936,第12张

           

          • 为用户关联邮箱

            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第13张 

            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第14张 

             

            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231162958772,第15张

            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163032257,第16张

            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163212824,第17张

            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163245788,第18张

            • 创建动作:当出现Problem状态时,给admin发邮件

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第19张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第20张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163401842,第21张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163435927,第22张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163519041,第23张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163602261,第24张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163632657,第25张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163658101,第26张

              回到“创建动作”页面后,点击“操作”:

               Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第27张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第28张

               

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231163835081,第29张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231164003048,第30张

              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231164048245,第31张

              验证告警配置
              • 在zabbixserver上配置邮件服务
                # 配置postfix邮件服务和mailx邮件客户端
                [root@pubserver zabbix]# vim 07-config-mail.yml
                ---
                - name: config mail
                  hosts: zabbix
                  tasks:
                    - name: install mail     # 安装postfix和mailx
                      yum:
                        name: postfix,mailx
                        state: present
                        
                    - name: start postfix    # 启动邮件服务postfix
                      service:
                        name: postfix
                        state: started
                        enabled: yes
                [root@pubserver zabbix]# ansible-playbook 07-config-mail.yml
                • 在web1创建用户,使总用户数超过50
                  [root@web1 ~]# for user in user{1..5}
                  > do
                  > useradd $user
                  > done
                  • 在zabbix web页面中查看

                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第32张

                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231164820967,第33张

                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231164852897,第34张

                    • 在zabbixserver上查看邮件

                       

                      [root@zabbixserver ~]# mail   # 查看邮件
                      Heirloom Mail version 12.5 7/5/10.  Type ? for help.
                      "/var/spool/mail/root": 2 messages 2 new
                      >N  1 zzg@tedu.cn           Sat Dec 31 16:47  21/932   "Problem: usercnt_gt_50"
                       N  2 zzg@tedu.cn           Sat Dec 31 16:48  21/932   "Problem: usercnt_gt_50"
                      & 1   # 查看1号邮件
                      Message  1:
                      From zzg@tedu.cn  Sat Dec 31 16:47:59 2022
                      Return-Path: 
                      X-Original-To: root@localhost.localdomain
                      Delivered-To: root@localhost.localdomain
                      From: 
                      To: 
                      Date: Sat, 31 Dec 2022 16:47:59 +0800
                      Subject: Problem: usercnt_gt_50
                      Content-Type: text/plain; charset="UTF-8"
                      Status: R
                       
                      
                      Problem started at 16:47:56 on 2022.12.31
                      Problem name: usercnt_gt_50
                      Host: web1
                      Severity: Warning
                      Operational data: 51
                      Original problem ID: 102
                      & q   # 输入q退出

                      配置钉钉机器人告警

                      创建钉钉机器人
                      • 登陆钉钉网页版:https://im.dingtalk.com/ (或者在windows系统上下载电脑版钉钉)
                      • 下面以钉钉电脑版为例,配置钉钉群聊机器人
                      • 在群聊中点击设置,以新建机器人

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231173247554,第35张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第36张Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231173323082,第37张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第38张 

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第39张 

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231173347359,第40张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231173416764,第41张

                         Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第42张

                         

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231173439884,第43张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231173502463,第44张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231173605449,第45张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231173634297,第46张

                        注意上面的Webhook地址,不要泄露,谁拥有此地址,谁就可以控制机器人说话。

                        编写脚本并测试
                        # 安装钉钉机器人脚本需要用到的模块
                        [root@zabbixserver ~]# yum install -y python3-requests
                         
                        
                        # 编写钉钉机器人脚本
                        [root@zabbixserver ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py 
                        #!/usr/bin/env python3
                         
                        
                        import json
                        import requests
                        import sys
                         
                        
                        def send_msg(url, remiders, msg):
                            headers = {'Content-Type': 'application/json; charset=utf-8'}
                            data = {
                                "msgtype": "text",
                                "at": {
                                    "atMobiles": remiders,
                                    "isAtAll": False,
                                },
                                "text": {
                                    "content": msg,
                                }
                            }
                            r = requests.post(url, data=json.dumps(data), headers=headers)
                            return r.text
                         
                        
                        if __name__ == '__main__':
                            msg = sys.argv[1]
                            remiders = []
                            url = '钉钉机器人Webhook地址'  # 注意此处需输入机器人的webhook地址
                            print(send_msg(url, remiders, msg))
                            
                        [root@zabbixserver ~]# chmod +x /usr/lib/zabbix/alertscripts/dingalert.py
                         
                        
                        [root@zabbixserver ~]# /usr/lib/zabbix/alertscripts/dingalert.py 'warn: 测试消息'    # 注意消息中要包含关键字warn
                        {"errcode":0,"errmsg":"ok"}

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第47张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231174806362,第48张

                        添加报警媒介类型

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231182415291,第49张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231182600844,第50张

                         Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第51张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第52张 

                         

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231182638787,第53张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231190625489,第54张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231182729332,第55张

                        为用户添加报警媒介

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第56张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第57张 

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231182907139,第58张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231182941890,第59张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231183008455,第60张

                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231183039844,第61张

                        创建触发器
                        • 创建触发器,用户数超过55则触发问题

                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231183305468,第62张

                           Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第63张

                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第64张

                           

                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231183329667,第65张

                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231183514699,第66张

                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231183545700,第67张

                          创建动作
                          • 创建动作,用户数超过55则发送钉钉告警消息

                            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231183754607,第68张

                            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231183955374,第69张

                             Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第70张

                            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第71张 

                            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231184051140,第72张

                            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231184121455,第73张

                            验证
                            • 创建用户,使用户数超过55
                               
                              
                              [root@web1 ~]# for user in user{6..10}; do useradd $user; done
                              [root@web1 ~]# zabbix_get -s 127.0.0.1 -k usercnt
                              56
                              • 查看结果

                                Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第74张

                                Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231184554147,第75张

                                Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231190759575,第76张

                                自动发现

                                 

                                • 当被监控的设备非常多的时候,手工添加将会变得非常不方便

                                • 可以使用自动发现功能,实现添加主机、添加到主机组、 链接模板

                                • 自动发现流程:

                                  • 创建自动发现规则
                                  • 创建动作,当主机被发现之后,执行什么操作
                                  • 通过动作,添加主机,将模板应用到发现的主机

                                  配置自动发现

                                  • 创建自动发现规则

                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第77张

                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第78张 

                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231192401496,第79张

                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231192649096,第80张

                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231192713341,第81张

                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231193140459,第82张

                                    • 创建发现动作

                                       Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第83张

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第84张 

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第85张 

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191200909,第86张

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191341309,第87张

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191428626,第88张

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191537605,第89张

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191605468,第90张

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191633759,第91张

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191703535,第92张

                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191731305,第93张

                                      • 添加结果如下:

                                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第94张

                                         

                                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231191837042,第95张

                                        • 验证

                                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第96张 

                                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231193513146,第97张

                                          • 在web2上配置agent
                                            [root@web2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
                                            117 Server=127.0.0.1,192.168.88.5
                                            182 Hostname=web2
                                            [root@web2 ~]# systemctl enable zabbix-agent.service --now

                                            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231194314392,第98张

                                            Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第99张 

                                            主动监控

                                            • 默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。
                                            • 被动监控:Server向Agent发起请求,索取监控数据。此种模式常用
                                            • 主动监控:Agent向Server发起连接,向Server汇报

                                              配置web2使用主动监控

                                              修改配置文件,只使用主动监控

                                               

                                              [root@web2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
                                              117 # Server=127.0.0.1,192.168.88.5
                                              142 StartAgents=0
                                              171 ServerActive=192.168.88.5
                                              242 RefreshActiveChecks=120
                                               
                                              
                                              # 重启服务
                                              [root@web2 ~]# systemctl restart zabbix-agent.service 
                                              [root@web2 ~]# ss -tlnp | grep :10050  # 端口号消失
                                              创建用于主动监控的主机

                                              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第100张

                                              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第101张 

                                              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231195058709,第102张

                                              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第103张

                                              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231195251001,第104张

                                              Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231195553927,第105张

                                              拓扑图

                                              • 在zabbix中可以创建拓扑图,反映拓扑结构
                                              • Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第106张 

                                                 

                                                Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231195818158,第107张

                                                Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231195838363,第108张

                                                • 添加元素:

                                                  • 地图元素:可以是一个装饰图形,也可以对应具体的设备
                                                  • 形状:长方形、圆形
                                                  • 链接:连线,多个设备之间才能使用链接

                                                  完善拓扑图

                                                  • 添加交换机图标

                                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第109张

                                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231200007304,第110张

                                                    Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231200111510,第111张

                                                    • 添加链接:按住ctrl键,点选两台设备,点链接边上的添加

                                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第112张

                                                      Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231200203039,第113张

                                                      • 添加web服务器

                                                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第114张 

                                                        Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231200322727,第115张

                                                         

                                                        • 添加链接

                                                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,第116张 

                                                          Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例,image-20221231200407274,第117张

                                                          监控Nginx

                                                          stub_status模块

                                                          • 用于实时监控nginx的网络连接,这个模块是nginx官方提供的一个模块。
                                                          • 配置nginx

                                                             

                                                            [root@pubserver zabbix]# vim 08-config-nginx.yml
                                                            ---
                                                            - name: config nginx
                                                              hosts: webservers
                                                              tasks:
                                                                - name: install nginx   # 安装nginx
                                                                  yum:
                                                                    name: nginx
                                                                    state: present
                                                             
                                                            
                                                                - name: start nginx     # 启动nginx
                                                                  service:
                                                                    name: nginx
                                                                    state: started
                                                                    enabled: yes
                                                            [root@pubserver zabbix]# ansible-playbook 08-config-nginx.yml 
                                                             
                                                            
                                                            # 修改配置文件,启用stub_status功能
                                                            [root@web1 ~]# vim /etc/nginx/nginx.conf
                                                            ...略...
                                                             47         location / {
                                                             48         }
                                                             49 
                                                             50         location /status {   # 在此处添加3行
                                                             51             stub_status on;
                                                             52         }   
                                                             53         
                                                             54         error_page 404 /404.html;
                                                             55             location = /40x.html {
                                                             56         }
                                                             ...略...
                                                            [root@web1 ~]# systemctl restart nginx
                                                             
                                                            
                                                            # 访问监控页面
                                                            [root@zabbixserver ~]# curl http://192.168.88.100/status
                                                            Active connections: 1 
                                                            server accepts handled requests
                                                             2 2 2 
                                                            Reading: 0 Writing: 1 Waiting: 0 
                                                            # Active connections:当前客户端与nginx之间的连接数。它等于下面Reading / Writing / Waiting之和
                                                            # accepts:自nginx启动之后,客户端访问的总量
                                                            # handled:自nginx启动之后,处理过的客户端连接总数,通常等于accepts的值。
                                                            # requests:自nginx启动之后,处理过的客户端请求总数。
                                                            # Reading:正在读取客户端的连接总数。
                                                            # Writing:正在向客户端发送响应的连接总数。
                                                            # Waiting:空闲连接。
                                                             
                                                            
                                                            # 使用工具向服务器发起多个请求
                                                            [root@zabbixserver ~]# yum install -y httpd-tools
                                                            # 一共发1000个请求,每次并发数200
                                                            [root@zabbixserver ~]# ab -n1000 -c200 http://192.168.88.100/
                                                            [root@zabbixserver ~]# curl http://192.168.88.100/status
                                                            Active connections: 1 
                                                            server accepts handled requests
                                                             1097 1097 1003 
                                                            Reading: 0 Writing: 1 Waiting: 0 
                                                            • 编写脚本,用于获取各项数据
                                                               
                                                               
                                                              
                                                               
                                                              
                                                              [root@web1 ~]# vim /usr/local/bin/nginx_status.sh
                                                              #!/bin/bash
                                                               
                                                              
                                                              case  in
                                                              active)
                                                                  curl -s http://192.168.88.100/status | awk '/Active/{print $NF}';;
                                                              waiting)
                                                                  curl -s http://192.168.88.100/status | awk '/Waiting/{print $NF}';;
                                                              accepts)
                                                                  curl -s http://192.168.88.100/status | awk 'NR==3{print }';;
                                                              esac
                                                               
                                                              
                                                              [root@web1 ~]# chmod +x /usr/local/bin/nginx_status.sh
                                                              [root@web1 ~]# nginx_status.sh active
                                                              1
                                                              [root@web1 ~]# nginx_status.sh accepts
                                                              1099
                                                              [root@web1 ~]# nginx_status.sh waiting
                                                              0
                                                              • 创建zabbix用到的key,获取各项数据
                                                                # key的语法格式
                                                                UserParameter=key[*], $1
                                                                # key[*]中的*是参数,将会传给后面的位置变量
                                                                 
                                                                
                                                                # 创建声明key的文件
                                                                [root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
                                                                UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh 
                                                                 
                                                                
                                                                # 测试
                                                                [root@web1 ~]# systemctl restart zabbix-agent.service 
                                                                [root@web1 ~]# zabbix_get -s 127.0.0.1 -k nginx_status[active]
                                                                1
                                                                [root@web1 ~]# zabbix_get -s 127.0.0.1 -k nginx_status[waiting]
                                                                0
                                                                [root@web1 ~]# zabbix_get -s 127.0.0.1 -k nginx_status[accepts]
                                                                1103