本文出自 “dongyahu_blog” 博客,请务必保留此出处
本人已操作完成。。操作过程 如有疑问或者错误无法解决,可留言本文,谢谢配合
一、 Zabbix简介
Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
官方网站:
Zabbix 1.8官方文档:
Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据
Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。
Zabbix运行条件:
Server:
Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低
Agent:
目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows
SNMP:
支持各类常见的网络设备
二. Zabbix功能
具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)
支持自动发现网络设备和服务器
支持分布式,能集中展示、管理分布式的监控点
扩展性强,server提供通用接口,可以自己开发完善各类监控
三、 优劣势
优点:
开源,无软件成本投入
Server对设备性能要求低(实际测试环境:虚拟机Redhat EL AS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上)
支持设备多
支持分布式集中管理
开放式接口,扩展性强
缺点:
全英文,界面不友好
无厂家支持,出现问题解决比较麻烦
需在被监控主机上安装agent
部署安装:
一、 服务端环境准备
Zabbix Server需要运行在CentOS、RedHat Linux、Debain等Linux系统上,这里以RHEL AS5作为部署环境。
Root用户安装必须的包,建议配置好yum,通过yum安装下列包,解决包的依赖关系。
编译环境安装:
#yum -y install gcc openssl-devel zlib-devel pcre-devel libjpeg-devel libpng-devel libtool-ltdl-devel
#yum groupinstall "Development Tools" "Development Libraries" -yLAMP环境
#yum install mysql-server httpd php
其他需要用到的包:
#yum install mysql-devel gcc net-snmp-devel libcurl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml
下载最新的Zabbix安装包(官网:http://www.zabbix.com)到本地,解压
#tar zxvf zabbix-1.8.1.tar.gz
增加zabbix用户和组
#groupadd zabbix
#useradd –g zabbix –m zabbix
一、 数据库准备
启动MySQL数据库:
#service mysqld start
修改MySQL root用户密码(默认密码为空)
# mysqladmin -u root -p password redhat
输入这个命令后,需要输入root的原密码,然后root的密码将改为redhat。
测试能否正常登陆数据库
#mysql –uroot –proot
创建Zabbix数据库
Mysql> create database zabbix character set utf8;
导入数据库sql脚本
#cd zabbix-1.8.1
# cat ./create/schema/mysql.sql |mysql -uroot -predhat zabbix
# cat ./create/data/data.sql |mysql -uroot -predhat zabbix
# cat ./create/data/p_w_picpaths_mysql.sql |mysql -uroot -predhat zabbix
编译安装
配置编译,prefix是安装后程序目录
# ./configure --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix
# make install
配置文件及web前端文件修改
添加服务端口,添加后如下
# grep zabbix /etc/services
#vi /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
添加配置文件
# mkdir -p /etc/zabbix
# cp ./misc/conf/* /etc/zabbix
# chown -R zabbix:zabbix /etc/zabbix
修改Server配置文件
基本不用修改,用默认配置即可,只需修改一项DBPassword=密码
# vi /etc/zabbix/zabbix_server.conf
修改Agentd配置文件,更改HOST NAME 为本机的hostname就好了
#vi /etc/zabbix/zabbix_agentd.conf
添加web前端php文件
# cd frontends/
# cp -rf php /var/www/html/
# cd /var/www/html
# mv php zabbix
# chown -R zabbix:zabbix zabbix
一、 web前端安装配置
修改php相关参数
# vi /etc/php.ini 找到如下几项,改成下面的值,前面有;号的要删掉
date.timezone = Asia/Shanghai
post_max_size = 32M
upload_max_filesize = 16M
max_execution_time = 600 ; Maximum execution time of each script, in seconds
max_input_time = 600 ; Maximum amount of time each script may spend parsing request data
memory_limit = 256M ; Maximum amount of memory a script may consume
重启apache
#service httpd restart
在本地浏览器上访问Zabbis Serve地址开始web前端配置,http://ServerIP/zabbix
按提示一步步next,其中Step 3 Check of pre-requisites 必须全部项目OK后才能继续配置,如有提示fail,去server上检查是否安装这个包或配置是否按上述更改。
Step 4 填入Zabbix Server 登陆mysql的用户和密码
Step 7 按提示下载配置文件到Server的/var/www/html/zabbix/conf下,名字一定要是zabbix.conf.php
注: 此处需生成文件 zabbix.conf.php 拷贝至/var/www/html/zabbix/conf/
配置完成后,出现登陆界面,默认的用户为:admin,密码为:zabbix
PS:小技巧....ZABBIX支持中英文切换,选择Chinese(CN)即可
启动Server服务
安装完成后的server程序在/usr/local/zabbix/sbin/目录下,可以直接启动
#/usr/local/zabbix/sbin/zabbix_server
为了便于启停Server,我们做一些小配置
复制控制程序
# cp ./misc/init.d/redhat/zabbix_* /etc/init.d/
修改配置目录文件zabbix_server_ctl和 zabbix_agentd_ctl
/etc/init.d/zabbix_server_ctl
/etc/init.d/zabbix_agentd_ctl
两个文件中的BASEDIR=改为/usr/local/zabbix
# vi /etc/init.d/zabbix_server_ctl
修改其中ZABBIX_SUCKERD所在行:
ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server
修改后:
# base zabbix dir
BASEDIR=/usr/local/zabbix # PID file PIDFILE=/var/tmp/zabbix_server.pid # binary file ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server
# vi /etc/init.d/zabbix_agentd_ctl
修改其中ZABBIX_AGENTD所在行:
ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd
修改后:
# base zabbix dir
BASEDIR=/usr/local/zabbix # pid file (as of 1.0 beta 10) PIDFILE=/var/tmp/zabbix_agentd.pid # binary file ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd
加入开机启动
# echo '/etc/init.d/zabbix_server_ctl start &' >>/etc/rc
# echo '/etc/init.d/zabbix_agentd_ctl start &' >>/etc/rc
创建快键方式
# ln -s /etc/init.d/zabbix_server_ctl /usr/bin/zabbix_server_ctl
# ln -s /etc/init.d/zabbix_agentd_ctl /usr/bin/zabbix_agentd_ctl
启动Server和Agentd(可以通过start stop restart来操作)
# zabbix_agentd_ctl start
# zabbix_server_ctl start
检查启动是否正常,查看进程是否起来,分server和agentd
#ps –ef|grep zabbix
如果进程没起来,可以查看对应的日志错误,默认在/tmp/zabbix-*.log
至此Zabbix Server的安装已完成
在hosts上配置agent
Zabbix需要在被监控的host上安装agent,在zabbix官网上下载相应平台的agent包到各被监控端,按如下方式在被监控上运行agent
(注:官网上下载的agent包里没有运行agentd所必须的配置文件,可以从zabbix server上拷贝一份zabbix_agentd.conf,这个conf文件是所有平台都通用的)
Linux、UX:
Linux、UX上的agent是编译好了的,不用安装
#cd /usr/local/zabbix
#tar zxvf zabbix_agents_1.8.linux2_6.i386.tar.gz
取一份server上的zabbix_agnetd.conf到本地,然后按说明修改,一般我们只需修改如下3个参数:
Hostname=本机名
Server=Zabbix Server IP
LogFile=本机agentd日志保存文件
修改完成后,运行agentd
#/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &
#ps –ef|grep zabbix_agentd
如果进程没起来,可查看agentd.log日志来排查问题。
(注:启动时建议用全路径,否则可能会出错)
加入开机运行
#echo ‘/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &' >>/etc/rc
Windows:
Windows下解压客户端包到c:,
下载修改好的zabbix_agentd.conf文件也放到c:,
打开cmd命令行,执行
C:>zabbix_agentd –-install
安装后会在系统服务里添加一个zabbix_agentd服务,会自动开机运行
如果需要将客户端和配置文件放在其他目录,请执行
C:>DIR/zabbix_agentd –c DIR/zabbix_agentd.conf –-install
启动agentd服务
C:>zabbix_agentd –-start
或是通过管理->服务找到zabbix_agentd来启动
配置使用
通过本地浏览器访问来开始配置和使用zabbix。
使用zabbix进行监控之前,要理解zabbix监控的流程。
一次完整的监控流程可以简单描述为:
Host Groups(设备组)->Hosts(设备)->Applications(监控项组)->Items(监控项)->Triggers(触发器)->Actions(告警动作)->Medias(告警方式)->User Groups(用户组)->Users(用户)
一、 添加 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 可以添加设备组
二、 添加 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的解释请参考:
三.添加 Triggers
Trigger是触发器,当Items采集值满足triggers的触发条件时,就会产生actions。
每一个trigger必须对应一个item,但一个item可以对应多个trigger。
同样,通过点击Configuration->Hosts->Triggers中某个trigger的名字,可以修改trigger的属性。(注意:引用自template的trigger触发值是不能单独修改的,必须在template中修改,或是复制一个同样的trigger再修改,然后禁用掉之前的)
新增trigger可以通过点击右上角的create trigger来创建
Expression中选择对应的item、触发方式及触发值,Severity是告警级别,根据trigger的严重性来选择。
Zabbix 提供多种trigger触发方式供选择,常用的我们可以选择last value </>/=/#/N(最近一次采集值),或是选择maximal value for period of time (一段时间内的最大值),等等。可以根据实际需要来设定触发方式。更多的解释请参考: