最近研究了下群里谈论比较火的一个国外开源网络监控系统ZABBIX,玩过一遍后就深深被他的界面简洁,后台配置逻辑分类清晰,易于配置上手的优点给吸引,立即将单位的系统统一换成这个平台监测,测试了一段时间,效果良好。
之前玩过cacti和nagios,算是一个大家耳熟能详的业内常用的的网管互补组合,但个人感觉前者由于调用snmp协议,导致有时候在网络不太稳定时会有数据丢失情况,后者nagios虽然不依赖于SNMP,但客户端的复杂的安装,初始配置以及需要读懂插件语法导致会让很多初学者望而却步。
zabbix不仅吸取了两者的制图和动态监测的优点,而且很多插件以及常用脚本模板都是系统自带,最重要的配置相对于前两者简洁了很多,所以省去了很多学习成本,加之该监控系统是利用PHP语言写的,系统个人定制就无需使用者修改底层代码,而可以直接在WEB界面去按照自己的偏好设置,支持字体修改以及简体中文,强烈推荐大家在线上使用这套网管平台。
zabbix简介(摘自百度百科)
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
配置前先关闭iptables和SELINUX,避免安装过程中报错。
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------
一.安装LAMP环境
本博传送门:http://showerlee.blog.51cto.com/2047005/1174141
二、zabbix(server,agent)配置:
server: 192.168.7.201
agent: 192.168.7.249
简单提下,其实是服务端安装zabbix_server,zabbix_agentd两个服务,客户端只需安装zabbix_agentd一个服务,监控原理其实就是zabbix_agentd服务将从系统中获取的相关数据传送给zabbix_server服务,然后zabbix_server服务将数据以PHP页面显示出来,很好理解。
(server)表示仅服务端配置
(agent)表示仅客户端配置
(server,agent)表示客户端与服务端都需配置
1.下载zabbix(server,agent)
注:本人下载的是官方2.06的服务端与客户端的稳定整合编译包,所以后面编译的时候注意,以 --enable-server --enable-agent 参数编译的为服务器端,以 --enable-agent参数编译的为客户端。
官方提供的另外一种下载方式是服务端与客户端单独区分的编译包,编译方法与本博的方法不同,这里请注意区分。
# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz/download
2.安装zabbix所需的组件(server,agent)
# yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI
3.创建用户账号(server,agent)
# groupadd zabbix
# useradd -g zabbix zabbix
# usermod -s /sbin/nologin zabbix
4.创建zabbix数据库并导入zabbix数据库数据(server)
# mysql -u root -p123456
> grant all on zabbix.* to zabbix@localhost identified by '123456';
> create database zabbix;
# tar zxvf zabbix-2.0.6.tar.gz
# cd zabbix-2.0.6
# mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/images.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
5.编译安装(server,agent)
server: (192.168.7.201)
# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
# make install
agent: (192.168.7.249)
# ./configure --enable-agent
# make install
这里笔者由于当时编译时忘记自定义安装目录导致zabbix配置文件使用了默认路径,在/usr/local/etc/下,这里若重新编译则下面更改的地方较多,后面的内容都以此路径为准。
参照本博配置的朋友,建议编译时加 --prefix=/usr/local/zabbix 参数,则zabbix配置文件默认在 /usr/local/zabbix/etc目录下。
6.编辑配置文件(server,agent)
# cd /usr/local/etc/
去掉配置文件注释:
# cat zabbix_server.conf |grep -v "#" |grep -v "^$" > zabbix_server.conf.bak
# cp zabbix_server.conf.bak zabbix_server.conf
# cat zabbix_agentd.conf |grep -v "#" |grep -v "^$" > zabbix_agentd.conf.bak
# cp zabbix_agentd.conf.bak zabbix_agentd.conf
server: (192.168.7.201)
# vi /usr/local/etc/zabbix_server.conf
修改如下内容并删除其他未修改参数条目:
-------------
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
-------------
# vi /usr/local/etc/zabbix_agentd.conf
修改如下内容并删除其他未修改参数条目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=127.0.0.1,192.168.7.201
UnsafeUserParameters=1
-------------
agent: (192.168.7.249)
# vi /usr/local/etc/zabbix_agentd.conf
修改如下内容并删除其他未修改参数条目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=192.168.7.201
UnsafeUserParameters=1
-------------