您的位置:首页 > 运维架构

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

2015-07-14 13:51 901 查看




目录结构

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

view source

print?

1
zabbix-client-1
配置相应的选项

ubuntu@zabbix-client-1:~$ sudo vim /usr/local/etc/zabbix_agentd.conf

view source

print?

1
Server=10.6.1.181
2
ServerActive=10.6.1.181
3
Hostname=zabbix-client-1
重启Agent

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

view source

print?

1
Stopping Zabbix agent daemon: zabbix_agentd
2
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

<img width="600" title="os-template-6" class="alignnone size-full wp-image-2323" alt="" src="http://heylinux.com/wp-content/uploads/2013/01/os-template-6.jpg" 288"="">

默认已经有了不少的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

view source

print?

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

view source

print?

1
Active Internet connections (only servers)
2
Proto Recv-Q Send-Q Local Address   Foreign Address State   PID/Program name
3
tcp   0  0 0.0.0.0:80  0.0.0.0:*   LISTEN  17217/nginx
4
tcp   0  0 0.0.0.0:22  0.0.0.0:*   LISTEN  1225/sshd
5
tcp   0  0 127.0.0.1:6011  0.0.0.0:*   LISTEN  16055/1
6
tcp   0  0 0.0.0.0:10050   0.0.0.0:*   LISTEN  16332/zabbix_agentd
7
tcp6   0  0 :::22   :::*LISTEN  1225/sshd
8
tcp6   0  0 ::1:6011:::*LISTEN  16055/1
2.6 配置自定义监控Nginx进程状态的模板,方法等

定位监控的方法

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

view source

print?

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

view source

print?

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

view source

print?

1
* could not access PID
file

for
nginx
通过以上操作,可以发现,通过status查询running字符串能够定位进程的状态

0为未运行,1为运行

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

view source

print?

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

view source

print?

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

view source

print?

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

view source

print?

1
1
配置自定义参数

ubuntu@zabbix-client-1:~$ sudo vim /usr/local/etc/zabbix_agentd.conf

view source

print?

1
# For Nginx status
2
UserParameter=nginx.status,/etc/init.d/nginx status|
grep
-c running
ubuntu@zabbix-client-1:~$ sudo /etc/init.d/zabbix-agent restart

view source

print?

1
Stopping Zabbix agent daemon: zabbix_agentd
2
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

view source

print?

1
Stopping Zabbix server daemon: zabbix_server
2
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

view source

print?

01
#! /usr/bin/env python
02
03
import
os
04
import
sys
05
06
SENDMAIL
=

"/usr/sbin/sendmail"
# sendmail location
07
08
FROM
=

"zabbix@heylinux.com"
09
TO
=

sys.argv[
1
]
10
11
SUBJECT
=

sys.argv[
2
]
12
13
TEXT
=

sys.argv[
3
]
14
15
# Prepare actual message
16
17
message
=

"""\
18
From: %s
19
To: %s
20
Subject: %s
21
22
%s
23
"""
%
(FROM, TO, SUBJECT, TEXT)
24
25
# Send the mail
26
27
p
=

os.popen(
"%s -t -i"

%
SENDMAIL,

"w"
)
28
p.write(message)
29
status
=

p.close()
30
with
open
(
"/tmp/zabbixpy.log"
,
"w"
) as f:
31
f.write(message)
32
33
if
status:
34
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

view source

print?

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





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





重新启动Nginx

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

view source

print?

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









3. 至此,就完成了整个自定义配置的过程,让我们再来回顾一下都配置了哪些内容

1.通过Zabbix内建的方法来监控CPU,内存,交换分区,磁盘空间,网络IO等系统信息;

2.设置Trigger,指定各个监控项的阈值;

3.自定义各个监控项的绘图格式和颜色等;

4.在agent上安装Nginx;

5.配置自定义监控Nginx进程状态的模板,方法等;

6.配置HTTP Check方式的监控;

7.配置邮件报警并模拟故障;

4. 接下来,就是更多高级的功能了

比如
实现Zabbix通过邮件发送Screen图形报表;

当然还有更多的扩展和经验可以在后面不断的熟悉过程中总结。

好了,开始你的Zabbix之旅吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: