zoukankan      html  css  js  c++  java
  • Zabbix分布式监控系统实践 自定义配置

    https://www.zabbix.com/wiki/templates/start

    环境介绍
    OS: Ubuntu 10.10 Server 64-bit
    Servers:
    zabbix-server:10.6.1.181
    zabbix-client-1:10.6.1.182

    1. 环境部署
    在上一个章节,我们已经搭建好了一个最小的环境,即一个server,一个agent;但这仅仅只是一个开始,想要用Zabbix实现对服务器的资源按照自己的需求进行监控,然后绘图,报警,还需要一系列的配置才行。

    而在本章,我们就通过完成以下任务来完成对Zabbix自定义配置的熟悉:
    1.通过Zabbix内建的方法来监控CPU,内存,交换分区,磁盘空间,网络IO等系统信息;
    2.设置Trigger,指定各个监控项的阈值;
    3.自定义各个监控项的绘图格式和颜色等;
    4.在agent上安装Nginx;
    5.配置自定义监控Nginx进程状态的模板,方法等;
    6.配置HTTP Check方式的监控;
    7.配置邮件报警并模拟故障;

    2. 配置步骤
    2.1 配置Agent并创建Host,使Server与Agent建立联系

    查看Agent主机名
    ubuntu@zabbix-client-1:~$ hostname

     
    zabbix-client-1
    

    配置相应的选项
    ubuntu@zabbix-client-1:~$ sudo vim /usr/local/etc/zabbix_agentd.conf

     
    Server=10.6.1.181
    ServerActive=10.6.1.181
    Hostname=zabbix-client-1
    

    重启Agent
    ubuntu@zabbix-client-1:~$ sudo /etc/init.d/zabbix-agent restart

     
    Stopping Zabbix agent daemon: zabbix_agentd
    Starting Zabbix agent daemon: zabbix_agentd
    

    到WEB界面中创建Host
    Configuration - Hosts - Create host

    创建成功后,可以看到对应的Host,但右侧不会显示绿色的被监控图标,因为目前还没有配置任何监控选项

    2.2 通过Zabbix内建的方法来监控CPU,内存,交换分区,磁盘空间等系统信息
    到WEB界面中选择内置模板Template OS Linux
    Configuration - Templates

    然后在Host列表中,可以看到zabbix-client-1已经处于绿色的被监控状态了
    Configuration - Hosts

    内置模板已经具备一些监控选项和绘图,我们可以直接查看
    Monitoring - Graphs

    如下所示,即zabbix-client-1的CPU Load,磁盘空间,以及网络流量的图表
    注:默认的自动发现配置为每个小时执行一次,因此在没有修改配置的情况下需要1个小时以后才能看到这些图表。
    (手动修改可以通过 Configuration - Hosts - zabbix-client-1 - Discovery rules中修改对应的 Interval的值)

    2.3 设置Trigger,指定各个监控项的阈值
    Configuration - Hosts - zabbix-client-1 - Triggers

    默认已经有了不少的Trigger,比如磁盘的报警阈值就设置为了20%

    手动修改磁盘的报警阈值为10%
    Template - Template OS Linux - Discovery rules - Mounted filesystem discovery - Trigger prototypes

    等待Discovery rules更新过后,可以看到阈值已经更新为了10%

    修改可用内存的报警阈值就更加简单了
    Template - Template OS Linux - Triggers - Lack of available memory on server {HOST.NAME}

    Zabbix的配置参数主要都是通过Template来统一管理的,所以就需要到Template中进行修改,完成后会自动更新到所引用的Hosts。

    2.4 自定义各个监控项的绘图格式和颜色等
    Template - Template OS Linux - Graphs - CPU load

    手动修改CPU Load的绘图格式如下
    Processor load (1 min average per core) 为 红色加粗线条
    Processor load (5 min average per core) 为 绿色填充区域
    Processor load (15 min average per core) 为 黄色线条

    查看新的绘图样式,可以看到以上修改已经即刻生效了。
    Monitoring - Graphs

    2.5 在agent上安装Nginx
    ubuntu@zabbix-client-1:~$ sudo apt-get install python-software-properties
    ubuntu@zabbix-client-1:~$ sudo add-apt-repository ppa:nginx/stable
    ubuntu@zabbix-client-1:~$ sudo apt-get update
    ubuntu@zabbix-client-1:~$ sudo apt-get install nginx

    ubuntu@zabbix-client-1:~$ sudo /etc/init.d/nginx start

     
    Starting nginx: nginx.
    

    ubuntu@zabbix-client-1:~$ sudo netstat -lntp

     
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17217/nginx     
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1225/sshd       
    tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      16055/1         
    tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      16332/zabbix_agentd
    tcp6       0      0 :::22                   :::*                    LISTEN      1225/sshd       
    tcp6       0      0 ::1:6011                :::*                    LISTEN      16055/1 
    

    2.6 配置自定义监控Nginx进程状态的模板,方法等
    定位监控的方法
    ubuntu@zabbix-client-1:~$ /etc/init.d/nginx status

     
     * nginx is running
    

    ubuntu@zabbix-client-1:~$ sudo /etc/init.d/nginx stop

     
    Stopping nginx: nginx.
    

    ubuntu@zabbix-client-1:~$ /etc/init.d/nginx status

     
     * could not access PID file for nginx
    

    通过以上操作,可以发现,通过status查询running字符串能够定位进程的状态
    0为未运行,1为运行
    ubuntu@zabbix-client-1:~$ sudo /etc/init.d/nginx stop

     
    Stopping nginx: nginx.
    

    ubuntu@zabbix-client-1:~$ /etc/init.d/nginx status | grep -c running

     
    0
    

    ubuntu@zabbix-client-1:~$ sudo /etc/init.d/nginx start

     
    Starting nginx: nginx.
    

    ubuntu@zabbix-client-1:~$ /etc/init.d/nginx status | grep -c running

     
    1
    

    配置自定义参数
    ubuntu@zabbix-client-1:~$ sudo vim /usr/local/etc/zabbix_agentd.conf

     
    # For Nginx status
    UserParameter=nginx.status,/etc/init.d/nginx status | grep -c running
    

    ubuntu@zabbix-client-1:~$ sudo /etc/init.d/zabbix-agent restart

     
    Stopping Zabbix agent daemon: zabbix_agentd
    Starting Zabbix agent daemon: zabbix_agentd
    

    在WEB界面中创建Nginx相关的模板
    Configuration - Templates - Create template

    Applications - Create application

    Items - Create item

    Triggers - Create trigger

    将模板Tpl_Nginx应用到zabbix-client-1上
    Configuration - Hosts - zabbix-client-1 - Templates - Add

    校验Nginx的采集数据,可以看到最近一次采集到的值为1
    Monitoring - Latest data

    2.7 配置HTTP Check方式的监控
    安装所需软件
    ubuntu@zabbix-server:~$ sudo apt-get install lynx
    ubuntu@zabbix-server:~$ sudo /etc/init.d/zabbix-server restart

    Stopping Zabbix server daemon: zabbix_server
    Starting Zabbix server daemon: zabbix_server
    

    Configuration - Web - zabbix-client-1 - Create scenario

    Steps - Add

    校验HTTPCheck的采集数据
    Monitoring - Web - Nginx-Webfront-Status

    2.8 配置邮件报警并模拟故障
    在Zabbix Server上创建sendmail.py脚本
    ubuntu@zabbix-server:~$ sudo apt-get install python
    ubuntu@zabbix-server:~$ sudo apt-get install sendemail mailutils

    ubuntu@zabbix-server:~$ sudo vim /usr/local/etc/alert.d/sendmail.py

    #! /usr/bin/env python
    
    import os
    import sys
    
    SENDMAIL = "/usr/sbin/sendmail" # sendmail location
    
    FROM = "zabbix@heylinux.com"
    TO = sys.argv[1]
    
    SUBJECT = sys.argv[2]
    
    TEXT = sys.argv[3]
    
    # Prepare actual message
    
    message = """From: %s
    To: %s
    Subject: %s
    
    %s
    """ % (FROM, TO, SUBJECT, TEXT)
    
    # Send the mail
    
    p = os.popen("%s -t -i" % SENDMAIL, "w")
    p.write(message)
    status = p.close()
    with open("/tmp/zabbixpy.log", "w") as f:
        f.write(message)
    
    if status:
        print "Sendmail exit status", status
    

    ubuntu@zabbix-server:~$ sudo chmod +x /usr/local/etc/alert.d/sendmail.py

    在WEB界面中创建sendmail.py
    Administration - Media types - Create media type

    Configuration - Actions - Create Action

    Profile - Media - Add

    报警的配置也已经完成,下面我们模拟Nginx进程故障
    ubuntu@zabbix-client-1:~$ sudo /etc/init.d/nginx stop

    Stopping nginx: nginx.
    

    很快就可以在主页上看到Web monitoring与进程的报警信息

    在邮箱中也可以看到报警的邮件

    重新启动Nginx
    ubuntu@zabbix-client-1:/usr/local/etc$ sudo /etc/init.d/nginx start

    Starting nginx: nginx.
    

    可以看到,主页已经恢复正常,同时也收到了Nginx进程恢复的邮件

    3. 至此,就完成了整个自定义配置的过程,让我们再来回顾一下都配置了哪些内容
    1.通过Zabbix内建的方法来监控CPU,内存,交换分区,磁盘空间,网络IO等系统信息;
    2.设置Trigger,指定各个监控项的阈值;
    3.自定义各个监控项的绘图格式和颜色等;
    4.在agent上安装Nginx;
    5.配置自定义监控Nginx进程状态的模板,方法等;
    6.配置HTTP Check方式的监控;
    7.配置邮件报警并模拟故障;

    4. 接下来,就是更多高级的功能了
    比如 实现Zabbix通过邮件发送Screen图形报表; http://www.linuxidc.com/Linux/2013-06/85759.htm
    当然还有更多的扩展和经验可以在后面不断的熟悉过程中总结。
    好了,开始你的Zabbix之旅吧!

    linux

  • 相关阅读:
    后台src-app.js详情
    后台中src-router-index.js文件详情
    VUE:如何设置当前页面的背景色
    web移动端项目初始化
    vue路由懒加载及组件懒加载
    浏览器内核
    java 文件读取
    [SUCTF 2019]EasySQL
    Hctf 2016 兵者多诡
    less-17
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3826600.html
Copyright © 2011-2022 走看看