精华内容
下载资源
问答
  • zabbix使用教程
    万次阅读
    2018-11-03 11:08:26

    此文章图片所使用的图床有不显示的问题,
    原文已迁移至:https://www.clxz.top/2019/03/30/113021/

    更多相关内容
  • zabbix 使用教程

    万次阅读 多人点赞 2018-08-07 15:51:55
    第1章 zabbix监控 1.1 为什么要监控  在需要的时刻,提前提醒我们服务器出问题了  当出问题之后,可以找到问题的根源  网站/服务器 的可用性 1.1.1 网站可用性  在软件系统的高可靠性(也称为可用性,英文...

    第1章 zabbix监控

    1.1 为什么要监控

         在需要的时刻,提前提醒我们服务器出问题了

         当出问题之后,可以找到问题的根源

         网站/服务器 的可用性

    1.1.1 网站可用性

      在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。

        1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天
        2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天
        3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
        4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
        5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
        6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒

    1.2 监控什么东西

    监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控

    1.2.1 监控范畴

    1.3 怎么来监控

    1.3.1 远程管理服务器

    如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM

    1.3.2 监控硬件

    查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。

    使用ipmitool实现对服务器的命令行远程管理

    yum -y install OpenIPMI ipmitool  #->IPMI在物理机可以成功,虚拟机不行
    
    [root@KVM ~]# ipmitool sdr type Temperature
    Temp             | 01h | ns  |  3.1 | Disabled
    Temp             | 02h | ns  |  3.2 | Disabled
    Temp             | 05h | ns  | 10.1 | Disabled
    Temp             | 06h | ns  | 10.2 | Disabled
    Ambient Temp     | 0Eh | ok  |  7.1 | 22 degrees C
    Planar Temp      | 0Fh | ns  |  7.1 | Disabled
    IOH THERMTRIP    | 5Dh | ns  |  7.1 | Disabled
    CPU Temp Interf  | 76h | ns  |  7.1 | Disabled
    Temp             | 0Ah | ns  |  8.1 | Disabled
    Temp             | 0Bh | ns  |  8.1 | Disabled
    Temp             | 0Ch | ns  |  8.1 | Disabled

    1.3.3 查看cpu相关

      lscpu、uptime、top、htop vmstat mpstat

       其中htop需要安装,安装依赖与epel源。

    [znix@clsn ~]$lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                1
    On-line CPU(s) list:   0
    Thread(s) per core:    1
    Core(s) per socket:    1
    Socket(s):             1
    NUMA node(s):          1
    Vendor ID:             GenuineIntel
    CPU family:            6
    Model:                 85
    Model name:            Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
    Stepping:              4
    CPU MHz:               2494.150
    BogoMIPS:              4988.30
    Hypervisor vendor:     KVM
    Virtualization type:   full
    L1d cache:             32K
    L1i cache:             32K
    L2 cache:              1024K
    L3 cache:              33792K
    NUMA node0 CPU(s):     0

    1.3.4 内存够不够可以用

      free

    [znix@clsn ~]$free -h
                 total       used       free     shared    buffers     cached
    Mem:          996M       867M       128M       712K       145M       450M
    -/+ buffers/cache:       271M       725M
    Swap:         1.0G         0B       1.0G

    1.3.5 磁盘剩多少写的快不快可以用

      df、dd、iotop

    [znix@clsn ~]$df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda1        40G   24G   15G  62% /
    tmpfs           499M   20K  499M   1% /dev/shm
    /dev/vdb1        20G  4.4G   15G  24% /data

    1.3.6 监控网络

      iftop nethogs

    iftop   监控主机间流量  -i 指定监控网卡
    nethogs 监控进程流量

    1.4 监控工具总览

      mrtg 流量监控出图

      nagios 监控

      cacti  流量监控出图

      zabbix 监控+出图

    1.5 zabbix介绍

      Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。

      使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做死活监视。

      在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。

    另外,Zabbix 包含 XMPP 等各种 Item 警示功能。

    1.5.1 zabbix的组成

     

    zabbix官网: https://www.zabbix.com

    zabbix 主要由2部分构成 zabbix server和 zabbix agent

    zabbix proxy是用来管理其他的agent,作为代理

    1.5.2 zabbix监控范畴

      ²  硬件监控 :Zabbix IPMI Interface

      ²  系统监控 :Zabbix Agent Interface

      ²  Java 监控:ZabbixJMX Interface

      ²  网络设备监抟:Zabbix SNMP Interface

      ²  应用服务监控:Zabbix Agent UserParameter

      ²  MySQL 数据库监控:percona-monitoring-pldlgins

      ²  URL监控:Zabbix Web监控

    第2章 安装zabbix

    2.1 环境检查

    [root@m01 ~]# cat /etc/redhat-release
    CentOS Linux release 7.4.1708 (Core)
    
    [root@m01 ~]# uname -r
    3.10.0-693.el7.x86_64
    
    [root@m01 ~]# getenforce
    Disabled
    
    [root@m01 ~]# systemctl status firewalld.service
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:firewalld(1)

    2.2 安装zabbix过程

    2.2.1 安装方式选择

      编译安装 (服务较多,环境复杂)

      yum安装(干净环境)

      使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/p/7866643.html

    2.2.2 服务端快速安装脚本

    #!/bin/bash
    #clsn
    
    #设置解析 注意:网络条件较好时,可以不用自建yum源
    # echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
    
    #安装zabbix源、aliyun YUM源
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    
    #安装zabbix 
    yum install -y zabbix-server-mysql zabbix-web-mysql
    
    #安装启动 mariadb数据库
    yum install -y  mariadb-server
    systemctl start mariadb.service
    
    #创建数据库
    mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
    mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
    
    #导入数据
    zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix
    
    #配置zabbixserver连接mysql
    sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
    
    #添加时区
    sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
    
    #解决中文乱码
    yum -y install wqy-microhei-fonts
    \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
    
    #启动服务
    systemctl start zabbix-server
    systemctl start httpd
    
    #写入开机自启动
    chmod +x /etc/rc.d/rc.local
    cat >>/etc/rc.d/rc.local<<EOF
    systemctl start mariadb.service
    systemctl start httpd
    systemctl start zabbix-server
    EOF
    
    #输出信息
    echo "浏览器访问 http://`hostname -I|awk '{print $1}'`/zabbix"

    2.2.3 客户端快速部署脚本

    #!/bin/bash
    #clsn
    
    #设置解析
    echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
    
    #安装zabbix源、aliyu nYUM源
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    
    #安装zabbix客户端
    yum install zabbix-agent -y
    sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
    systemctl start  zabbix-agent.service
    
    #写入开机自启动
    chmod +x /etc/rc.d/rc.local
    cat >>/etc/rc.d/rc.local<<EOF
    systemctl start  zabbix-agent.service
    EOF

    2.3 检测连通性

    2.3.1 服务端安装zabbix-get检测工具

    yum install zabbix-get

    2.3.2 在服务端进行测试

    注意:只能在服务端进行测试

    zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
    zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

    测试结果

    [root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
    0.000000
    
    [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
    0.000000

    第3章 web界面操作

    3.1 zabbix的web安装

    3.1.1 使用浏览器访问

      http://10.0.0.61/zabbix/setup.php

       在检测信息时,可查看具体的报错信息进行不同的解决

     

       选择mysql数据库,输入密码即可

     

       host与port不需要修改,name自定义

    确认信息,正确点击下一步

     

       安装完成、点击finsh

          进入登陆界面  账号Admin密码zabbix   注意A大写

     

    3.2 添加监控信息

    3.2.1 修改监控管理机zabbix server

    配置 >> 主机

    主机名称: 要与主机名相同,这是zabbix server程序用的

    可见名称: 显示在zabbix网页上的,给我们看的

       修改后,要将下面的已启用要勾上

     

       添加完成就有了管理机的监控主机

     

    3.2.2 添加新的主机

    配置 >> 主机 >> 创建主机

    注意勾选以启用

     

       然后添加模板,选择linux OS ,先点小添加,再点大添加。

     

       添加完成,将会又两条监控主机信息

     

    3.2.3 查看监控内容

    检测中  >> 最新数据

       在最新数据中需要筛选,

     

       输入ip或者名字都能够搜索出来

    在下面就会列出所有的监控项

     

    3.2.4 查看图像

    检测中 >> 图形

       选择正确的主机。选择要查看的图形即可出图

     

    第4章 自定义监控与监控报警

    4.1 自定义监控

    4.1.1 说明

    zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。

    需求:服务器登陆人数不能超过三人,超过三人报警

    4.1.2 预备知识

    自定义key能被server和agent认可

    # 正确的key
    [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname"
    Linux cache01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 
    # 没有登记的,自定义的key
    [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
    ZBX_NOTSUPPORTED: Unsupported item key. 
    # 写错的key
    [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname1"
    ZBX_NOTSUPPORTED: Unsupported item key.

    4.2 实现自定义监控

    4.2.1 自定义语法

    UserParameter=<key>,<shell command>
    UserParameter=login-user,who|wc -l
    UserParameter=login-user,/bin/sh /server/scripts/login.sh

    4.2.2 agent注册

    [root@cache01 ~]# cd /etc/zabbix/zabbix_agentd.d/
    
    [root@cache01 zabbix_agentd.d]# vim userparameter_login.conf
    UserParameter=login-user,who|wc -l
    UserParameter=login-user2,who|wc -l
    UserParameter=login-user3,who|wc -l

       注意:key名字要唯一,多个key以行为分割

    # 修改完成后重启服务

    [root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service

       在server端进行get测试

    [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
    3
    
    [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user2"
    3
    
    [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user3"
    3
    
    [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user4"
    ZBX_NOTSUPPORTED: Unsupported item key.

    4.2.3 在server端注册(web操作)

    ①   创建模板

    配置 >> 模板 >> 创建模板

     

    点击添加,即可创建出来模板

     

       查看创建出来的模板。↑

    ②   创建应用集

    应用集类似(目录/文件夹),其作用是给监控项分类。

    点击 应用集 >> 创建应用集

     

          自定义应用集的名称,然后点击添加

    ③   创建监控项

    监控项 >> 创建监控项

     

    键值 -- key,即前面出创建的login-user。

     

       注意:创建监控项的时候,注意选择上应用集,即之前创建的安全。

     

    ④   创建触发器

    触发器的作用:当监控项获取到的值达到一定条件时就触发报警

    (根据需求创建)

    触发器 >> 创建触发器

    创建触发器,自定义名称,该名称是报警时显示的名称。

       表达式,点击右边的添加,选择表达式。 

       严重性自定义。

     

       表达式的定义 ↓ ,选择之前创建的监控项,

    最新的T值为当前获取到的值。

     

       添加完成,能够在触发器中看到添加的情况

     

    ⑤   创建图形

    以图形的方式展示出来监控信息

    图形 >> 创建图形

    名称自定义,关联上监控项。

     

    ⑥   主机关联模板

    配置 >> 主机

       一个主机可以关联多个模板

     

    4.2.4 查看监控的图形

     

    4.3 监控报警

    4.3.1 第三方报警平台

    http://www.onealert.com

         通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,您可以在最合适的时间,将最重要的信息推送给最合适的人员。

    4.3.2 onealert配置

    添加应用,注意添加的是zabbix

     

       实现微信报警需要关注微信公众号即可。

     

    4.3.3 安装 onealert Agent

    1.切换到zabbix脚本目录(如何查看zabbix脚本目录):

    cd /usr/local/zabbix-server/share/zabbix/alertscripts
    
    #查看zabbix脚本目录
    vi /etc/zabbix/zabbix_server.conf
    查看AlertScriptsPath

    2.获取OneITSM agent包:

    wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz

    3.解压、安装。

    tar -zxf oneitsm_zabbix_release-1.0.1.tar.gz
    cd oneitsm/bin
    bash install.sh --#个人生成的key

    注:在安装过程中根据安装提示,输入zabbix管理地址、管理员用户名、密码

    Zabbix管理地址: http://10.0.0.61/zabbix/
    Zabbix管理员账号: Admin
    Zabbix管理员密码:

    4.当提示"安装成功"时表示安装成功!

    验证告警集成
    
    产生新的zabbix告警(problem),动作状态为“已送达”表示集成成功。

    4.3.1 如何删除onealert Agent

    ①  删除报警媒介类型中的脚本

     

    ②  删除创建的用户

     

    ③  删除用户群组

    ④  删除创建的动作

     

    4.3.2 触发器响应,发送报警信息

     

       在微信和邮件中,均能收到报警信息。

     

       注意:当状态改变的时候才会发邮件

          好-->坏

          坏-->好

    4.4 监控可视化

    4.4.1 聚合图形

    最新数据 >> 图形

     

       自定义名称

     

       点击聚合图形的名称,进行更改,添加要显示的图形即可。

     

    4.4.2 幻灯片

    添加幻灯片

    监测中 >> 复合图形 >> 幻灯片演示

     

       创建幻灯片,名称自定,选择要显示的

     

       幻灯片根据设定的时间自动播放

    4.5 模板的共享

    4.5.1 主机共享

    在主机页打开,全选后点击导出

     

       导入

     

    4.5.2 模板共享

    https://github.com/zhangyao8/zabbix-community-repos

     

    第5章 监控全网服务器

    5.1 需求说明

    实际需求:

      公司已经有了100台服务器,现在需要使用zabbix全部监控起来。

    5.2 规划方案

    常规监控:cpu,内存,磁盘,网卡  问题:怎样快速添加100台机器

         方法1:使用克隆的方式

         方法2:自动注册和自动发现

         方法3:调用zabbix api接口  curl 、python

                开发自己的运维平台兼容zabbix的通道

       服务监控,url监控等特殊监控:自定义监控

    5.2.1 api接口使用(curl

        curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php"
    
        curl -i -X POST -H 'Content-Type:application/json' -d'
        {
            "jsonrpc": "2.0",
            "method": "host.get",
            "params": {
                "output": [
                    "hostid",
                    "host"
                ],
                "selectInterfaces": [
                    "interfaceid",
                    "ip"
                ]
            },
            "id": 2,
            "auth": "6a450a8fc3dce71fd310cfe338746578"
        }' "http://10.0.0.61/zabbix/api_jsonrpc.php"

    5.3 具体实施规划

    5.3.1 硬件、系统、网络监控

      所有集群节点(所有虚拟机)都监控上

      交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)

      snmp监控

    5.3.2 应用服务监控

    1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;

        方法1:监控873端口net.tcp.port[,873]
        方法2:模拟推送拉取文件

    2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;

        方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]
        方法2:showmount -e ip|wc -l

    3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;

        方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
        方法2:mysql远程登录
        方法3:使用zabbix agent自带的模板及key

    4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;

        方法1:端口(通过80的web端口) net.tcp.port[,80]
        方法2:看网页状态码、返回内容==zabbix 自带WEB检测

    5. 监控URL地址来更精确的监控我们的网站运行正常;

        使用zabbix自带的监控Web监测 进行监控

    6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。

    nginx,pptp
    ntp 端口udp 123

    7. 监控Nginx的7种连接状态。

        自定义监控

    5.3.3 监控服务通用方法

      1. 监控端口 netstat ss lsof  ==》 wc -l

      2. 监控进程 ps -ef|grep 进程|wc -l  试运行一下

      3. 模拟客户端的使用方式监控服务端

            web  ==》 curl

            mysql ==》 select insert

            memcache ==》 set再get

    5.4 实施全网监控

    安装客户端脚本,for centos6

    #!/bin/bash
    
    #设置解析
    # echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
    
    #安装zabbix源、aliyu nYUM源
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
    
    yum clean all
    yum clean all
    #安装zabbix客户端
    yum install zabbix-agent -y
    sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
    /etc/init.d/zabbix-agent start
    
    #写入开机自启动
    chmod +x /etc/rc.d/rc.local
    cat >>/etc/rc.d/rc.local<<EOF
    /etc/init.d/zabbix-agent start
    EOF

    5.4.1 使用自动发现规则

    添加自动发现规则

       创建发现动作

       查看自动发现的机器。

     

    5.4.2 监控备份服务器

    利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板

     

    在服务端进行测试

    [root@m01 ~]# zabbix_get -s 172.16.1.41 -p 10050 -k "net.tcp.listen[873]"
    1
    
    # 1为端口在监听 0为端口未监听

    将模板添加到主机

     

    5.4.3 监控NFS服务器

    创建nfs监控模板

    使用 proc.num[<name>,<user>,<state>,<cmdline>]  键值,检测nfs进程的数量

      

    在服务端进行测试

    [root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[,,,rpc]"
    5
    
    [root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[nfsd,,,]
    8

     

    将模板绑定到主机

     

    5.4.4 监控MySQL服务器

    将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。

     

    使用系统自带模板  net.tcp.port[<ip>,port] 利用自带的监控端口键值进行监控

     

    添加新的mysql监控项端口

     

    [root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "net.tcp.port[,3306]"
    1
    
    #检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

    将模板关联到主机

     

    5.4.5 监控web服务器

    创建监控模板 监控 nginx服务与 80 端口

        proc.num[<name>,<user>,<state>,<cmdline>]   进程数。返回整数
        net.tcp.port[<ip>,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

     

    [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "proc.num[,,,nginx]"
    2
    
    [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]"
    1

    将模板关联到主机

     

    5.4.6 监控URL地址

    创建监测页面

    echo ok >> /application/nginx/html/www/check.html

     

    测试监控面页

    [root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;done
    ok
    ok
    ok

    创建web监测模板

       创建应用集

     

       创建Web场景

     

       创建图形

     

    将模板关联到主机

     

    监测结果

     

    5.4.7 监控反向代理服务器

    创建自定义key

    [root@lb01 ~]# cat  /etc/zabbix/zabbix_agentd.d/userparameter_nk.conf
    UserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l

    在服务端测试

    [root@m01 ~]# zabbix_get -s 172.16.1.5  -p 10050 -k "keep-ip"
    1
    
    [root@m01 ~]# zabbix_get -s 172.16.1.6  -p 10050 -k "keep-ip"
    0

    在web界面添加模板

    将模板关联到主机

     

    5.4.8 监控Nginx的7种连接状态

    nginx服务器显示status
    ……
        location /status {
               stub_status on;
               access_log off;
        }
    ……

     

    [root@web01 ~]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;done
    Active connections: 1
    server accepts handled requests
     73 73 69
    Reading: 0 Writing: 1 Waiting: 0
    
    Active connections: 1
    server accepts handled requests
     134 134 127
    Reading: 0 Writing: 1 Waiting: 0
    
    Active connections: 1
    server accepts handled requests
     7 7 7
    Reading: 0 Writing: 1 Waiting: 0

    在nginx服务器上添加key

    cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF'
    UserParameter=nginx_active,curl -s  127.0.0.1/status|awk '/Active/ {print $NF}'
    UserParameter=nginx_accepts,curl -s  127.0.0.1/status|awk 'NR==3 {print $1}'
    UserParameter=nginx_handled,curl -s  127.0.0.1/status|awk 'NR==3 {print $2}'
    UserParameter=nginx_requests,curl -s  127.0.0.1/status|awk 'NR==3 {print $3}'
    UserParameter=nginx_reading,curl -s  127.0.0.1/status|awk 'NR==4 {print $2}'
    UserParameter=nginx_writing,curl -s  127.0.0.1/status|awk 'NR==4 {print $4}'
    UserParameter=nginx_waiting,curl -s  127.0.0.1/status|awk 'NR==4 {print $6}'
    EOF

    服务端测试

    [root@m01 ~]# zabbix_get -s 172.16.1.7  -p 10050 -k "nginx_waiting"
    0
    
    [root@m01 ~]# zabbix_get -s 172.16.1.8  -p 10050 -k "nginx_waiting"
    0
    
    [root@m01 ~]# zabbix_get -s 172.16.1.9  -p 10050 -k "nginx_waiting"
    0

    在zabbix-web上添加

     

    监控项

     

    添加图形

     

    将模板关联到主机

     

    查看添加的图形

     

    第6章 自动发现与自动注册

    6.1 自动注册与自动注册

    6.1.1 简介

    自动发现:

    zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。

    自动注册:

    zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)

    6.1.2 两种模式

    被动模式:默认  agent被server抓取数据 (都是在agent的立场上说)
    主动模式:agent主动将数据发到server端 (都是在agent的立场上说)

         注意: 两种模式都是在agent上进行配置

         zabbix 的使用要在hosts文件中预先做好主机名的解析

    6.2 自动发现--被动模式

     第一个里程碑:完成之前的安装

    zabbix Server安装完毕

       第二个里程碑:配置agent客户端

    zabbix agent安装完毕,注意配置Server=172.16.1.61

       第三个里程碑:在web界面上进行配置

        web界面:配置 >> 自动发现 >> Local network
            使用自带的自动发现规则(进行修改)即可

     

        在ip范围内输入ip,注意格式;
        延迟在实际的生产环境中要大一些,实验环境可以小一些

     

       创建发现动作

        配置 >> 动作 >> Auto discovery. Linux servers.

     

    ①  配置动作

     

    ②  在条件中添加条件,让添加更准确

     

    ③  在操作中添加

    a)  添加主机与启用主机

     

          然后等待者客户端自动上门就好

    展开全文
  • 作者:惨绿少年来源:https://www.cnblogs.com/clsn/p/7885990.html目录[-]一、监控概述二、安装Zabbix三、Web界面操作四、自定义监控与监控报警五、监控全网服务器六、自动发现与自动注册七、分布式监控与SNMP监控 ...

    作者:惨绿少年

    来源:https://www.cnblogs.com/clsn/p/7885990.html

    目录[-]

    一、监控概述

    二、安装Zabbix 

    三、Web界面操作

    四、自定义监控与监控报警

    五、监控全网服务器

    六、自动发现与自动注册

    七、分布式监控与SNMP监控

      一、监控概述  

    1.1 为什么要监控

    在需要的时刻,提前提醒我们服务器出问题了

    当出问题之后,可以找到问题的根源

    网站/服务器 的可用性

    1.1.1 网站可用性

    在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。

    1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天

    2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天

    3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。

    4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。

    5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。

    6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒

    1.2 监控什么东西

    监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控

    1.2.1 监控范畴

    64e9747540d0b547556614c7c66d3bd3.png

    1.3 怎么来监控

    1.3.1 远程管理服务器

    如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM

    1.3.2 监控硬件

    查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。

    使用ipmitool实现对服务器的命令行远程管理

    5c205e0e2c45f64d4b2b4aaac7f13545.png

    1.3.3 查看cpu相关

    lscpu、uptime、top、htop vmstat mpstat

       其中htop需要安装,安装依赖与epel源。

    8bac2e21c2058ff14fa15316f8254a77.png

    1.3.4 内存够不够可以用

    free

    c12cf70d927c872dfb622c0891030ff5.png

    1.3.5 磁盘剩多少写的快不快可以用

    df、dd、iotop

    999ca8e783c6c8c55b274908048426ea.png

    1.3.6 监控网络

    iftop nethogs

    4464138af3da8840517fd21858bffbb5.png

    1.4 监控工具总览

    mrtg 流量监控出图

    nagios 监控

    cacti  流量监控出图

    zabbix 监控+出图

    1.5 zabbix介绍

    Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。

    使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做死活监视。

    在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。

    另外,Zabbix 包含 XMPP 等各种 Item 警示功能。

    1.5.1 zabbix的组成 

    7a73a84f5f021c92485298ce049b7d9c.png

    zabbix官网: https://www.zabbix.com

    zabbix 主要由2部分构成 zabbix server和 zabbix agent

    zabbix proxy是用来管理其他的agent,作为代理

    1.5.2 zabbix监控范畴

    ²  硬件监控 :Zabbix IPMI Interface

    ²  系统监控 :Zabbix Agent Interface

    ²  Java 监控:ZabbixJMX Interface

    ²  网络设备监抟:Zabbix SNMP Interface

    ²  应用服务监控:Zabbix Agent UserParameter

    ²  MySQL 数据库监控:percona-monitoring-pldlgins

    ²  URL监控:Zabbix Web监控

         二、安装Zabbix    

    2.1 环境检查

    f1335d19e7036e31ada582861378c972.png

    2.2 安装zabbix过程

    2.2.1 安装方式选择

    编译安装 (服务较多,环境复杂)

    yum安装(干净环境)

    使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/p/7866643.html

    2.2.2 服务端快速安装脚本

    035ce75c42a7fa016e54f4c95049baab.png

    5471ba3623bfbeef5e62652070638d39.png

    2.2.3 客户端快速部署脚本

    1fa7787cf87b4a1d137752783b7f18cb.png

    2.3 检测连通性

    2.3.1 服务端安装zabbix-get检测工具

    yum install zabbix-get

    2.3.2 在服务端进行测试

    474378fcc573a97c35e4158e40ab8501.png

    三、Web界面操作

    3.1 zabbix的web安装

    3.1.1 使用浏览器访问

    http://10.0.0.61/zabbix/setup.php

    2a2b072544f5bdd8a0b01a20f22c9f2f.png

       在检测信息时,可查看具体的报错信息进行不同的解决

    36e496762f26d453076bf9e194123eba.png

       选择mysql数据库,输入密码即可

    8df46ccdd2c7b9bccb8d4aa712083d80.png

       host与port不需要修改,name自定义

    04bdd8b235218722074001738a98322f.png

     确认信息,正确点击下一步 

    78391c6cb45e095e1c26c4dca85e27ba.png

       安装完成、点击finsh

    c4d23c6274241a37a78f58f0896eff16.png

          进入登陆界面  账号Admin密码zabbix   注意A大写

    3fcc19eaa08ebbda4023459057c8a353.png

    3.2 添加监控信息

    3.2.1 修改监控管理机zabbix server

    配置 >> 主机

    4ddf06501e46b8ef75e4e2a479f492bd.png 主机名称:要与主机名相同,这是zabbix server程序用的

    可见名称:显示在zabbix网页上的,给我们看的

    e629db052709552e9d060e216e81b54f.png 修改后,要将下面的已启用要勾上 

    fcee6bb172f07bcbc8af0d0bd4cd0bcf.png

       添加完成就有了管理机的监控主机 

    00e2b5705bc80988ef56b5d4278d237b.png

    3.2.2 添加新的主机

    配置 >> 主机 >> 创建主机

    d1d9f8bad11f0f3e260b330663004984.png

    注意勾选以启用 

    b58f3b5834bcd996c1ab9598cf2ea4fc.png

       然后添加模板,选择linux OS ,先点小添加,再点大添加。 

    796f42c2e22bf5b1b63195ca7df6eaf1.png

       添加完成,将会又两条监控主机信息 

    e7355125b54bcf33feb435b48dc3e598.png

    3.2.3 查看监控内容

    检测中  >> 最新数据

       在最新数据中需要筛选, 

    bc4a6fc3b2d349ccef5719f9525a0c0f.png

       输入ip或者名字都能够搜索出来

    da9b3959104d2768ae81bfb15f7bda51.png

    在下面就会列出所有的监控项 

    9127bbf093e8c7bff21400788bdd9c21.png

    3.2.4 查看图像

    检测中 >> 图形

       选择正确的主机。选择要查看的图形即可出图 

    ce2c9520736892c74c127c4ce1b7206f.png

    四、自定义监控与监控报警

    4.1 自定义监控

    4.1.1 说明

    zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。

    需求:服务器登陆人数不能超过三人,超过三人报警

    4.1.2 预备知识

    01bba67233b386faeabeb50fc057e170.png

    4.2 实现自定义监控

    4.2.1 自定义语法

    8e00bca0731d665c335ea0760c5bee94.png

    4.2.2 agent注册

    dfeba35e99ec8b45f1b654c3a8aa49ef.png

    4.2.3 在server端注册(web操作)

    ①   创建模板

    配置 >> 模板 >> 创建模板 

    f5282c5fc6b6b3c775ec6195713da0cb.png

    点击添加,即可创建出来模板 

    f09f7f5bfeb6e1fa362260c021b6f5a5.png

       查看创建出来的模板。↑

    ②   创建应用集

    应用集类似(目录/文件夹),其作用是给监控项分类。

    点击 应用集 >> 创建应用集 

    33be5f0d1146480c3252d7b47ca12180.png

          自定义应用集的名称,然后点击添加

    ③   创建监控项

    监控项 >> 创建监控项 

    b129a53c5b74a166b04534bc2ee0e386.png

    键值 -- key,即前面出创建的login-user。 

    cee5e529f47df920219f2d6361f8c10e.png

       注意:创建监控项的时候,注意选择上应用集,即之前创建的安全。 

    bda5b32943449427d337fdf063768b1e.png

    ④   创建触发器

    触发器的作用:当监控项获取到的值达到一定条件时就触发报警

    (根据需求创建)

    触发器 >> 创建触发器

    创建触发器,自定义名称,该名称是报警时显示的名称。

       表达式,点击右边的添加,选择表达式。 

       严重性自定义。 

    ba2ddc0b4c5b65015078742f143ef826.png

       表达式的定义 ↓ ,选择之前创建的监控项,

    最新的T值为当前获取到的值。 

    b1f857466152584c48fadd1fdc5a1e59.png

       添加完成,能够在触发器中看到添加的情况 

    0b2270dc540d106973e906a42dcf5dfd.png

    ⑤   创建图形

    以图形的方式展示出来监控信息

    图形 >> 创建图形

    名称自定义,关联上监控项。 

    6d349600bb000d6f4935af0426c665a1.png

    ⑥   主机关联模板

    配置 >> 主机

       一个主机可以关联多个模板 

    e94ebaf532d6918aededdbf2db39f71c.png

    4.2.4 查看监控的图形 

    da5a3a6834e20e5fc0082dec2ce183b1.png

    4.3 监控报警

    4.3.1 第三方报警平台

    http://www.onealert.com

         通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,您可以在最合适的时间,将最重要的信息推送给最合适的人员。

    4.3.2 onealert配置

    添加应用,注意添加的是zabbix 

    5feb56a0508d0a5a81eb7311ac18375a.png

       实现微信报警需要关注微信公众号即可。 

    983d1c92a8deb77032af6462280e8191.png

    4.3.3 安装 onealert Agent

    e3c70dbacfc3a217002e638511e902c5.png

    cde52dbb4e5b9a1ddd09a564a5d111fe.png

    4.3.1 如何删除onealert Agent

    ①  删除报警媒介类型中的脚本 

    c67983bb8c0f95935d858c4181d0a395.png

    ②  删除创建的用户 

    828dfb9ed5c2de95de6ee038e6bffd32.png

    ③  删除用户群组

    53170a74b01f278a95abd68cd6bf74be.png

    ④  删除创建的动作 

    2bd05736dcbc8f7b072993aac47139d0.png

    4.3.2 触发器响应,发送报警信息 

    fbd81a9e165422db2840c291004762b9.png

       在微信和邮件中,均能收到报警信息。 

    e1569849bb32c6afee12fb05c6f0af4d.png

       注意:当状态改变的时候才会发邮件

          好-->坏

                坏-->好

    4.4 监控可视化

    4.4.1 聚合图形

    最新数据 >> 图形 

    6dccf4646a00f27956bfc4e6498963c7.png

       自定义名称 

    4f6057c57eca8d44d9c7d10436aecfb4.png

       点击聚合图形的名称,进行更改,添加要显示的图形即可。 

    c9cb99c14b65994239b1f47867d5d9cf.png

    4.4.2 幻灯片

    添加幻灯片

    监测中 >> 复合图形 >> 幻灯片演示 

    494c41c67b0682ca3cee68cd478a5b73.png

       创建幻灯片,名称自定,选择要显示的 

    f35685377431f76c3ae094fc42215cd5.png

       幻灯片根据设定的时间自动播放

    4.5 模板的共享

    4.5.1 主机共享

    在主机页打开,全选后点击导出 

    6b5e68757baf571bb344cd5e3e4bfcdb.png

       导入 

    02034a324a702d08ab1b226d9b01a06a.png

    4.5.2 模板共享

    https://github.com/zhangyao8/zabbix-community-repos 

    11a505d8e6fd3d03ed44b94fe4b93136.png

    五、监控全网服务器

    5.1 需求说明

    实际需求:

    公司已经有了100台服务器,现在需要使用zabbix全部监控起来。

    5.2 规划方案

    常规监控:cpu,内存,磁盘,网卡  问题:怎样快速添加100台机器

         方法1:使用克隆的方式

         方法2:自动注册和自动发现

         方法3:调用zabbix api接口  curl 、python

                开发自己的运维平台兼容zabbix的通道

    服务监控,url监控等特殊监控:自定义监控

    5.2.1 api接口使用(curl)

    5b9731f0373d3a96258904ba988be60f.png

    5.3 具体实施规划

    5.3.1 硬件、系统、网络监控

    所有集群节点(所有虚拟机)都监控上

    交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)

    snmp监控

    5.3.2 应用服务监控

    1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;

    方法1:监控873端口net.tcp.port[,873]   方法2:模拟推送拉取文件

    2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;

    方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]   方法2:showmount -e ip|wc -l

    3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;

    方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
       方法2:mysql远程登录
       方法3:使用zabbix agent自带的模板及key

    4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;

    方法1:端口(通过80的web端口) net.tcp.port[,80]
       方法2:看网页状态码、返回内容==zabbix 自带WEB检测

    5. 监控URL地址来更精确的监控我们的网站运行正常;

    使用zabbix自带的监控Web监测 进行监控

    6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。

    nginx,pptp
    ntp 端口udp 123

    7. 监控Nginx的7种连接状态。

    自定义监控

    5.3.3 监控服务通用方法

    1. 监控端口 netstat ss lsof  ==》 wc -l

    2. 监控进程 ps -ef|grep 进程|wc -l  试运行一下

    3. 模拟客户端的使用方式监控服务端

            web  ==》 curl

            mysql ==》 select insert

            memcache ==》 set再get

    5.4 实施全网监控

    安装客户端脚本,for centos6

    c0a9039b539572f3fabad39000857d42.png

    5.4.1 使用自动发现规则

    添加自动发现规则

    68766d388e0547788636ccb0db0536c9.png

     创建发现动作

    d20f7e53b43f7b462a5fc27553663c5f.png

    查看自动发现的机器。 

    e493ae9f16d50f34b14a06167b2be236.png

    5.4.2 监控备份服务器

    利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板 

    fa83c0c8385b21125c3ec5ded0f4ce0d.png

    在服务端进行测试

    69019970f8e7c1aabcb88016d64a4d28.png

    将模板添加到主机 

    95e3683925a2e5e6ef1234ca7814abcf.png

    5.4.3 监控NFS服务器

    创建nfs监控模板

    使用 proc.num[,,,]  键值,检测nfs进程的数量 

    933ce691d73c3aa2b823d8b50455245a.png

     在服务端进行测试

    7ef4a7fe369e3fa8fb764f66f5c19a92.png

    将模板绑定到主机 

    8d2d4e4b378db0be322e8a51f66e2e4b.png

    5.4.4 监控MySQL服务器

    将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。 

    bc4813de8508e3e1c2ef19cba5bed2bf.png

    使用系统自带模板  net.tcp.port[,port] 利用自带的监控端口键值进行监控 

    c62ec3ac418925a3687e22e07ac3560a.png

    添加新的mysql监控项端口 

    4a19a91adba4ab88bafc75a6468d7693.png

    [root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 
    -k "net.tcp.port[,3306]"1
    #检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

    将模板关联到主机 

    6bbf5fdbf8e48b97787c560a4841bd67.png

    5.4.5 监控web服务器

    创建监控模板 监控 nginx服务与 80 端口

    proc.num[,,,]进程数。返回整数
      net.tcp.port[,port] 
    检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

    fa11b70f0f9ccef845d8dc727225e7d0.png

    [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k 
    "proc.num[,,,nginx]"2[root@m01 ~]
    # zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]"1

    将模板关联到主机 

    02926e3884e7939e1d770a0f4a3161cd.png

    5.4.6 监控URL地址

    创建监测页面

    echo ok >> /application/nginx/html/www/check.html

    测试监控面页

    [root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;doneok
    ok
    ok

    创建web监测模板

       创建应用集 

    8fb2d28fcac70da2981f58f614e8b33b.png

       创建Web场景 

    50b8eb8b7c0f7d11df989e4b3ff221dd.png

       创建图形

    318360aa8673abcc84d82fe35d33aa50.png

    将模板关联到主机 

    55d9ac44fba7f6f733b48c47d3fe128c.png

    监测结果 

    badbbbbf9352ad9c33a04ba4a0ed2f3f.png

    5.4.7 监控反向代理服务器

    创建自定义key

    [root@lb01 ~]
    # cat /etc/zabbix/zabbix_agentd.d/userparameter_nk.confUserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l

    在服务端测试

    [root@m01 ~]# zabbix_get -s 172.16.1.5  -p 10050 -k "keep-ip"1[root@m01 ~]# zabbix_get -s 172.16.1.6  -p 10050 -k "keep-ip"0

    在web界面添加模板

    ef2bedc67d41d4af75c27bf957606858.png

     将模板关联到主机 

    e2c5aaf28d9955948cea3ab4032fc56e.png

    5.4.8 监控Nginx的7种连接状态

    nginx服务器显示status
    ……
      location /status {
             stub_status on;
             access_log off;
      }
    ……
    [root@web01 ~]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;doneActive connections: 1server accepts handled requests 73 73 69Reading: 0 Writing: 1 Waiting: 0
    Active connections: 1server accepts handled requests 134 134 127Reading: 0 Writing: 1 Waiting: 0
    Active connections: 1server accepts handled requests 7 7 7Reading: 0 Writing: 1 Waiting: 0

    在nginx服务器上添加key

    cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF'UserParameter=nginx_active,curl -s  127.0.0.1/status|awk 
    '/Active/ {print $NF}'UserParameter=nginx_accepts,curl -s  127.0.0.1/status|awk 
    'NR==3 {print $1}'UserParameter=nginx_handled,curl -s  127.0.0.1/status|awk 
    'NR==3 {print $2}'UserParameter=nginx_requests,curl -s  127.0.0.1/status|awk 
    'NR==3 {print $3}'UserParameter=nginx_reading,curl -s  127.0.0.1/status|awk 
    'NR==4 {print $2}'UserParameter=nginx_writing,curl -s  127.0.0.1/status|awk 
    'NR==4 {print $4}'UserParameter=nginx_waiting,curl -s  127.0.0.1/status|awk 
    'NR==4 {print $6}'EOF

    服务端测试

    [root@m01 ~]# zabbix_get -s 172.16.1.7  -p 10050 -k "nginx_waiting"0
    [root@m01 ~]# zabbix_get -s 172.16.1.8  -p 10050 -k "nginx_waiting"0
    [root@m01 ~]# zabbix_get -s 172.16.1.9  -p 10050 -k "nginx_waiting"0

    在zabbix-web上添加 

    3bd2481ad3fb8a59b54a4b0d0c02264e.png

    监控项

    190f66f7d72623a66f13a7624e61fd86.png

    添加图形 

    4596bb5c735d3ea53a7cdfbcd0c73c1c.png

    将模板关联到主机 

    90a18fdd4832587340af3e7721bd7331.png

    查看添加的图形 

    503cb97efb2e610c08ac150f6e416202.png

    8190a779a18b0dd139660a054bb33f17.png

    六、自动发现与自动注册

    6.1 自动注册与自动注册

    6.1.1 简介

    自动发现:

    zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。

    自动注册:

    zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)

    6.1.2 两种模式

    被动模式:默认 agent被server抓取数据 (都是在agent的立场上说)
    主动模式:agent主动将数据发到server端 (都是在agent的立场上说)

         注意: 两种模式都是在agent上进行配置

         zabbix 的使用要在hosts文件中预先做好主机名的解析

    6.2 自动发现--被动模式

    第一个里程碑:完成之前的安装

    zabbix Server安装完毕

       第二个里程碑:配置agent客户端

    zabbix agent安装完毕,注意配置Server=172.16.1.61

       第三个里程碑:在web界面上进行配置

    web界面:配置 >> 自动发现 >> Local network
    使用自带的自动发现规则(进行修改)即可 

    1debbec29447eb2a88781a18b919dd23.png

    在ip范围内输入ip,注意格式;
    延迟在实际的生产环境中要大一些,实验环境可以小一些 

    8eb5e6ec3961820575858cba4465f4f5.png

       创建发现动作

    配置 >> 动作 >> Auto discovery. Linux servers. 

    88c2feedefe79b44f21b2a6d5853fc35.png

    ①  配置动作 

    eb03505635a2346acc36f99880c8bd33.png

    ②  在条件中添加条件,让添加更准确 

    2ec2542ca1f3a769a141bc79bfff91b2.png

    ③  在操作中添加

    a)  添加主机与启用主机 

    d7fa48fc24885fcbb3ad65b37157a3b3.png

    然后等待者客户端自动上门就好😏

    6.3 自动注册--主动模式

    第一个里程碑:zabbix Server安装完毕 (完成)

    zabbix Server安装完毕

       第二个里程碑:zabbix agent安装完毕,需要额外增加的配置

    vim /etc/zabbix/zabbix_agentd.conf
    ServerActive=172.16.1.61# Hostname=Zabbix serverHostnameItem=system.hostname
    systemctl restart zabbix-agent.service
    netstat -tunlp|grep zabbix

        源文件与修改后对比

    0a2ef5325ff98f05726b46b1cb83864c.png67264aa997dabae368d2977e31d27c0d.png

       第三个里程碑:在web见面上进行配置

    1 配置 >> 动作 >> 事件源(自动注册) >> 创建动作

    3fbb66128d6557368cef19a1bbafd849.png创建动作,添加名称即可 

    2eb3f408bc7359bc8ec4bdd6ed77fb9e.png条件中也无需修改 

    d3be8e6d9f849f7a0bdcec70c097df41.png

        在动作中添加动作

    (添加主机、添加到主机群组、链接到模板) 

    33dc18f320d3006d1618f18c7c945e85.png

        添加完动作后,等待就行了

        注意:重启客户端可以加速发现。但是在生产环境中勿用。 

    19b99f42991e1bc0e5834c28d9d81ea7.png

    七、分布式监控与SNMP监控

    7.1 分布式监控

    7.1.1 作用

        分担压力,减轻负载

        多机房监控

    zabbix Server  ===》  zabbix agent (只能同一个局域网监控)

    分担压力,降低负载

    zabbix Server ===》  zabbix proxy  
    ===》zabbix agent1 agent2 agent3 。。。   172.16.1.61           172.16.1.21        172.16.1.0/24
    ===》  zabbix proxy  
    ===》zabbix agent4 agent5 agent6 。。。

    多机房监控

    zabbix Server(北京)           
    ==》 zabbix proxy(每个机房搭建)  
    ==》 zabbix agent    122.71.240.233/172.16.1.61          
    122.71.241.11/172.16.2.21     172.16.2.0/24

    7.1.2 环境说明

    zabbix server m01
      zabbix proxy cache01
      zabbix agent  cache01

    7.1.3 配置zabbix proxy

    第一个里程碑:配置zabbix yum源,并安装proxy

    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    yum install zabbix-proxy-mysql -y

       第二个里程碑:安装数据库

        zabbix  proxy也需要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息

       #安装数据库

    yum -y install mariadb-server
    systemctl start mariadb.service

       #建立数据库

    mysql
    create database zabbix_proxy character set utf8 collate utf8_bin;
    grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 
    'zabbix';
    exit

       #导入数据文件

    zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

       #配置zabbix proxy 连接数据库

    sed -i.ori 
    '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
    sed -i 
    's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf
    sed -i 
    's#Hostname=Zabbix proxy#Hostname=cache01#' /etc/zabbix/zabbix_proxy.conf# Hostname 作为后面添加的代理程序名称,要保持一致

       #启动

    systemctl restart zabbix-proxy.service

       #检查端口

    [root@cache01 ~]# netstat -lntup |grep zabbixtcp        0      0 0.0.0.0:10050     0.0.0.0:*       LISTEN      105762/zabbix_agent
    tcp        0      0 0.0.0.0:10051   0.0.0.0:*         LISTEN      85273/zabbix_proxy 
    tcp6       0      0 :::10050       :::*      LISTEN      105762/zabbix_agent
    tcp6       0      0 :::10051  :::*           LISTEN      85273/zabbix_proxy

       第三个里程碑:修改agent配置指向 proxy

    [root@cache01 ~]
    # grep ^Server /etc/zabbix/zabbix_agentd.confServer=172.16.1.61ServerActive=172.16.1.61[root@cache01 ~]
    # sed -i 's#172.16.1.61#172.16.1.21#g' /etc/zabbix/zabbix_agentd.conf[root@cache01 ~]
    # grep ^Server /etc/zabbix/zabbix_agentd.confServer=172.16.1.21ServerActive=172.16.1.21[root@cache01 ~]
    # systemctl restart zabbix-agent.service

       第四个里程碑:web界面添加代理

        管理 >> agent代理程序 >> 创建代理 

    0cc842249387a48b05158dc54e561257.png

       代理程序名称要填写主机名 

    fc2b5b5362a91e44fc1260e6982d8b14.png

       稍等片刻就能在程序中出现代理 

    cd020a66cc1971b3eda718eccad9a4a3.png

       在主机中能发现主机代理 

    62687e05979882d2298565c600bc489e.png

    7.2 SNMP监控

    7.2.1 使用范围

    无法安装agent  很多前辈的监控软件都可以监控各种设备  都是通过snmp监控

    snmp simple network manager protocol 简单网络管理协议

    简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

    7.2.2 安装snmp程序

    yum -y install net-snmp net-snmp-utils

    7.2.3 配置snmp程序

    sed -i.ori 
    '57a view systemview   included  .1' /etc/snmp/snmpd.conf
    systemctl start snmpd.service

    7.2.4 测试snmp

    [root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysnameSNMPv2-MIB::sysName.0 = STRING: m01

    说明:

    # snmpwalk 类似 zabbix_get

    # -v 2c  指定使用snmp协议的版本  snmp分为v1 v2 v3

    # -c public  指定暗号

    # sysname  类似zabbix的key

    7.2.5 在web界面进行配置

    添加新的主机,注意使用snmp接口 

    6b778374f92964cedc3be51e57a9eede.png

    选择模板,注意使用SNMP的模板 

    37bd695a63623fae790944e865262052.png

        添加完成就能够在主机中看到snmp监控对的主机 

    db6c76835b386e2a982ddd3c0a812457.png

    END

    67bee3cf00820920b0d5f10a9cca4615.png

    往期推荐阅读:学习 Ansible Playbook,有这篇文章就够了!16 张图带你快速入门 Ansible值得一看的运维技能图谱常见面试题:Java 应用如何调优?Kubernetes + Jenkins + Helm + Springboot 实践Kubeadm 部署高可用 K8S 集群10 个Linux Awk文本处理经典案例30个Linux Shell脚本经典案例(下)一文搞懂蓝绿发布、灰度发布和滚动发布让运维简单高效,轻松搞定运维管理平台Kubernetes 企业容器云平台实战 

    9abdf12d39f7d1f4ec8b089703849dfd.png

    年轻时偷的懒,迟早是要还的。点亮2c0b0e98db476e352e021133d463d638.gif

    展开全文
  • 关闭SeLinux setenforce 0 永久关闭: vi /etc/selinux/config 关闭防火墙 systemctl stop firewalld.service ...zabbix要将数据存入数据库,所以要安装Mysql : https://blog.csdn.net/qq_43059674/article/detail
  • Zabbix安装教程

    2018-06-26 14:15:42
    Zabbix安装教程Zabbix安装教程Zabbix安装教程Zabbix安装教程
  • zabbix教程:zabbix从放弃到入门(1):zabbix概念 zabbix教程:zabbix从放弃到入门(2):安装zabbix zabbix教程:zabbix从放弃到入门(3):在zabbix中添加主机 zabbix教程:zabbix从放弃到入门(4):在zabbix中...
  • Zabbix的基本使用

    千次阅读 2022-03-23 17:53:22
    文章目录一、概述二、项目1、软件安装和环境部署2、Zabbix工具的使用(1)、创建被控主机(2)、中文乱码修复(3)、自动发现主机(4)、自动注册主机3、zabbix的API调用4、zabbix自定义监控项5、zabbix监控数据库6...

    一、认识Zabbix

    1、简介

    Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。

    Zabbix 是一种企业级的分布式开源监控解决方案。

    Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。

    Zabbix 支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。

    2、功能

    数据采集
    可用性和性能采集;
    支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
    自定义检查;
    按照自定义的时间间隔采集需要的数据;
    通过 Server/Proxy 和 Agents 来执行数据采集。
    灵活的阈值定义
    您可以定义非常灵活的告警阈值,称之为触发器,触发器从后端数据库获得参考值。
    高度可配置化的告警
    可以根据递增计划、接收者、媒介类型自定义发送告警通知;
    使用宏变量可以使告警通知变得更加高效有益;
    自动动作包含远程命令。
    实时图形
    使用内置图形功能可实以将监控项绘制成图形。
    Web 监控功能
    Zabbix 可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
    丰富的可视化选项
    能够创建可以将多个监控项组合到单个视图中的自定义图形;
    网络拓扑图;
    以仪表盘样式展示自定义聚合图形和幻灯片演示;
    报表;
    监控资源的高层次(业务)视图。
    历史数据存储
    存储在数据库中的数据;
    可配置的历史数据;
    内置数据管理机制(housekeeping)。
    配置简单
    将被监控设备添加为主机;
    主机一旦添加到数据库中,就会采集主机数据用于监控;
    将模板用于监控设备。
    套用模板
    在模板中分组检查;
    模板可以关联其他模板,获得继承。
    网络发现
    自动发现网络设备;
    Zabbix Agent 发现设备后自动注册;
    自动发现文件系统、网络接口和 SNMP OIDs 值。
    快捷的 Web 界面
    基于 PHP 的 Web 前端;
    可以从任何地方访问;
    您可以定制自己的操作方式;
    审计日志。
    Zabbix API
    Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
    权限管理系统
    安全的用户身份验证;
    将特定用户限制于访问特定的视图。
    功能强大且易于扩展的 Zabbix Agent
    部署于被监控对象上;
    完美支持 Linux 和 Windows ;
    二进制守护进程
    为了更好的性能和更少的内存占用,采用 C 语言编写;
    便于移植。
    适应更复杂的环境
    使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控。

    3、架构

    Zabbix 由几个主要的功能组件组成,其职责如下所示。
    Server
    Zabbix server 是 Zabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。是存储所有配置信息、统计信息和操作信息的核心存储库。
    数据库
    所有配置信息以及 Zabbix 收集到的数据都被存储在数据库中。
    Web 界面
    为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
    Proxy
    Zabbix proxy 可以替 Zabbix server 收集性能和可用性数据。Zabbix proxy 是 Zabbix 环境部署的可选部分;然而,它对于单个 Zabbix server 负载的分担是非常有益的。
    Agent
    Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。

    4、数据流

    此外,重要的是,需要回过头来了解下 Zabbix 内部的整体数据流。首先,为了创建一个采集数据的监控项,您就必须先创建主机。其次,必须有一个监控项来创建触发器。最后,您必须有一个触发器来创建一个动作,这几个点构成了一个完整的数据流。因此,如果您想要收到 CPU load it too high on Server X 的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监视其 CPU 的监控项,最后创建一个触发器,用来触发 CPU is too high 这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,其实并不复杂。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。

    二、项目

    1、软件安装和环境部署

    在Zabbix官方网站zabbix.com查找需要部署的主机的类型
    在这里插入图片描述
    根据官网提示部署:
    安装Zabbix仓库Install Zabbix repository

    rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    #线上联网才能下载安装
    yum clean all
    #清除之前的安装记录
    

    在这里插入图片描述
    编辑/etc/yum.repos.d/zabbix.repo并使其生效,需要修改的地方:
    bix
    仓库搭建好查看仓库内容
    在这里插入图片描述
    安装Zabbix的前端包

    yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
    

    安装Zabbix服务端和代理端Install Zabbix server and agent

     yum install zabbix-server-mysql zabbix-agent -y
    

    阿里巴巴开源镜像站–>工具–>zabbix

    安装Zabbix前端服务Install Zabbix frontend

    yum install centos-release-scl -y
    

    在这里插入图片描述

    在这里插入图片描述
    将repo文件的releasever改称7

    vim中的技巧
    
    :%s/$需要被替换的内容/替换的内容/
    
    回车即可实现替换
    

    在这里插入图片描述
    创建并初始化数据库
    下载mysql系列压缩包并解压
    网址戳这里
    在这里插入图片描述

    tar xf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
    yum install -y 
    mysql-community-common-5.7.37-1.el7.x86_64.rpm 
    mysql-community-client-5.7.37-1.el7.x86_64.rpm 
    mysql-community-libs-5.7.37-1.el7.x86_64.rpm 
    mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm 
    mysql-community-server-5.7.37-1.el7.x86_64.rpm
    systemctl start mysqld
    cat /var/log/mysqld.log
    

    初始密码在日志中会有,要耐心找:
    在这里插入图片描述

    mysql_secure_installation#初始化数据库
    

    先复制之前日志的密码再设置密码,这里注意再次设置的密码需要包括字母大小写数字符号的8位密码,否则会…进入循环
    在这里插入图片描述
    设置完成要记住密码,之后的问题除了下面的回答NO,其他全是YES
    在这里插入图片描述
    接着使用密码进入数据库,可以执行一两条测试

    # mysql -uroot -p
    password
    #创建zabbix数据库,创建数据库用户并授权
    mysql> create database zabbix character set utf8 collate utf8_bin;
    mysql> create user zabbix@localhost identified by 'password写自己的密码';
    mysql> grant all privileges on zabbix.* to zabbix@localhost;
    mysql> quit;
    

    在这里插入图片描述

    #导入初始架构和数据
    zcat create.sql.gz | mysql -uzabbix -p zabbix
    #该命令很长,会执行一小会儿,中间不要打断
    

    在这里插入图片描述
    为Zabbix服务器配置数据库Configure the database for Zabbix server

    vim /etc/zabbix/zabbix_server.conf
    
    DBPassword=password
    

    在这里插入图片描述

    #修改时区
    vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
    
    php_value[date.timezone] = Asia/Shanghai
    
    #重启并设置zabbix-server,zabbix-agent,httpd,rh-php72-php-fpm这几个服务为开机自启
    systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
    systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
    

    测试 在真机浏览器访问serverIP/zabbix即进入zabbix网页安装模式
    在这里插入图片描述
    输入设置好的数据库密码
    在这里插入图片描述
    在这里插入图片描述

    注意:默认的登陆界面中,用户为Admin,密码为zabbix

    安装成功进入zabbix的界面,语言在User settings里可以修改
    在这里插入图片描述

    2、Zabbix工具的使用

    (1)、创建被控主机

    在代理主机1和代理主机2分别安装代理服务

    先复制服务端的ZABBIX.repo仓库文件

    修改.repo文件
    将所有的GPGCHECK关闭
    gpgcheck=0
    

    否则会出现报错如下:
    (报错的原因:yum仓库设置gpgcheck=1,下载安装时会去校验GPG key,本地找不到file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zabbix就会报此错误。)
    在这里插入图片描述
    修改配置文件:(配置服务端主机IP)
    在这里插入图片描述
    配置代理端IP和hostname
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    添加成功效果展示在这里插入图片描述
    全绿才算添加成功。如果有红色需要查看具体的报错,如:

    Get value from agent failed: cannot connect to [[172.25.76.2]:10050]: [113] No route to host
    113号报错,无法连接到主机
    

    先考虑网络,这里网络是通畅的,再考虑火墙,这里火墙没有关闭,关闭后再重启服务即可成功。

    (2)、中文乱码修复

    在界面切换至中文时,一些地方会出现乱码现象
    在这里插入图片描述
    浏览器刷新后,中文可正常显示

    (3)、自动发现主机

    自动发现主机功能:由服务端主动发起,Zabbix Server开启发现进程,定时扫描并设别局域网中IP服务器和设备
    配置agebt2主机的zabbix-agent服务

    yum install -y zabbix-agent
    systemctl enable --now zabbix-agent
    vim /etc/zabbix/zabbix-agent.conf
    

    在这里插入图片描述
    在这里插入图片描述
    创建自动发现规则
    配置–自动发现–创建发现规则
    在这里插入图片描述
    为自动发现规则设置相应的动作

    配置–动作–Tigger actions
    在这里插入图片描述
    动作和操作都完成才能创建成功
    在这里插入图片描述
    在这里插入图片描述
    设置完成后静静等待一分钟,自动发现了agent2,证明自动发现规则生效
    在这里插入图片描述

    (4)、自动注册主机

    自动注册主机由客户端主动发起,客户端必须安装并启动Agentd,否则无法被自动注册添加至主机列表;对于使用SNMP的就要采用自动发现了

    为实现本实验效果并不浪费本人PC的资源,删除上一个实验创建的自动发现规则并删除主机agebt2

    创建动作和操作

    这次选择Autoregister actions
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    静静等待一会儿agent2会注册成功,证明该自动注册动作设置生效
    在这里插入图片描述

    3、zabbix的API调用

    Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:

    • 创建新的应用程序以使用Zabbix;
    • 将Zabbix与第三方软件集成;
    • 自动执行常规任务

    Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着两点:

    • 该API包含一组独立的方法;
    • 客户端和API之间的请求和响应使用JSON格式进行编码

    具体API调用实验:
    当完成了前端的安装配置后,可以使用远程HTTP请求来调用API;为此,需要向位于前端目录中的 api_jsonrpc.php 文件发送HTTP POST请求

    验证
    在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。让我们假设你想要以标准Zabbix Admin用户身份登录。

    vim zabbix_api.sh
    ---
    #!/bin/bash
    curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
    {
        "jsonrpc": "2.0",
        "method": "user.login",
        "params": {
            "user": "Admin",
            "password": "zabbix"
        },
        "id": 1,
        "auth": null
    }' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool
    ---
    
    其中
    {
        "jsonrpc": "2.0",
        "method": "user.login",
        "params": {
            "user": "Admin",
            "password": "zabbix"
        },
        "id": 1,
        "auth": null
    }是json请求的内容
    

    细看看示例请求对象。它具有以下属性

    • jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现的JSON-RPC版本是2.0;
    • method - 被调用的API方法名;
    • params - 将被传递给API方法的参数;
    • id - 请求的任意标识符;
    • auth -用户认证令牌; 如果没有的话可以设置为null

    如果你正确提供了凭据,API返回的响应将包含用户身份验证令牌:
    在这里插入图片描述
    响应对象包含以下属性:

    • jsonrpc - JSON-RPC协议的版本;
    • result - 请求返回的数据;
    • id - 相应请求的id。

    检索主机
    现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。
    例如,可以使用 host.get 方法检索所有已配置主机的ID,主机名和接口

    vim zabbix_api_1.sh
    ---
    {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": [
                "hostid",
                "host"
            ],
            "selectInterfaces": [
                "interfaceid",
                "ip"
            ]
        },
        "id": 2,
        "auth": "0424bd59b807674191e7d77572075f33"
    }
    
    

    注意, auth 属性现在设置为通过调用user.login方法获得的身份验证令牌

    响应对象将包含有关主机的请求的数据:
    在这里插入图片描述
    删除主机

    vim zabbix_api_del.sh
    ---
    #!/bin/bash
    curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
    {
        "jsonrpc": "2.0",
        "method": "host.delete",
        "params": [
        ##这里是需要爱删除的主机的hostid
    	"10440"
        ],
        ##这里是之前的身份验证令牌
        "auth":"9e379f59399c2e02335d024ce64a1519",
        ##这里是主机名hostname所带的数字
        "id": 2
    }' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool
    ---
    

    响应对象的显示
    在这里插入图片描述
    再次查看服务端及其代理端,发现agent已被删除
    在这里插入图片描述
    图形监控界面得到的效果:成功删除agent1主机
    在这里插入图片描述
    创建主机

    vim zabbix_api_create.sh
    ---
    #!/bin/bash
    curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
    {
        "jsonrpc": "2.0",
        "method": "host.create",
        "params": {
            "host": "agent2",
    	"interfaces": [
    	    {
    		"type": 1,
                    "main": 1,
                    "useip": 1,
                    "ip": "172.25.76.3",
                    "dns": "",
                    "port": "10050"
    	    }
    	],
    	"groups": [
    	    {
    	    ####这里群组的ID需要在zabbix主页查看
    		"groupid": "2"
    	    }
    	],
            "tags": [
                {
    		"tag": "Host name",
    		"value": "Linux server"
                }
            ],
            "templates": [
                {
                ##这里模板的ID需要在zabbix主页的url处查看
    		"templateid": "10001"
                }
            ]
        },
        "auth": "9e379f59399c2e02335d024ce64a1519",
        "id": 3
    }' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool
    

    查看群组ID
    在这里插入图片描述
    查看模板ID
    在这里插入图片描述
    在这里插入图片描述
    图形监控界面得到的效果:成功添加agent2主机,特定的设置也有显示
    在这里插入图片描述

    4、zabbix自定义监控项

    这里监控agent2的nginx服务,首先在agent2上配置nginx服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在被监控主机agent2配置被监控项目

    在图形界面创建监控项:主机–boke3–监控项–创建监控项
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在zabbix服务器端server使用zabbix_get查看效果
    安装zabbix-get工具的步骤
    在这里插入图片描述
    在这里插入图片描述

    5、zabbix监控数据库

    mysql服务器所在主机已安装zabbix agent;与在zabbix agent端自定义监控项类似,监控项类型为“zabbix 客户端(被动型)”,由mysql服务器上的zabbix agent执行登录检查命令,并将结果回传给zabbix server
    在这里插入图片描述
    配置zabbix-agent的mysql参数文件

    重启zabbix-agent稍候查看监控效果

    6、zabbix结合percona监控数据库

    percona zabbix mysql-plugin是percona发布的一个使用zabbix监控mysql数据库的工具,这款工具比zabbix自带的监控模板要强大的多,毕竟percona是Mysql的一个重要分支,专业做数据库的,所以,采集的数据比较全面;percona的监控插件是php编写的,通过php连接mysql来获取相关的数据,所以需要在安装zabbix agent的同时,部署php和php-mysql

    yum install -y php php-mysql
    

    在这里插入图片描述

    安装percona监控模板插件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    wget http://jaminzhang.github.io/soft-conf/Zabbix/zbx_percona_mysql_template.xml
    

    在这里插入图片描述

    展开全文
  • 内容简介本文将介绍如何配置主动模式监控,实验环境为...[root@localhost ~]# zabbix_server -V --这里我的zabbix是4.0版本需要手工创建主动监控模板zabbix_server (Zabbix) 4.0.17Revision a528a0a4bc 28 January 2...
  • 第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了  当出问题之后,可以找到问题的根源  网站/服务器 的可用性 1.1.1 网站可用性  在软件系统的高可靠性(也称为可用性,...
  • Zabbix中文使用手册.pdf

    2021-08-11 22:09:50
    Zabbix中文使用手册
  • zabbix概念 zabbix安装 zabbix使用 其他
  • zabbix3.4详细安装教程

    千次阅读 多人点赞 2022-02-10 13:45:30
    Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。 ...
  • Zabbix视频教程

    2020-07-10 16:37:00
    Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,课程详细讲解了Zabbix使用
  • 这是官方文档链接,不懂的地方可以回来查官方文档。 https://www.zabbix.com/documentation/5.0/zh/manual 废话不多说,直接开始搭建安装。 一、zabbix 5.0搭建 1.由于要监控多台服务器,为了...[root@zabbix ~]# host
  • zabbix学习教程

    2018-10-11 16:31:42
    zabbix学习教程,从安装到精通。有挂接,短信挂接等
  • 一、安装postgresql数据库 win64安装postgresql10 下载 ...安装 打开安装包,傻瓜式默认安装,请谨记 “数据库密码” 和 “端口号” ,安装完成后,打开任务管理器,打开任务,看到postgresql服务存在,并启动,说明...
  • zabbix 安装教程

    2014-09-24 16:57:20
    zabbix 安装 教程 配置 使用 进过测试可以很好用
  • zabbix3.4中文教程

    热门讨论 2017-09-01 10:38:41
    zabbix3.4中文教程 从官网进行复制粘贴来的 好辛苦 Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈...
  • zabbix使用手册详细配置-零基础入门

    千次阅读 2020-06-27 10:55:19
    remote |grep zabbix (查看zabbix对应的插件) grafana-cli plugins install alexanderzobnin-zabbinx-app service grafana-server restart (想要插件生效,需要重启) 访问 http://IP:3000/ (后续配置及使用,...
  • │ └ zabbix.docx ├ 2.资料 │ │ centos6.8.tar │ │ kubeadm-basic.images.tar.gz │ │ ThinkServer-RAID卡用户手册-V1.3.pdf │ │ yum.zip │ │ 第一节 环境安装部署.pdf │ ├ hadoop │ │ └ hadoop.tar...
  • 目录网盘文件永久链接 1 笔记 zabbix Kubernetes 2 资料 hadoop helm kafka nfs文件 ThinkServer-RAID卡用户手册-V1.3 yum kubeadm-basic.images.tar 第一节 环境安装部署 centos6.8 3 视频 K8s
  • zabbix监控教程

    千次阅读 2021-12-30 18:48:03
    5、重启zabbix-agent(两个机器都重启) service zabbix-agent restart 6、 zabbix服务端使用zabbix_get 测试获取数据 zabbix_get -s (nginx服务器IP) -k nginx_status[active] 注意点:nginx_status为键值,需要...
  • 1、ZABBIX从入门到精通v3.0.1 - 运维生存时间(2016).pdf 2、zabbix监控2.6安装部署...4、Zabbix教程从入门到精通v1.0(TTLSA官方出品).pdf 5、Zabbix企业完整.pdf 6、Zabbix使用说明.pdf 7、Zabbix使用手册V2.0.pdf
  • Zabbix配置教程

    2020-06-09 21:45:18
    Zabbix配置教程
  • 手把手搭建zabbix教程 搭建zabbx平台https://blog.csdn.net/liuxiangyang_/article/details/97390270 监控window 监控linux-ubuntu https://blog.csdn.net/liuxiangyang_/article/details/100051584 监控linux-...
  • zabbix安装教程

    2018-07-06 17:35:05
    zabbix搭建的全过程,很详细的介绍的在centos6.5下搭建zabbix
  • Zabbix2.0使用手册.pdf

    2021-08-20 00:09:44
    Zabbix2.0使用手册.pdf
  • zabbix5.0安装使用教程(详细版)

    千次阅读 2020-11-03 15:41:16
    zabbix5.0安装使用教程(详细版) 前言:SQL: 5.7以上、PHP: 7.2以上、web默认账号Admin密码zabbix 服务器需关闭SELinux、开通防火墙相应端口或关闭防火墙 客户端需开通防火墙相应端口 服务器端口10051 客户端agent...
  • 安装环境:VMware虚拟机 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@localhost ~]# uname -a Linux localhost....https://www.zabbix.com/documentation/3.2/

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,544
精华内容 1,817
关键字:

zabbix使用教程

友情链接: EasyTalk_X2.2.zip