Zabbix部署与使用手册 
                         
 
一、前言、 
1.1、      介绍 
zabbix是一个国外的开源网络监控系统,后台配置逻辑分类清晰,容易配置上手,我们都知道cacti和nagios,是运维圈内常用的监控和流量互补工具,那么由于cacti依赖于snmp协议,导致有网络波动的时候部分数据丢失,nagios虽然不依赖snmp,但是初始配置及需要读懂插件的语法,导致很多初学者望而却步. 
  那么zabbix集合了cacti以及Nagios两者的制图和动态监控的优点,而且大部分的插件以及常用的模板都是系统自带的,最重要的是配置和功能分类清晰明了,省出很多学习的时间的,而且可以根据个人爱好定义不同的语言支持. 
1.2、      特点(摘自百度百科) 
Ø          zabbix的主要特点: 
-          安装与配置简单,学习成本低 
-          支持多语言(包括中文) 
-          免费开源 
-          自动发现服务器与网络设备 
-          分布式监视以及WEB集中管理功能 
-          可以无agent监视 
-          用户安全认证和柔软的授权方式 
-          通过WEB界面设置或查看监视结果 
-          email等通知功能等等 
Ø          Zabbix主要功能: 
-          CPU负荷 
-          内存使用 
-          磁盘使用 
-          网络状况 
-          端口监视 
-          日志监视 
  
  
  
  
  
二、前期准备 
2.1、安装软件 
(1)打开http://www.zabbix.com/download.php下载statble稳定源码包(用于安装ZabbixServer) 
 
 
(2)找到和2.2对应的Agen包,并且下载(用户被监控端安装), 
选择内核版本为2.6架构为adm X86_64位安装包 
 
 
2.2、安装依赖包 
# yum -y install make mysql-server httpd php mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml 
  
# useradd zabbix 
2.3、启动Mysql 
# /etc/init.d/mysql start 
# mysqladmin–u root–p password‘123456’ 
# mysql–uroot–p 
2.4、创建zabbix数 
Mysql> create database zabbix character set utf8; 
Mysql> grant all on zabbix.* TO zabbix@'localhost' identified by 'zabbixpass'; 
Mysql> flush privileges; 
2.5、导入zabbix数据 
# tar -xvf zabbix-2.2.2.tar.gz 
# cd zabbix-2.2.2/database/mysql 
#mysql -uroot -p123456 -h localhost zabbix < schema.sql 
#mysql -uroot -p123456 -h localhost zabbix < images.sql 
#mysql -uroot -p123456 -h localhost zabbix < data.sql   
2.6、调整服务器时间 
# date -s "2014-3-11 11:22:35"如果时间正确的话。这一步直接跳过 
  
三、Zabbix安装部署 
3.1、安装Zabbix 
#cd zabbix-2.2.2 
# ./configure --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix 
# make && mamke install 
3.2、增加端口 
#vim /etc/services 
zabbix-agent 10050/tcp # Zabbix Agent 
zabbix-agent 10050/udp # Zabbix Agent 
zabbix-trapper 10051/tcp # Zabbix Trapper 
zabbix-trapper 10051/udp # Zabbix Trapper 
3.3、修改apache配置文件 
# vim /etc/httpd/conf/httpd.conf 
DirectoryIndex index.html index.html.var index.php 
3.4、修改zabbix配置文件 
#vim/usr/local/zabbix/etc/zabbix_server.conf 
DBName=zabbix 
DBUser=zabbix连接数据库的账号,与Mysql授权账号对应 
DBPassword=zabbixpass连接数据库的密码,与Mysql授权账号的密码对应 
  
  
3.5、修改服务启动文件 
回到编译安装目录 
# cd zabbix-2.2.2/misc/init.d/fedora/core5 
# cp zabbix_* /etc/init.d/ 
# chmod 700 /etc/init.d/zabbix_* 
# vim /etc/init.d/zabbix_server 
安装路径修改为 
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server" 
# vim /etc/init.d/zabbix_agentd 
安装路径修改为 
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd" 
3.6、启动服务并设置开机启动 
# /etc/init.d/zabbix_server start 
# /etc/init.d/zabbix_agentd start 
# chkconfig zabbix_server on 
# chkconfig zabbix_agentd on 
3.7、修改php相关参数 
# vi /etc/php.ini找到如下几项,改成下面的值,前面有;号的要删掉 
max_execution_time = 300 
max_input_time = 300 
date.timezone = PRC 
post_max_size = 32M 
3.8、启动apache 
# /etc/init.d/httpd restart 
# cd zabbix-2.2.2/frontends 
# cp -rf php /var/www/html/zabbix 
# chown -R zabbix:zabbix /var/www/html/zabbix 
  
3.9、登陆WEB进行配置Zabbix 
(1)出现Welcometo Zabbix 2.2 Next下一步 
 
 
  
(2)Check of pre-requisties检查配置环境是否OK。Next下一步 
 
 
  
(3)配置ConfigureDB connetcion 配置DB,主要此处和授权时要一样 
 
 
  
(4)Zabbix服务器地址及端口和名称 
 
 
  
  
(5) Pre-Installation summary信息确认 
 
 
(6)、zabbix会根据5步的信息生成一个zabbix.conf.php配置文件,我们需要手工把这个配置文件放入apache的默认WEB目录/var/www/html/zabbix/conf 
 
 
(7)、Zabbix配置完成 
 
 
  
默认用户admin密码为:zabbix 
 
 
四、Linux被监控端部署 
4.1、创建用户 
# groupadd zabbix 
# useradd–g zabbix zabbix–s /sbin/nologin 
4.2、解压Agent包 
zabbix_agents_2.2.1.linux2_6.amd64.tar.gz都是官方已经编译好的。直接解压到目录就行了。 
# mkdir /usr/loca/zabbix 
#tar -xvf zabbix_agents_2.2.1.linux2_6.amd64.tar.gz -C /usr/local/zabbix/ 
# chown–R zabbix:zabbix /usr/local/zabbix 
  
  
4.3、配置agent文件 
只要这4个参数。其它的全部注释掉 
#vim   /usr/local/zabbix/conf/zabbix_agentd.conf 
LogFile=/tmp/zabbix_agentd.log  #日志文件 
SourceIP=127.0.0.1             #agen本机IP 
Server=192.168.100.214        #zabbix_serverIP地址 
ListenPort=10050              #agent监听端口 
Hostname=DB206             #本机hostname 
#ServerActive=127.0.0.1   注释掉 
4.4、启动服务 
#/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf 
# cat/tmp/zabbix_agentd.log 
# echo“/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf”>> /etc/rc.d/rc.local 
# ps–ef | grep zabbix 
  
五、Windows被监控端部署 
5.1、下载Agent安装包 
http://www.zabbix.com/download.php 
 
 
5.2、解压配置 
(1)在C:\ProgramFiles\下创建zabbix文件夹 
(2)解压到C:\Program Files\zabbix下,根据操作系统删除不对应的目录,如果是win64的系统就把win32目录删除掉。只保留win64,如果是32位的那么就删除掉win64目录, 
(3)并在该目录下创建一个zabbix_agentd.conf文件,内容为 
LogFile= C:\Program Files\zabbix\zabbix_agentd.log  #日志文件 
SourceIP=127.0.0.1             #agen本机IP 
Server=192.168.100.214        #zabbix_serverIP地址 
ListenPort=10050              #agent监听端口 
Hostname=testwindows            #本机hostname 
UnsafeUserParameters=1    #开启定义KEY 
5.3、安装并启动服务 
(1)开始运行输入CMD 
 
 
  
(2)安装客户端 
C:\>cd C:\Program Files\zabbix\bin\win32 
C:\Program Files\zabbix\bin\win32>zabbix_agentd.exe -c "c:\Program Files\zabbix 
conf\zabbix_agentd.conf" -i 
zabbix_agentd.exe [2024]: service [Zabbix Agent] installed successfully 
zabbix_agentd.exe [2024]: event source [Zabbix Agent] installed successfully 
  
(3)启动服务 
C:\Program Files\zabbix\bin\win32>zabbix_agentd.exe -c "c:\Program Files 
conf\zabbix_agentd.conf" -s 
zabbix_agentd.exe [2044]: service [Zabbix Agent] started successfully 
zabbix_agentd.exe参数含义:  
-c    制定配置文件所在位置  
-i    安装客户端  
-s    启动客户端  
-x    停止客户端  
-d    卸载客户端  
5.4、检查服务 
 
 
六、Zabbix默认模板应用 
6.1、修改默认模板 
(1)选择组态à模板àTemplateOS Linux 模板(系统自带)  
 
 
 
 
  
(2) Template OS Linux说明 
 
 
  
  
  
(3)、CPU项目分解 
 
 
  
(4)、filesystem文件系统分解 
 
 
 
 
  
  
(5)General基本信息 
 
 
  
  
  
(6)、Memory内存信息 
 
 
  
  
  
(7)、Networkinterfaces网络接口 
 
 
 
 
  
(8)、OS项目信息 
 
 
(9)、Performance 项目信息 
因为CPU和Performance都包含这些项目。在CPU里面已经有应用所有这里全部停止掉。 
 
 
  
(10)、Processes进程信息 
 
 
OK。模板分析完成。我们结下来定义主机 
  
  
6.2、创建一个主机 
(1)选择-->组态à主机à创建主机 
 
 
 
 
  
6.3为主机添加模板 
 
 
 
 
6.4、查看监控后的事实数据 
 
 
  
  
  
  
  
  
七、Zabbix定义模板应用 
说明:根据企业的业务内容来自定义合适的模板,所有主机都可以使用这个定义模板,这样方便管理。 
7.1、首先创建个人模板 
(1)这里名称可以随意。我这里定义为:alvin_check_all 
 
 
  
7.2、在被监控定义KEY和脚本 
# mkdir /usr/local/zabbix/scripts 
# vim  /usr/local/zabbix/scripts/httpd.sh 编辑一个检测httpd状态的脚本,并且返回值为 
#!/bin/bash 
aa=`/etc/init.d/httpd status |grep "pid" |wc -l`   #如果htttp服务正常这个值为1,不为1表示错误 
echo $aa 
# chown zabbix:zabbix–R /usr/local/zabbix/scripts 
  
7.3、在被监空开始定义KEY的使用 
# cd /usr/local/zabbix/conf/ 
# vimzabbix_agentd.conf 
UnsafeUserParameters=1              #开启定义KEY的参数 
UserParameter=check.http.serivces,/usr/local/zabbix/scripts/httpd.sh   
#key值为check.http.services 应用脚本为:/usr/local/zabbix/scripts/httpd.sh 
#语法为:UserParameter=KEY,<脚本/命令>脚本或者命令都可以,以上应用是脚本 
7.4、重启被监控端的agent服务 
#ps -ef | grep zabbix |grep -v "grep " |xargs kill -9 
#/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf 
  
7.5、回到主Zabbix服务器命令测试 
# cd /usr/local/zabbix/bin/ 
# ./zabbix_get -s 192.168.100.206 -p 10050 -k "check.http.serivces" 查看返回值是否为脚本的正确值。 
如果返回值不对,在agetn被监控端,切换zabbix用户尝试执行这个脚本,看看到底哪里出问题了。 
比如:su - zabbix 
bbix@slave scripts]$ /etc/init.d/httpd status 
httpd已死,但是 subsys被锁 
  
解决:在监控端agent,将apache组加入到zabbix 
usermod–G apache zabbix 
  
7.6、回WEB界面自己定义模板添加应用集 
(1)创建一个名为httpd的应用集 
 
 
7.7、为应用集添加一个监控项目 
 
 
 
 
7.8、为项目添加一个触发报警器 
(1)开始创建 
 
 
  
  
  
(2)定义项目值 
 
 
  
  
(3)保存退出 
 
 
  
  
  
  
  
  
  
  
7.9、为主机DB206增加一个自定义模板 
(1)添加一个自定义模板 
 
 
  
(2)、验证自定义模板是否成功 
 
 
  
  
  
八、Zabbix定义邮件报警通知 
8.1、修改zabbixserver hostname 
声明:在配置zabbix的Email报警之前,需要将sendmail使用的域名进行相应的修改,系统默认为localhost.localdomain,其实不改也行, 
不过有些pop3服务器会过滤掉来自localhost.localdomain的邮件,导致邮件不能正常查收,所以,最好是改一下hostname,确保邮件发送的成功率。 
# vim /etc/hosts 
127.0.0.1    zabbix.alvin.com localhost.localdomain localhost 
  
# vim /etc/sysconfig/network 
NETWORKING=yes 
HOSTNAME=zabbix.alvin.com 
  
# hostname zabbix.alvin.com 
# exit 重新登录终端。生效 
  
8.2、安装sendmail 
# yum -y install sendmail 
8.3、修改mailaccess 
# vim  /etc/mail/access 
Connect:localhost.localdomain           RELAY 
Connect:localhost                       RELAY 
Connect:127.0.0.1 
Connect:zabbix.alvin.com                RELAY 
8.4、修改maillhostname 
# vim /etc/mail/local-host-names 
zabbix.alvin.com 
8.5、重启动sendmail 
# /etc/init.d/sendmail 
  
8.6、测试smtp域名是否为zabbix.alvin.com 
# telnet 127.0.0.1 25 
Trying 127.0.0.1... 
Connected to 127.0.0.1. 
Escape character is '^]'. 
220 zabbix.alvin.com ESMTP Postfix 
8.7、创建一个告警媒介 
(1)创建一个告警媒介类型 
 
 
(2)设置详细内容 
 
 
8.8、创建一个告警动作 
(1)、组态à动作à创建一个动作 
 
 
(2)、设置动作 
 
 
  
(3)设置操作 
 
 
 
 
8.9、修改一个用户组 
(1)管理à用户à选择组à点击对应的用户 
 
 
(2)点击Admin 
 
 
  
(3)选择告警媒介,添加à然后添加收件人, 
 
 
测试、在QQ邮箱里面,增加白名单 
将zabbix@zabbix.alvin.com增加到白名单,然后停止一个服务。开始测试。 
可以将收件人QQ邮箱改成139邮箱。可以实现短信提示+邮件报警 
在触发器里面如果不勾选次项,那么系统在遇到故障的时候发一次邮件,如果勾选上了将根据触发器的更新时间来不停地发送错误邮件或者短信 
  
  
  
九、Zabbix定义短信报警通知三 
声明:fetion针对对6.0以上的系统支持很不好,建议监控系统使用 
Centos 5.5或者centos 5.4 
  
9.1、飞信安装 
http://bbs.it-adv.net/viewthread.php?tid=1081&extra=page%3D1&page=1 
下载机器人。和库文件 
# unzipfetion.zip 
# mkdir /usr/local/fetion 
# cp fetion /usr/local/fetion 
# mv lib /usr/local/fetion 
# cd /usr/local/fetion 
# ls 
 
 
#export  LD_LIBRARY_PATH=/usr/local/fetion/lib 
./fetion --mobile=13692xxx096 --pwd=xxxxxxx --to=1369xxxx6096 --msg-utf8=测试 
 
 
这个理产生一个手机名的验证码图片。打开另外一个终端。 
 
 
这个13692216096.jpg下载下来。然后查看验证码多少。输入验证码这个第一次需要输入。以后就不要了 
  
9.2、自定义飞信报警脚本 
# mkdir /usr/local/sms 
# vim /usr/loca/sms/fetionsms.sh 
#!/bin/bash 
export  LD_LIBRARY_PATH=/usr/local/fetion/lib 
aa=$@ 
/usr/local/fetion/fetion --mobile=136xxxxxx096--pwd=zmypaswd--to=$1 --msg-utf8="$aa" 
# chwon–R zabbix:zabbix/usr/local/sms/ 
  
测试: 
# cd /usr/local/sms/ 
#./fetionsms.sh 1369xxxx096test test2 test3 test 4 
SIP-C/4.0 280 Send SMS OK 
T: sip:900869406@fetion.com.cn;p=2823 
I: 2 
Q: 1 M 
RQ: 24808655073 
L: 112 
XI: 8f64794cbd524ebabaffc980e9a38d56 
  
  
9.3、创建一个告警媒介 
 
 
 
 
  
9.4、编辑配置文件定义脚本路径 
#vim /usr/local/zabbix/etc/zabbix_server.conf 
找到AlertScriptsPath参数并修改成AlertScriptsPath=/usr/local/sms 
#/etc/init.d/zabbix_server  重启服务 
  
9.5、创建一个告警动作 
 
 
(1)设置动作 
 
 
  
  
  
  
(2)设置操作 
 
 
9.6、修改一个用户组 
 (1)管理à用户à选择组à点击对应的用户 
 
 
(2)点击Admin 
 
 
(3)、编辑媒介,选择上面定义的媒介类型Fetion,然后收件人写入XXXX手机号码 
 
 
测试、关闭一个服务测试 
停止一个服务。开始测试。在触发器里面勾选这个项目,根据触发更新时间发送多次信息,否则之发送一次 
  
   |