您的位置:首页 > 其它

zabbix 安装使用手册(HA)-2

2013-06-13 17:47 423 查看

10. zabbix client安装

10.1 linux系统

10.1.1 下载解压zabbix客户端软件

wget http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.linux2_6.i386.tar.gz[/code] href="http://www.zabbix.com/downloads/2.0.4/zabbix_agents_2.0.4.linux2_6.i386.tar.gz" target=_blank>

10.1.2 新建zabbix组和用户

/usr/sbin/groupadd zabbix
/usr/sbin/useradd -g zabbix zabbix


10.1.3 解压客户端至指定目录

mkdir /usr/local/zabbix
tar zxvf /root/zabbix_agents_2.0.6.linux2_6.i386.tar.gz -C /usr/local/zabbix/


10.1.4 配置软连接

Ø为 zabbix 命令行操作文件做链接,方便系统可以找得到。
ln -s /usr/local/zabbix/bin/* /usr/bin/
ln -s /usr/local/zabbix/sbin/* /usr/sbin/

10.1.5 添加客户端监控端口

vim /etc/services
在末尾追加以下内容:
#zabbix services
zabbix-agent    10050/tcp                       # Zabbix Agent
zabbix-agent    10050/udp                       # Zabbix Agent


10.1.6 修改客户端配置文件

vim /usr/local/zabbix/conf/zabbix_agentd.conf
修改以下几项:
Server=监控服务器IP
Hostname=本机的主机名或IP地址
ServerActive=监控服务器IP
检查配置:
egrep -v '^$|^#' /usr/local/zabbix/conf/zabbix_agentd.conf


Ø建立配置文件的软连接到/usr/local/etc/目录下。
ln -s /usr/local/zabbix/conf/zabbix_agentd.conf /usr/local/etc/


10.1.7 配置客户端启动脚本

scp 服务器IP:/etc/init.d/zabbix_agentd /etc/init.d/zabbix_agentd
chmod +x /etc/init.d/zabbix_agentd


10.1.8 添加客户端开机启动服务

chkconfig --add zabbix_agentd
chkconfig --level 345 zabbix_agentd on
使用 chkconfig --list 检查一下:
chkconfig --list | grep zabbix


10.1.9 启动zabbix客户端

/etc/init.d/zabbix_agentd start
Ø查看进程,确认zabbix客户端是否启动。
ps -ef | grep zabbix
备注:如果系统为RHEL6.2 64bit,启动client出现如下报错,需安装lib库:

yum install -y glibc.i686
或:
yum groupinstall -y "Compatibility libraries"


10.1.10防火墙设置

iptables -A INPUT -p tcp -s 服务器IP -m multiport --dports 10050,10051 -j ACCEPT


10.2 windows系统

10.2.1 下载zabbix客户端软件

http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.win.zipØ从官方下载zabbix agent后,压缩包里面有2个目录,bin和conf。Ø将bin和conf放在c:\zabbix目录下。Øbin目录下有2个目录,一个为win32,另一个是win64。每个目录下应该有3个文件,分别为:zabbix_agentd.exe、zabbix_get.exe、zabbix_sender.exe。Øconf目录下有1个文件,zabbix_agentd.win.conf。

10.2.2 编辑客户端文件

Ø用文本编辑器修改conf目录下的zabbix_agentd.win.conf文件:
LogFile=c:\zabbix\zabbix_agentd.log                 #客户端日志文件存放路径
Server=                                             #监控服务器IP
Hostname=                                           #本机的主机名或IP地址


10.2.3 安装客户端并启动

Ø进入c:\zabbix\bin\win32目录下,执行如下命令完成客户端的安装:
cd c:\zabbix\bin\win32
zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -i
Ø执行如下命令,启动客户端:
zabbix_agentd.exe -c c:\zabbix\conf\zabbix_ agentd.win.conf -s
Ø参数含义:-c 指定配置文件所在路径-i 安装客户端-s 启动客户端-x 停止客户端-d 卸载客户端Ø安装后会在系统服务里添加一个zabbix_agentd服务,会自动开机运行。

10.2.4 使用批处理操作客户端

Ø新建windows批处理脚本zabbix_agentd.bat放在c:\zabbix目录下用来对客户端服务器上的zabbix_agentd进行安装、卸载、启动、重启、停止。脚本内容如下:
@echo off
echo ************************************
echo ***** Zabbix Agentd Operation ******
echo ************************************
echo **  1.  start      Zabbix Agentd  **
echo **  2.  stop       Zabbix Agentd  **
echo **  3.  restart    Zabbix Agentd  **
echo **  4.  install    Zabbix Agentd  **
echo **  5.  uninstall  Zabbix Agentd  **
echo **  6.  exit       Zabbix Agentd  **
echo ************************************
set /p tmp=请输入有效数字:
if "%tmp%"=="1" goto start
if "%tmp%"=="2" goto stop
if "%tmp%"=="3" goto restart
if "%tmp%"=="4" goto install
if "%tmp%"=="5" goto uninstall
if "%tmp%"=="6" goto end
:start
c:\zabbix\bin\win32\zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -s
goto end
:stop
c:\zabbix\bin\win32\zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -x
goto end
:restart
c:\zabbix\bin\win32\zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -x
c:\zabbix\bin\win32\zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -s
goto end
:install
c:\zabbix\bin\win32\zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -i
echo "install is … ok"
:uninstall
c:\zabbix\bin\win32\zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -d
goto end
:end
exit


10.2.5 防火墙设置

Ø防火墙-->例外-->添加程序-->添加zabbix_agentd.exe



11. zabbix server配置简介

Ø通过本地浏览器访问http://ServerIP/zabbix来开始配置和使用zabbix。Ø使用zabbix进行监控之前,要理解zabbix监控的流程。一次完整的监控流程可以简单描述为:Host Groups(设备组)->Hosts(设备)->Applications(监控项组)->Items(监控项)->Triggers(触发器)->Actions(告警动作)->Medias(告警方式)->User Groups(用户组)->Users(用户)

11.1 Hosts

ØHost是zabbix监控的基本载体,所有的监控项都是基于host的。Ø通过Configuration->Hosts->Create Host来创建监控设备



Ø按提示填入Name、Groups、IP ,其他选项默认即可,Link Templates 处选择一个模板,save即可成功添加设备。(注:如果host上没安装agent,添加后的状态会是unmonitor,会采集不到值,zabbix自带大量的设备监控模板,我们添加主机时通过link到这些模板,就可以快速添加主机的监控项和告警触发条件。)Ø一类的hosts可以归属到同一个Host Group,便于分类管理同一类设备,在Configuration->Host Group->Create Host Group 可以添加设备组。Ø下表对各项参数进行详解:
参数
描述
主机名
输入一个不重复的主机名。只允许大小写字母、数字、标点符号和下线。
注意:该名称和其所对应的客户端配置文件zabbix_agentd.conf中“Hostname”这一项输入的值是一样的。在主机存活检查时需要这个名字。
访问名
如果设置该名字,那么它将出现在主机列表、地图等地方。这个属性需要UTF-8支持。
群组
选择主机所属的群组。一个主机必须属于至少一个主机组。
新主机组
一个新的群组将被创建然后自动链接到该主机上。如果空的话,该项将忽略。
接口协议
一个主机支持几种类型的主机接口协议类型:Agent,SNMP,JMX and IPMI,如果想增加一个新的接口协议,点击Add然后输入IP/DNS,连接项,端口等信息。
ip地址
要监控主机的ip地址。(可选项)
DNS名称
要监控主机DNS能够解析的名称。(可选项)
链接
点击各自对应名称的按钮将反馈给 zabbix服务器用哪个名称(IP或 DNS)从客户端获得数据。
IP连接要监控主机的IP地址(推荐)
DNS链接要监控主机能够正常解析的DNS名称
端口
TCP协议的端口,zabbix客户端使用的默认值是10050
通过代理
主机可以通过zabbix服务器或者zabbix的一个代理来监控。
状态
Monitored
主机是活动的,监控就绪
Not monitored
主机已停止,因此没被监控

11.2 Items

ØItem是监控项,是监控的基本元素,每一个监控项对应一个被监控端的采集值。Ø在Configuration->Hosts界面,我们能看到每个host所包含的items总数,点击对应主机的items项,可以看到具体的每个item信息,这些items可以引用自templates,也可以自己创建。

Ø通过点击具体item名字可以修改已有监控项的属性,点击Satus的链接可以禁用/启用这个监控项。(备注:我们可以通过新建一个template,在template中禁用掉所有不需要用到的items,然后把同一类hosts link to这个template,就不用一台台主机去更改items)Ø新增item可以通过点击右上角的create item来创建。

Ø按提示逐项填入相关信息即可,其中key是zabbix已经自带的取值方法,Application类似于host groups,是item的组。(item key也可以自定义,后面会讲到如何自定义监控项)Øzabbix自带非常多的监控采集项及方法,基本能满足当前所有的监控功能,这些都包含在item的 item key中了,更多的type和key的解释请参考官方文档:https://www.zabbix.com/documentation/2.0/manual/config/items

11.3 Triggers

ØTrigger是触发器,当Items采集值满足triggers的触发条件时,就会产生actions。Ø每一个trigger必须对应一个item,但一个item可以对应多个trigger。Ø同样,通过点击Configuration->Hosts->Triggers中某个trigger的名字,可以修改trigger的属性。(注意:引用自template的trigger触发值是不能单独修改的,必须在template中修改,或是复制一个同样的trigger再修改,然后禁用掉之前的)Ø新增trigger可以通过点击右上角的createtrigger来创建

ØExpression中选择对应的item、触发方式及触发值,Severity是告警级别,根据trigger的严重性来选择。Øzabbix提供多种trigger触发方式供选择,常用的我们可以选择last value </>/=/#/N(最近一次采集值),或是选择maximal value forperiod of time (一段时间内的最大值),等等。可以根据实际需要来设定触发方式。更多的解释请参考官方文档:https://www.zabbix.com/documentation/2.0/manual/config/triggers

11.4 Actions

ØAction是告警动作,当触发器条件被满足时,就会执行指定的action。Ø通过Configuration->Actions->Create Action来创建Action。

ØSubject、Message:告警标题和内容,此处可引用zabbix的宏变量;例如{{HOSTNAME}:{TRIGGER.KEY}.last(0)}表示最后一次采集值,更多宏变量请参考官方文档:https://www.zabbix.com/documentation/2.0/manual/config/macros/usermacrosØRecovery Message:告警恢复信息,不勾选系统会用默认的,勾选后自定义。更多的解释请参考官方文档:https://www.zabbix.com/documentation/2.0/manual/config/notifications/action

11.5 Medias

ØMedia,即告警方式,zabbix可以提供四类Media:Email/SMS/Jabber/Script,通过Administrator->Media Type来修改或新增告警方式ØEmail方式最常用的,填入相关的SMTP信息,即可通过邮件方式发送告警。

Ø其中type有以下几种方式:

Email 方式用邮件。Script 方式可以通过自己编写程序或脚本的方式发送告警信息。SMS 方式要在server主机上接入短信modem。Jabber 方式是一种linux下的即时通讯工具,通过Jabber发送即时消息。官方参考文档:https://www.zabbix.com/documentation/2.0/manual/config/notifications/media

11.6 Users

Ø在Administrator->Users 可以添加用户和用户组。Ø通过User Group可以限制用户的权限,zabbix自带的用户组的权限限制基本能满足我们的要求。Ø创建用户时可以根据用户的不同作用划分到不同的组,media中填入告警接受地址及告警接受时间等信息。





ØType:报警类型。
ØSend to:收件人地址,可以增加多个。

Ø用户权限的控制。官方参考文档:https://www.zabbix.com/documentation/2.0/manual/config/users_and_usergroups

11.7 WEB Monitorings

ØWeb Monitoring是用来监控web程序的,可以监控到web程序的下载速度、返回码及响应时间,还支持把一组连续的web动作作为一个整体来监控。ØWeb monitoring还有更多强大的功能,可参考官方文档:https://www.zabbix.com/documentation/2.0/manual/web_monitoring

11.8 Graphs

Øzabbix的Graphs功能很强大,可以为每一个item绘制图表,也可以把多个items绘制在一张图表内。Ø通过configuration->hosts选择要绘制图表的host,点击graphs,create graphs即可创建图表。

ØGraph type:图表样式,有线状、柱状、饼状。Ø还可以自定义图表大小,及Y轴最大最小值。Ø通过add items可以添加在同一个图表中展示的多个items(备注:注意每个item的颜色及取值范围,范围相差太大图表会显示不全)。Ø配置好的graphs在monitoring->graphs中查看。Ø在monitoring->last data下能快速查看每个host的每个item的graph。

11.9 Screens

ØScreen将多种信息放在一起展示,便于集中展示某个host的多个信息,或是比较多个hosts的同一种信息,这些信息可以为graphs、maps、server infos等等,几乎涵盖zabbix所有的监控信息。Ø通过configuration->screen->creat screen来创建,创建时定义screen的行数和列数,点击对应单元格内的change,添加相应的信息。

Ø通过monitoring-screen,可以查看之前配置好的信息。

11.10 Maps

Ø这里可以添加关于主机的拓扑图:configration-maps,在右上角可以create maps或者import mapØ这里我们点击crate maps 点save保存。

Ø然后编辑保存好的maps。

上面加号和减号可以增加主机 link说明主机的连接情况,可以进行自定义。Ø官方参考文档:https://www.zabbix.com/documentation/2.0/manual/config/visualisation/maps

11.11 自定义监控

Ø对于zabbix功能上无法实现的监控,可以通过自己编写程序或脚本来辅助完成,并将脚本的结果通过agent递交给zabbix server统一管理,一样可以绘制graph 报表等。ØUserParameters的定义方法,请参考:https://www.zabbix.com/documentation/2.0/manual/config/items/userparameters

12. zabbix server配置示例

Ø本节中如不指明是client端配置,均指在server中配置。

12.1 linux系统

12.1.1 创建监控主机

ØConfiguration-->Hosts-->Create host

ØHost name --> Groups --> Agent interfaces

ØTemplates --> Add

Ø系统自定义了很多监控模板,根据监控主机的系统以及监控的类别来选择监控模板。当前监控的是linux系统,所以勾选Template OS Linux --> Select --> Save

Ø监控状态。

12.1.2创建内存监控图形

ØTemplate OS Linux模板默认没有内存监控图形,需自行添加。ØConfiguration-->Templates-->Items

ØCreate item





ØGraphs-->Create graphs






12.1.3创建磁盘读/写操作统计

ØCreate item



注意:Key中vfs.dev.read[<device>,<type>,<mode>]device - diskdevice (default is "all")mode - avg1(default)对指定磁盘统计的写法为:vfs.dev.read[/dev/sda, operations]官方参考文档:https://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/zabbix_agentØGraphs-->Create graphs




12.1.4创建WEB Monitorings

Ø示例:以监控登录zabbix的web程序为例,来展示如何使用web monitoring。lConfiguration->web->Create Scenario 创建一个Scenario(注意:必须选择host后才能创建scenario,zabbix的所有items都必须创建在hosts上)



2Application选择这个scenario所在的application组2Namescenario的名字2Authentication鉴权2Update interval (in sec)监控频率,s为单位2Agent选择要使用的浏览器客户端,可能同样的web程序对不同的客户端展示的内容会不一样2Variables变量定义,这里自定义的变量可在后续的steps中使用,此例定义了用户名和密码的变量2Active是否激活,默认为activelSteps:web程序的各个步骤,选择add新增一个Login的step,来模拟用户登录,传递用户名和密码给index.php页面。



2URL监控的web页面(注意:必须是全路径带页面名)2Post传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量2Timeout超时时间2Required string页面中能匹配到字符,匹配不到即认为错误2Required status codes页面返回码l添加完step后,在Monitoring->web页面即能看到监控的状态和图示。

Ø创建完scenario后,zabbix server会自动创建相关的items,所以只需为这些items添加triggers即可让web scenario出错时产生告警。ØConfiguration->hosts->点击scenario所在的host条目的trigger,直接create trigger,在select items的时候就可以看到系统自动创建的items(注意:自动创建的items在host的items列表中无法直接看到,需要在创建trigger时选择items时才能看到)


12.1.5创建自定义监控

Ø示例:统计80端口连接状态数量。lClient配置:
egrep -v '^$|^#' /usr/local/zabbix/conf/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.8.73
ServerActive=127.0.0.1
Hostname=192.168.8.74
UserParameter=port_80_time_wait,/usr/local/zabbix/conf/scripts/port_80_time_wait.sh
UserParameter=port_80_established,/usr/local/zabbix/conf/scripts/port_80_established.sh
UserParameter=port_80_syn_recv,/usr/local/zabbix/conf/scripts/port_80_syn_recv.sh
UserParameter=port_80_close_wait,/usr/local/zabbix/conf/scripts/port_80_close_wait.sh
备注:经测试,2.0.6版本client配置文件中无需将UnsafeUserParameters=0设置为1。
ll /usr/local/zabbix/conf/scripts/


注意:配置文件中的脚本路径要用绝对路径,脚本要有可执行权限。脚本的返回值要尽量简单,方便设置报警值。
cat port_80_established.sh
#!/bin/bash
netstat -nt |awk '{print $4,$6}'|grep ':80 ESTABLISHED'|wc –l
cat port_80_syn_recv.sh
#!/bin/bash
netstat -nt |awk '{print $4,$6}'|grep ':80 SYN_RECV'|wc –l
cat port_80_time_wait.sh
#!/bin/bash
netstat -nt |awk '{print $4,$6}'|grep ':80 TIME_WAIT'|wc –l
cat port_80_close_wait.sh
#!/bin/bash
netstat -nt |awk '{print $4,$6}'|grep ':80CLOSE_WAIT'|wc -l


lServer配置:2Templates-->Items设置:





2Templates-->Graphs设置:

ØMonitoring --> Graphs验证结果:l对ip为192.168.8.74的web server发送73个请求
ab -n 73 http://192.168.8.74/index.html[/code] href="http://blog.51cto.com/attachment/201306/203817392.png" target=_blank>

l备注:为Number of port 80syn recv项创建trigger能有效的引起管理员的注意,提早预防SYN攻击。

12.1.6创建触发器

Ø示例:以监控web server首页响应速度,来展示如何使用trigger。lConfiguration-->Host--> Triggers-->Create trigger

lName -->Severity-->Add

lSelect --> Function --> Last of (T) --> N

2Item选择trigger对应的item2Function函数,本例中选择“最后一次T的检测值大于N”2Last of (T)T对应的值,秒或计数2NN对应的值结合本例的结果既是web server首页的响应速度如果大于1秒就触发trigger。ØMonitoring --> Web页面即能看到监控的状态和触发器。



12.1.7创建邮件报警(企业邮箱)

Ø使用企业邮箱的优势在于不需要设置用户名、密码登录,就能借助sendmail将邮件发出。因此不会泄露邮箱的密码,安全性较高。Ø经测试确认,263企业邮箱和新浪vip邮箱支持以下示例中的配置方式进行发送告警信息。其它邮箱因时间和条件因素无法一一测试。Ø在配置zabbix的Email报警之前,需要将sendmail使用的域名进行相应的修改,系统默认为localhost.localdomain,其实不改也行,不过有些pop3服务器会过滤掉来自localhost.localdomain的邮件,导致邮件不能正常查收,所以,最好改一下 hostname,确保邮件发送的成功率。
cat /etc/sysconfig/network


cat /etc/hosts


cat /etc/mail/access


cat /etc/mail/local-host-names


知识点:hostname改为domain.com的命名方式可提高sendmail启动速度,相关内容可以去了解“解决sendmail启动慢”。Ø修改完成后,启动sendmail服务,通过telnet命令,测试是否已生效。
/etc/init.d/sendmail start
chkconfig sendmail on
telnet 127.0.0.1 25


从以上结果可以发现,localhost.localdomain已经变成了server01这个域名,表示修改成功,接下来就可以在zabbix的管理页面上进行Email报警设置了。Øadministration --> Media types --> Email



Øadministration --> Users --> Admin

本示例以管理员用户作为收件人。

ØMedia --> Add



2Type告警类型2Send to接收告警邮件的邮箱地址2When active告警时间,默认为7×24小时。2Use if severity选择告警级别配置后点击Save保存设置。ØConfiguration --> Actions --> Create action



2Name告警action的名称2Default operation stepduration告警持续时间,默认为3600秒,最少可设置为60秒2Default subject邮件标题,默认为宏变量2Default message邮件内容,默认为宏变量2Recovery message告警恢复信息,不勾选系统会用默认的,勾选后使用以下自定义内容2Recovery subject告警恢复后的邮件标题,默认为宏变量2Recovery message告警恢复后的邮件内容,默认为宏变量2Enabled勾选为启用,不勾为禁用

2Type of calculation计算类型,有and、or和and\or2Conditions触发条件2New condition创建触发条件触发条件可以是多个组合,计算类型代表了各个触发条件之间的关系。如此示例中,必须满足被监控主机“不在维护状态”和“Trigger”的值等于“PROBLEM”,才满足触发条件。

2Step步骤,使用默认值即可
2Operation type操作类型,下拉选项为sendmessage(发送消息)或remote command(远程命令)。2Send to User groups将邮件发送到哪个组2Send to Users将邮件发送到哪个用户2Send only to发送的方式,下拉选项对应Mediatypes中的各项2Update更新注意:Update后在Save,否则将不保存Operations中的各项配置。ØMonitoring --> Events

验证告警已成功发送。Ø从邮件中再次验证,收到告警邮件。



12.1.8创建邮件报警(个人邮箱)

Ø在上述环境没有满足的情况下,也可以使用个人邮箱进行邮件告警。本示例使用139邮箱,其优势在于收到邮件的同时手机也会收到邮件。

12.1.8.1安装msmtp

Ø在配置zabbix的Email报警之前,需要先安装msmtp。

wget http://nchc.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.4.17.tar.bz2 tar xvf msmtp-1.4.17.tar.bz2
cd msmtp-1.4.17
./configure --prefix=/usr/local/msmtp
make && make install
cd /usr/local/msmtp/
新建配置文件目录和配置文件:
mkdir etc
cd etc
vim msmtprc
添加以下内容:
account default
host smtp.163.com
port 25
from zabbix_test@163.com
auth login
user zabbix_test
password xxxxxx
logfile /var/log/msmtp.log
2hostsmtp服务器2portsmtp服务器端口2from发件人邮件地址2user登录邮箱的用户名2password邮箱密码,这里是明文的,如果觉得不安全可以把文件改为600属性2logfile日志文件Ø测试是否可以发出邮件:
/usr/local/msmtp/bin/msmtp 13916594658@139.com

随便输入一些内容用ctrl+d结束,如果没有收到邮件或提示错误可查看日志文件。

12.1.8.2 安装mutt

yum install mutt
修改Muttrc配置文件:
vim /etc/Muttrc
修改以下内容:
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="zabbix_test@163.com"
set editor="vim"
2set sendmailmsmtp命令路径Ø测试是否可以发出邮件
echo "testmail" | mutt -s "test" -a /etc/hosts 13916594658@139.com

2testmail邮件内容2-s邮件标题2-a添加附件,多个附件就用多个-a添加。

12.1.8.3 配置zabbix server

Ø官方参考文档:https://www.zabbix.com/documentation/2.0/manual/config/notifications/media/scriptØ修改zabbix_server.conf配置文件。
vim /usr/local/zabbix/etc/zabbix_server.conf
修改以下内容:
AlertScriptsPath=/usr/local/zabbix/alertscripts
注意:脚本存放在什么位置路径就写什么位置。Ø新建脚本目录。
mkdir /usr/local/zabbix/alertscripts
Ø添加脚本内容:
vim /usr/local/zabbix/alertscripts/alert
添加以下内容:
#!/bin/bash
to=$1
subject=$2
body=$3
cat <<EOF|mutt -s "$subject" "$to"
$body
EOF
Ø赋予脚本可执行权限。
chmod +x /usr/local/zabbix/alertscripts/alert
ØAdministration --> Media types --> Create media type



2Description名称描述,可自定义2Type类型,此处选择Script2Script name脚本名称,注意:此处必须和刚才新建的脚本同名Øadministration --> Users --> Admin

本示例以管理员用户作为收件人。

ØMedia --> Add



2Type告警类型,注意:此处选择刚才新建的描述项2Send to接收告警邮件的邮箱地址,备注:可以是其它收件邮箱也或多个收件邮箱2When active告警时间,默认为7×24小时。2Use if severity选择告警级别配置后点击Save保存设置。ØActions配置部分可参考6.1.7节的Configuration --> Actions --> Create actionØ告警验证:动作一,在zabbix client的server02服务器中关闭http服务。查看Monitoring --> Events

收到的邮件内容:

Ø恢复验证:动作二,在zabbix client的server02服务器中开启http服务。查看Monitoring --> Events

收到的邮件内容:



12.1.9创建飞信报警

Ø下载fention包,解压后包括主程序fetion,库文件libACE_SSL-5.7.2.so libACE-5.7.2.so libcrypto.so.4 libssl.so.4
mv libACE_SSL-5.7.2.so libACE-5.7.2.so libcrypto.so.4 libssl.so.4 /usr/lib
chmod a+x fetion
Ø开启图形界面,新版的飞信需要验证才能登录。
init 5
Ø注意:第一次发送会在当前目录下会生成一个13916594658.jpg的图形验证码,将验证码输入,回车即可成功发送飞信,发送成功界面如下:

Øzabbix server配置部分可参考6.1.8.3节,其中添加脚本内容如下:
#!/bin/bash
/usr/local/fetion --mobile 13916594658 --pwd XXXXXX --to=$1 --msg-tpye=0 --msg-utf8="$2, $3"
Ø官方声明:(机器人主程序经常更新,而支持库不会更新)
注意:linux用户,请不要把支持库中的 lib* 复制到 /usr/lib 下,因为发行版本不同,可能会覆盖您机器中的核心库,导致严重系统问题。您可以把库解压到主程序的相同目录,然后以LD_LIBRARY_PATH=. ./fetion 来运行)>>举例<<
linux下,请使用如下命令:
LD_LIBRARY_PATH=. ./fetion --mobile=13711123456 --pwd=mypwd --to=137xxxxxxxx--msg-utf8=测试
LD_LIBRARY_PATH=. ./fetion --sid=6630321 --pwd=mypwd --to=137xxxxxxxx--msg-utf8=测试
LD_LIBRARY_PATH=. ./fetion --config=sample.conf --index=1 --to=137xxxxxxxx--msg-utf8=测试官方文档:http://bbs.it-adv.net/viewthread.php?tid=1081

12.1.10创建自动发现

Ø需求:现在有大量url需要监控,形式如http://lan2003.blog.51cto.com,要求url状态不为200即报警。Ø需求分析:大量的url,且url经常变化,使用的监控用是zabbix。如果手动添加模板,会造成大量重复工作,造成人力财力的浪费,造成休息时间的浪费,得不尝失。Ø解决方案:zabbix有discovery功能,利用此功能,即可轻松解决此问题。lClient配置:
egrep -v '^$|^#' /usr/local/zabbix/conf/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=1
Server=192.168.8.73
ServerActive=127.0.0.1
Hostname=192.168.8.244
Include=/usr/local/zabbix/conf/zabbix_agentd.conf.d/
UnsafeUserParameters=1
2EnableRemoteCommands允许远程命令,0为不允许,1为允许。默认0。2Include配置文件路径。默认的路径为/usr/local/etc/2UnsafeUserParameters允许自定义key,0为不允许,1为允许。默认0。1)编写配置文件:
vi /usr/local/zabbix/conf/zabbix_agentd.conf.d/web_site_discovery.conf
UserParameter=web.site.discovery,/usr/local/zabbix/conf/scripts/web_site_code_status web_site_discovery
UserParameter=web.site.code[*],/usr/local/zabbix/conf/scripts/web_site_code_status web_site_code $1
2)编写loaclhost中待监控的url
vi /usr/local/zabbix/conf/scripts/WEB.txt
192.168.8.244:8080
192.168.8.244:8080/mesa/
www.baidu.com
备注:本例中的url只是demo,生产环境中请按实际情况增减url。3)编写自动发现脚本:
vi /usr/local/zabbix/conf/scripts/web_site_code_status
#!/bin/bash
# function:monitor tcp connect status from zabbix
# License: GPL
# mail:78737454@qq.com
# version:1.0 date:2013-02-04
source /etc/bashrc >/dev/null 2>&1
source /etc/profile >/dev/null 2>&1
#/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1/ WEB_SITE_discovery() {
WEB_SITE=($(grep -v "^#" /usr/local/zabbix/conf/scripts/WEB.txt))
printf '{\n'
printf '\t"data":[\n'
for((i=0;i<${#WEB_SITE[@]};++i))
{
num=$(echo $((${#WEB_SITE[@]}-1)))
if [ "$i" != ${num} ]; then
printf "\t\t{ \n"
printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$i]}\"},\n"
else
printf  "\t\t{ \n"
printf  "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$num]}\"}]}\n"
fi
}
}
web_site_code() {
/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1 }
case "$1" in
web_site_discovery)
WEB_SITE_discovery
;;
web_site_code)
web_site_code $2
;;
*)
echo "Usage:$0 {web_site_discovery|web_site_code 备注:WEB.txt的存放路径,可自定义。注意:以上各项配置完后必须重启zabbix_agentd
/etc/init.d/zabbix_agentd restart
4)Server端测试验证结果:
zabbix_get -s 192.168.8.244 -p 10050 -k "web.site.discovery"


" target=_blank>}"
;;
esac[/code]备注:WEB.txt的存放路径,可自定义。注意:以上各项配置完后必须重启zabbix_agentd
/etc/init.d/zabbix_agentd restart
4)Server端测试验证结果:
zabbix_get -s 192.168.8.244 -p 10050 -k "web.site.discovery"
[url=http://blog.51cto.com/attachment/201306/205749667.png]

zabbix_get -s 192.168.8.244 -p 10050 -k "web.site.code[192.168.8.244:8080]"
[url=http://blog.51cto.com/attachment/201306/205837703.png]

此时返回状态为200至此,脚本,客户端配置OKlServer配置:Configuration--> Host

Create application

Name

Discovery

Create discoveryrule



Item prototypes

Trigger prototypes:设置3个报警级别。

Graph prototypes

Graphs

利用以上方法,哪怕是1000个url监控,也是分分钟的事情。总结:官方帮助是最好的利器。

参考文献:http://itnihao.blog.51cto.com/1741976/1129725官方参考文档:https://www.zabbix.com/documentation/2.0/manual/discovery/low_level_discovery

12.1.11特殊项目

Ø内存使用率计算示例:

Ø网卡流量合计示例:



12.2 windows系统

12.2.1 创建监控主机

ØConfiguration-->Host groups-->Create host group

ØConfiguration-->Hosts-->Create host

ØHost name --> Groups --> Agent interfaces

ØTemplates --> Add

Ø系统自定义了很多监控模板,根据监控主机的系统以及监控的类别来选择监控模板。当前监控的是linux系统,所以勾选Template OS Windows --> Select --> Save



12.2.2创建内存监控图形

ØTemplate OS Windows模板默认没有内存监控图形,需自行添加。ØConfiguration-->Templates

ØTemplate OS Windows --> Graphs

ØCreate graph

ØName -->Y axis MIN value --> Add

ØSelect

ØSave

Ø验证结果:Monitoring --> Graphs



12.2.3 Windows performance counters

OverviewYou can effectively monitor Windows performance counters using the perf_counter[]key.For example:perf_counter["\Processor(0)\Interrupts/sec"]orperf_counter["\Processor(0)\Interrupts/sec", 10]For more information on using this key, see WIN32-specificitem keys.In order to get a full list of performance counters available formonitoring, you may run:typeperf -qxNumeric representationAs the naming of performance counters may differ on differentWindows servers, depending on local settings, it introduces a certain problemwhen creating a template for monitoring several Windows machines havingdifferent locales.At the same time every performance counter can also be referred toby its numeric form, which is unique and exactly the same regardless oflanguage settings, so you might use the numeric representation instead ofstrings.To find out the numeric equivalents, run regedit, then find HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib\009.The registry entry contains information like this:118472System4Memory6% Processor Time10File Read Operations/sec12File Write Operations/sec14File Control Operations/sec16File Read Bytes/sec18File Write Bytes/sec....Here you can find the corresponding numbers for each string part ofthe performance counter, like in '\System\% Processor Time':System -> 2% Processor Time -> 6Then you can use these numbers to represent the path in numbers:\2\6User parametersYou can deploy some user parameters for themonitoring of Windows performance counters.For example, you can add these to the Zabbix agent configurationfile: PerfCounter=UserPerfCounter1,"\Memory\Page Reads/sec",30 or PerfCounter=UserPerfCounter2,"\4\24",30With such parameters in place, you can then simply use UserPerfCounter1or UserPerfCounter2 as the keys for creating the respective items.Remember to restart Zabbix agent after making changes to theconfiguration file.
官方参考文档:https://www.zabbix.com/documentation/2.0/manual/config/items/perfcounters
Demo:Name:CPU utilizationKey:perf_counter["\Processor(_Total)\% Processor Time"]



13. 后记

Ø感谢新鸟与老鸟阅读此手册,个中的不足或错误之处还望不吝赐教。Ø手册中的参考文献:üzabbix中文文档http://www.linuxmr.com/zabbix2/üphp.ini中的时区设置date.timezone= PRChttp://demon.tw/software/php-date-timezone.htmlüHeartbeat3.x应用全攻略之:概念组成及工作原理http://ixdba.blog.51cto.com/2895551/745228ülinux-ha heartbeat 搭建http://space.itpub.net/133735/viewspace-731951üCoroSync/Pacemaker on Centos 6http://snozberry.org/blog/2012/05/02/corosync-slash-pacemaker-on-centos-6/üHeartbeat3.x应用全攻略之:安装、配置、维护http://ixdba.blog.51cto.com/2895551/746271ü自动化运维之监控篇---利用zabbix自动发现功能实现批量web url监控http://itnihao.blog.51cto.com/1741976/1129725Ø最好的参考手册首选官方的帮助文档:https://www.zabbix.com/documentation/doku.phpØ本手册以zabbix为主,更多heartbeat、pacemaker、corosync和cman内容请参考官方网站:üLinux-HA的官方网站http://www.linux-ha.orghttp://hg.linux-ha.orgüPacemaker的官方网站http://clusterlabs.org/Ø因电信项目要求所有应用不得存在单点隐患,故在原有手册的基础上增添了冗余,整版完成历时二十六天,主要验证适用于此次项目监控部署方案以及脚本安装和卸载的准确性。Ø通过百度搜索cman pacemaker以及zabbix高可用等字样没有相关资源,貌似还没有人撰写这部分?希望本手册中的内容能为后者带来帮助。Ø遗憾:1)RHEL6.2 源码安装无法启动heartbeat,yum安装的heartbeat3.0.4无法启动crm,haresources配置文件只能启动lib无法监控应用进程是否存活,而使用crm启动ocf才能有效的监控进程,达到真正HA的目的。(V1.0 & V1.1)备注:在撰写此手册V1.2时已经可以实现heartbeat3.0.4启动crm,只是pacemaker1.1.8移除了crm,不清楚是红帽介入的关系还是crm针对1.1.8版本有bug尚未解决。参考各方文献时偶然看到国外非官方消息称crm会在RHEL6.4版本以后回归,希望如此。2)第二个困扰我很久的问题就是“zabbix代理(被动式)”的访问client后,网络数据包无法从vip地址返回,通过配置防火墙转发也无法实现。当然了,改成主动式后就没问题了。附个图更好理解:

20130625凌晨50分终于解决了此问题: 开启路由转发:
echo"1" > /proc/sys/net/ipv4/ip_forward
添加防火墙策略:
iptables-t nat -A POSTROUTING -s 192.168.8.73 -p tcp --dport 10050 -j SNAT --to192.168.8.89
备注:当源地址192.168.8.73对目标client的10050端口发起请求时进行ip的源地址转换。
Ø其它:ü运用lvs+heartbeat+pacemaker+drbd可以实现mysql的读写分离和zabbix server的负载均衡,适用于更大的生成环境。因本次项目被监控设备较少,所以只作为引申。Ø作者联系方式:78737454@qq.com
因篇幅关系,前篇的链接为:
http://lan2003.blog.51cto.com/blog/252098/1221149
zabbix 安装使用手册(HA)-1
全文下载地址:http://down.51cto.com/data/834358
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  手册 HA zabbix