一、Zabbix简介:

最近研究了下比较火的一个国外开源网络监控系统ZABBIX,它的界面简洁,后台配置逻辑分类清晰,易于配置上手。

  之前有玩过cacti和nagios,算是一个大家耳熟能详的业内常用的的网管互补组合,但感觉前者由于调用snmp协议,导致有时候在网络不太稳定时会有数据丢失情况,后者nagios虽然不依赖于SNMP,但客户端的复杂的安装,初始配置以及需要读懂插件语法导致会让很多初学者望而却步。

  zabbix不仅吸取了两者的制图和动态监测的优点,而且很多插件以及常用脚本模板都是系统自带,最重要的配置相对于前两者简洁了很多,所以省去了很多学习成本,加之该监控系统是利用PHP语言写的,系统个人定制就无需使用者修改底层代码,而可以直接在WEB界面去按照自己的偏好设置,支持字体修改以及简体中文,强烈推荐大家在线上使用这套网管平台

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可以单独监视远程服务器的服务状态;同时也可以与zabbixagent配合,可以轮询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环境

1.安装Apahce, PHP, MySQL以及php连接mysql库组件。

#yum -y install httpd php mysql mysql-server php-mysql
2. 安装apache扩展
#yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
让apache更好的支持其他的软件。
3. 安装php的扩展
#yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath
apache本身并不支持php文件,要安装对应的php软件,然后进行http.conf配置;让apache能解析.php文件。
4. 安装MySQL的扩展
#yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
更好的实现mysql的功能

三、zabbix(server,agent)配置:

server: 192.168.137.185

agent:  192.168.137.188

说明一下,其实是服务端安装zabbix_server,zabbix_agentd两个服务,客户端只需安装zabbix_agentd一个服务,监控原理其实就是zabbix_agentd服务将从系统中获取的相关数据传送给zabbix_server服务,然后zabbix_server服务将数据以PHP页面显示出来,很好理解。

(server)表示仅服务端配置

(agent)表示仅客户端配置

(server,agent)表示客户端与服务端都需配置

1.下载zabbix(server,agent)

下载网站:或在官网:

注:这里下载的是官方2.08的服务端与客户端的稳定整合编译包,所以后面编译的时候注意,--enable-server --enable-agent参数编译的为服务器端,以--enable-agent参数编译的为客户端。

官方提供的另外一种下载方式是服务端与客户端单独区分的编译包,编译方法与本博的方法不同,这里请注意区分。

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.8/zabbix-2.0.8.tar.gz/download

2.安装zabbix所需的组件(server,agent)

yum -y install curl libcurl-develnet-snmp net-snmp-devel perl-DBI libdbi-dbd-mysql  mysql-devel

yum install -y gcc gcc++ make

3.创建用户账号(server,agent)

# groupadd zabbix

# useradd -g zabbix zabbix

# usermod -s /sbin/nologin zabbix

4.创建zabbix数据库并导入zabbix数据库数据(server)

启动MySQL数据库:

#service mysqld start

修改MySQL root用户密码(默认密码为空):

# mysqladmin –u root –p password 123456

登录数据库:

# mysql -u root -p123456

创建Zabbix数据库:

mysql> create database zabbix;

mysql> grant all on zabbix.* tozabbix@localhost identified by '123456';

mysql> flush privileges;

导入数据库sql脚本:

# tar zxvf zabbix-2.0.8.tar.gz

# cd zabbix-2.0.8

在解压的zabbix目录下,将database/mysql目录下三个sql文件导入到zabbix数据库里。(下面用的是zabbix用户来导入文件,这个用户在数据库是默认存在的

# mysql -uzabbix -p123456 zabbix <database/mysql/schema.sql

# mysql -uzabbix -p123456 zabbix <database/mysql/p_w_picpaths.sql

# mysql -uzabbix -p123456 zabbix <database/mysql/data.sql

5.编译安装(server,agent)

server: (192.168.137.185)服务端

# cd zabbix-2.0.8

# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

# make && make install

agent:  (192.168.137.188)客户端

# ./configure --prefix=/usr/local/agent  --enable-agent

# make && make install

编译时加 --prefix=/usr/local/zabbix 参数,则zabbix配置文件默认在/usr/local/zabbix/etc目录下。(若编译时没有指定路径,则zabbix配置文件使用的默认路径,在/usr/local/etc/下)

6.编辑配置文件(server,agent)

# cd /usr/local/zabbix/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.137.185)

# vi /usr/local/zabbix/etc/zabbix_server.conf

修改如下内容并删除其他未修改参数条目:

---------------------------------------

LogFile=/var/log/zabbix_server.log

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=123456

---------------------------------------

# vi /usr/local/zabbix/etc/zabbix_agentd.conf

修改如下内容并删除其他未修改参数条目:

---------------------------------------

LogFile=/var/log/zabbix_agentd.log

Server=127.0.0.1,192.168.137.185

UnsafeUserParameters=1

---------------------------------------

agent:  (192.168.137.188)

# vi /usr/local/zabbix/etc/zabbix_agentd.conf

修改如下内容并删除其他未修改参数条目:

---------------------------------------

LogFile=/var/log/zabbix_agentd.log

Server=192.168.137.185

UnsafeUserParameters=1

---------------------------------------

创建日志文件(服务端的):

# touch /var/log/zabbix_server.log

# chmod 777 /var/log/zabbix_server.log

# touch /var/log/zabbix_agentd.log

# chmod 777 /var/log/zabbix_agentd.log

7、启动守护进程(server,agent),启动的命令在安装的zabbix/sbin目录下

# cd /usr/local/zabbix/sbin    //在zabbix编译的路径的sbin目录下启动服务

[root@localhost zabbix]# ls

bin etc  sbin  share

在服务器端运行启动zabbix_server

# zabbix_server start|stop

server启动端口为10051

在所有被监控的机器上运行zabbix_agentd 。

# zabbix_agentd start|stop

agentd启动端口为10050

注意若服务器打开iptables服务,则需添加该两个端口通行。

# iptables -A INPUT -p tcp  --dport10050 -j ACCEPT

# iptables -A INPUT -p tcp  --dport10051 -j ACCEPT

配置开机启动脚本:

# cd zabbix-2.0.8

# cp misc/init.d/tru64/zabbix_server  /etc/init.d/

# cp misc/init.d/tru64/zabbix_agentd  /etc/init.d/

# cd /etc/init.d/

# chmod 755 zabbix_*

# vi zabbix_server

# vi zabbix_agentd

在文件头部的#!/bin/sh行下分别添加如下两行:

------------------------------------------

#chkconfig: 35 95 95

#description:zabbix Agent server

------------------------------------------

# chkconfig --add zabbix_server  

# chkconfig --add zabbix_agentd

# chkconfig zabbix_server on

# chkconfig zabbix_agentd on

创建软链接

ln -s /usr/local/zabbix/sbin/zabbix_server/usr/local/sbin/

ln -s /usr/local/zabbix/sbin/zabbix_agentd/usr/local/sbin/

重启服务:

# service zabbix_server restart

# service zabbix_agentd restart

8.安装zabbix web界面(server)

复制ZABBIX PHP源代码文件

zabbix的服务端程序是用php写的,因此需要一个支持LAMP架构的服务器平台

现在将ZABBIX安装目录下 frontends/php 下面的php源代码文件拷贝到web服务器html文件目录下面。

这里建议用子目录替换APACHE HTML根目录或使用APACHE虚拟主机

这里测试环境我为了方便就选择了前者。

先建立一个子目录,将zabbix终端php文件拷贝到该子目录里面,执行下面的命令:

拷贝zabbix安装目录下"frontends/php"下面的php源代码文件拷贝到web服务器html文件目录下面

#mkdir /var/www/html/zabbix    //在网页的根目录创建zabbix目录

#cd zabbix-2.0.8

# cd frontends/

#cp -r php/* /var/www/html/zabbix/

四、安装前端

step 1

在你的浏览器中,输入url:http://192.168.137.185/zabbix,你将看到前端安装向导的第一个画面。

step 2

确保所有依赖的软件都正确安装。

查看到几处不符合要求

需修改该PHP文件配置文件参数:

# vi /etc/php.ini

查找如下参数并修改为:

----------------

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

----------------

重启apache服务

# service httpd restart

刷新页面,其中Step2 Check of pre-requisites 必须全部项目OK后才能继续配置:

step 3

输入之前在MYSQL后台设置的zabbix数据库信息(/usr/local/zabbix/etc/zabbix_server.conf):

DBName=zabbix

DBUser=zabbix

DBPassword=123456

step 4

输入zabbix服务器端的详细信息

step 5

检查一下设置情况。

step 6

下载配置文件,并把他放置在/var/www/html/zabbix/conf/ 目录下

将下载好的zabbix.conf.php文件放到var/www/html/zabbix/conf目录下后,点一下”Retry”按钮就可以了

step 8

zabbix前端已经安装就绪,默认的用户名是Admin,密码是zabbix。

安装完成。。。

注:

1.显示简体中文界面

点击:右上角Profile

按照如图选择Chinese(zh_CN),保存: