设为首页 收藏本站
查看: 2238|回复: 0

[经验分享] Zabbix分布式监控系统实践之 (2) 自定义配置

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2016-1-28 08:55:50 | 显示全部楼层 |阅读模式
目录结构
Zabbix分布式监控系统实践之 (0) 什么是Zabbix
Zabbix分布式监控系统实践之 (1) 环境部署
Zabbix分布式监控系统实践之 (2) 自定义配置

本文内容
Zabbix分布式监控系统实践之 (2) 自定义配置

参考资料
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

Configuration - Hosts - Create host
create-host-1.jpg
创建成功后,可以看到对应的Host,但右侧不会显示绿色的被监控图标,因为目前还没有配置任何监控选项
create-host-2.jpg
2.2 通过Zabbix内建的方法来监控CPU,内存,交换分区,磁盘空间等系统信息
到WEB界面中选择内置模板Template OS Linux
Configuration - Templates
os-template-1.jpg
然后在Host列表中,可以看到zabbix-client-1已经处于绿色的被监控状态了
Configuration - Hosts
os-template-2.jpg
内置模板已经具备一些监控选项和绘图,我们可以直接查看
Monitoring - Graphs
os-template-3.jpg
如下所示,即zabbix-client-1的CPU Load,磁盘空间,以及网络流量的图表
注:默认的自动发现配置为每个小时执行一次,因此在没有修改配置的情况下需要1个小时以后才能看到这些图表。
(手动修改可以通过 Configuration - Hosts - zabbix-client-1 - Discovery rules中修改对应的 Interval的值)
os-template-4.jpg
os-template-5.jpg
2.3 设置Trigger,指定各个监控项的阈值
Configuration - Hosts - zabbix-client-1 - Triggers
os-template-6.jpg
默认已经有了不少的Trigger,比如磁盘的报警阈值就设置为了20%
手动修改磁盘的报警阈值为10%
Template - Template OS Linux - Discovery rules - Mounted filesystem discovery - Trigger prototypes
os-template-7.jpg
os-template-8.jpg
等待Discovery rules更新过后,可以看到阈值已经更新为了10%
os-template-9.jpg
修改可用内存的报警阈值就更加简单了
Template - Template OS Linux - Triggers - Lack of available memory on server {HOST.NAME}
os-template-10.jpg
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) 为 黄色线条
os-template-11.jpg
查看新的绘图样式,可以看到以上修改已经即刻生效了。
Monitoring - Graphs
os-template-12.jpg
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

os-template-13.jpg Applications - Create application
os-template-14.jpg
Items - Create item
os-template-15.jpg
Triggers - Create trigger
os-template-16.jpg
os-template-17.jpg
os-template-18.jpg
将模板Tpl_Nginx应用到zabbix-client-1上
Configuration - Hosts - zabbix-client-1 - Templates - Add
os-template-19.jpg
os-template-20.jpg
校验Nginx的采集数据,可以看到最近一次采集到的值为1
Monitoring - Latest data
os-template-21.jpg
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_serverStarting Zabbix server daemon: zabbix_serverConfiguration - Web - zabbix-client-1 - Create scenario
os-template-22.jpg
Steps - Add
os-template-23.jpg
校验HTTPCheck的采集数据
Monitoring - Web - Nginx-Webfront-Status
os-template-24.jpg

如果一件事情值得去做,那它就值得做好。 Whatever is worth doing is worth doing well.
Hey! Linux.

    Home
    About Me
    English Edition
    GitHub
    Site Map

« 使用XAMPP快速安装配置Open Atrium团队协作系统
分享一个脚本解决VMware克隆CentOS6.x后网卡不识别的问题 »
Zabbix分布式监控系统实践之 (2) 自定义配置

目录结构
Zabbix分布式监控系统实践之 (0) 什么是Zabbix
Zabbix分布式监控系统实践之 (1) 环境部署
Zabbix分布式监控系统实践之 (2) 自定义配置

本文内容
Zabbix分布式监控系统实践之 (2) 自定义配置

参考资料
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

os-template-25.jpg Configuration - Actions - Create Action
os-template-26.jpg
os-template-27.jpg
os-template-28.jpg
os-template-29.jpg
Profile - Media - Add
os-template-30.jpg
os-template-31.jpg
报警的配置也已经完成,下面我们模拟Nginx进程故障
ubuntu@zabbix-client-1:~$ sudo /etc/init.d/nginx stop
Stopping nginx: nginx.很快就可以在主页上看到Web monitoring与进程的报警信息
notify-1.jpg
在邮箱中也可以看到报警的邮件
notify-2.jpg
重新启动Nginx
ubuntu@zabbix-client-1:/usr/local/etc$ sudo /etc/init.d/nginx start
Starting nginx: nginx.可以看到,主页已经恢复正常,同时也收到了Nginx进程恢复的邮件
notify-3.jpg
notify-4.jpg
3. 至此,就完成了整个自定义配置的过程,让我们再来回顾一下都配置了哪些内容
1.通过Zabbix内建的方法来监控CPU,内存,交换分区,磁盘空间,网络IO等系统信息;
2.设置Trigger,指定各个监控项的阈值;
3.自定义各个监控项的绘图格式和颜色等;
4.在agent上安装Nginx;
5.配置自定义监控Nginx进程状态的模板,方法等;
6.配置HTTP Check方式的监控;
7.配置邮件报警并模拟故障;
4. 接下来,就是更多高级的功能了
比如 实现Zabbix通过邮件发送Screen图形报表;
当然还有更多的扩展和经验可以在后面不断的熟悉过程中总结。
好了,开始你的Zabbix之旅吧!



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-170456-1-1.html 上篇帖子: Zabbix分布式监控系统实践之 (1) 环境部署 下篇帖子: 实现Zabbix通过邮件发送Screen图形报表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表