Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。官方网站:http://www.zabbix.com官方文档:http://www.zabbix.com/documentation/2.4/manual/quickstart。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
Zabbix运行条件:
Server:Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低。
Agent:目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows。
SNMP:支持各类常见的网络设备
1.2 Zabbix功能
具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。
1.3 优劣势
优点:开源,无软件成本投入;Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。
缺点:中文资料较少。
Server:指安装zabbix服务的服务器(以下简称服务器端),是最重要的部份,主要安装在linux系统上(支持多种操作系统),采用mysql存储监控数据并使用apache+php的方式呈现。
Agent:指安装在被监控设备上的zabbix代理(以下简称代理),被监控设备上的数据由代理收集后统一上传到服务器端由服务器端收集、整理并呈现。
SNMP:也是agent的一种,指支持SNMP协议的设备(也可以是服务器),通过设定SNMP的参数将相关监控数据传送至服务器端(大部份的交换机、防火墙等网络设备都支持SNMP协议)。
IPMI:Agent的另一种方式,主要应用于设备的物理性能监控,例如设备的温度、风扇的转速等。
Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如下
三、Zabbix_server的安装
1、首先我们需要先安装操作系统
我这里安装的是CentOS 6.4 64位的linux系统,使用的是basic基础软件套餐,请提前关闭SELinux;
[root@zabbix ~]# uname -r 2.6.32-358.el6.x86_64 [root@zabbix ~]# cat /etc/redhat-release CentOS release 6.4 (Final)
2、搭建LNMP环境
因为监控也不是需要特殊的WEB服务,rpm包提供的功能已经够用,没有必要源码安装LAMP,我的博客里面有源码编译LAMP,我这里是yum源安装的;
#安装apache yum install httpd #安装php yum install php php-bcmath php-gd php-mbstring php-xml #安装mysql yum install mysql-server php-mysql yum install libcurl-devel net-snmp-devel mysql-devel
启动各项服务,并为数据库设置密码
3、从zabbix官网下载最新的软件包
1、添加用户:
groupadd zabbix useradd -g zabbix -M zabbix
2、创建数据库,添加授权账号
mysql> create database zabbix character set utf8; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
3、编译安装
tar zxf zabbix-2.2.0.tar.gz cd zabbix-2.2.0 ./configure \ --prefix=/usr/local/zabbix \ --sysconfdir=/etc/zabbix \ --enable-server \ --enable-agent \ --enable-java \ --with-mysql \ --with-net-snmp \ --with-libcurl \ --with-ssh2 make make install
注:--enable-java是需要监控JVM的时候需要的,如果不需要监控tomcat等java容器的可以不选择这项,如果需要的话就需要安装jdk,具体可以看http://wangzan18.blog.51cto.com/8021085/1692444
--with-ssh2 是不需要在客户端服务器上面安装Zabbix agent,如果需要使用ssh检查,需要在编译的时候加上这项,最低需要libssh2 1.0.0版本,需要安装ssh开发包。
4、导入数据库
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql
6、修改配置文件
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ cp -R frontends/php /var/www/zabbix sed -i 's/^DBUser=.*$/DBUser=zabbix/g' /etc/zabbix/zabbix_server.conf sed -i 's/^.*DBPassword=.*$/DBPassword=zabbix/g' /etc/zabbix/zabbix_server.conf sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
7、添加服务端口:
cat >>/etc/services <<EOF zabbix-agent 10050/tcp Zabbix Agent zabbix-agent 10050/udp Zabbix Agent zabbix-trapper 10051/tcp Zabbix Trapper zabbix-trapper 10051/udp Zabbix Trapper EOF
8、启动服务
/etc/init.d/zabbix_server start /etc/init.d/zabbix_agentd start chkconfig zabbix_agentd on chkconfig zabbix_server on
4、然后打开web进行安装
安装过程中可能会出现一些配置不合格,我们适当的修改php配置文件里面的一些配置就可以,还有web目录的权限修改为apache,一切安装好之后我们就可以正常登录了。
php配置修改的参数有这些:
post_max_size = 16M max_execution_time = 300 max_input_time = 300 date.timezone =Asia/Shanghai
在zabbix初始安装完成后,管理界面上的“configuration”中还有一个页面是“install”选项,存在误操作重新安装的风险,通过修改menu.inc.php文件可以禁用该显示项目;
vi /var/www/zabbix/include/menu.inc.php
四、zabbix客户端的安装
既然要监控我们就要添加要监控的主机,在添加主机之前我们首先要在被检测主机上面安装agent,安装agent比较简单,我们也是按照安装server的流程,下载软件包,在编译的时候,我们只选择agent
useradd -M -s /sbin/nologin zabbix tar xf zabbix-2.4.4.tar.gz cd zabbix-2.4.4 ./configure --prefix=/usr/local/zabbix --enable-agent --sysconfdir=/etc/zabbix make make install
修改agent的配置文件
# vim zabbix_agentd.conf
server=server的IP等其他一些配置信息
配置启动脚本,设为开机启动,和server的设置差不多。
五、zabbix_proxy的安装
1、安装数据库及一些依赖软件
# yum install mysql-server mysql-devel net-snmp-devel libcurl-devel
#
2、添加用户
groupadd zabbix useradd -g zabbix -M zabbix
3、创建数据库,添加授权账号
mysql> create database zabbix_proxy character set utf8; mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
4、编译安装
tar xf zabbix-2.4.4.tar.gz cd zabbix-2.4.4 ./configure \ --prefix=/usr/local/zabbix \ --sysconfdir=/etc/zabbix \ --enable-proxy \ --enable-agent \ --enable-java \ --with-mysql \ --with-net-snmp \ --with-libcurl \ --with-ssh2 make make install
注:--enable-java是需要监控JVM的时候需要的,如果不需要监控tomcat等java容器的可以不选择这项,如果需要的话就需要安装jdk,具体可以看http://wangzan18.blog.51cto.com/8021085/1692444
--with-ssh2 是不需要在客户端服务器上面安装Zabbix agent,如果需要使用ssh检查,需要在编译的时候加上这项,最低需要libssh2 1.0.0版本。
5、导入数据库
mysql -uzabbix -pzabbix -hlocalhost zabbix_proxy < database/mysql/schema.sql
6、配置zabbix_proxy.conf
# vim /etc/zabbix/zabbix_proxy.conf
Server=xxx.xxx.xxx.xxx #zabbix server的ip地址或主机名
Hostname=Zabbix_proxy #z该主机名的配置需被zabbix server知道,并且在zabbix server前端配置时会用到
LogFile=/tmp/zabbix_proxy.log #pid文件的存放位置
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
ConfigFrequency=60 #zabbix proxy 想服务器检索配置数据信息的频率,在被动模式下该参数将被忽略
DataSenderFrequency=60 #zabbix proxy发送收集的数据给zabbix server的频率
7、修改配置文件
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd cp misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_proxy sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_proxy sed -i 's/zabbix_server/zabbix_proxy/g' /etc/init.d/zabbix_proxy
8、启动代理服务
# service zabbix_proxy start
9、进行web配置