zabbix简介

  zabbix(http://www.zabbix.com/)是一个基于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等通知功能 宋体黑色

附加说明

  其实网上已有很多的文章说明怎么搭建监控系统,其中最多的要属cacti其次就属zabbix了。个人对这两个软件都体验了一把,感觉zabbix最大的优势是简单、高效;而cacti虽然图然很好看但监控出来的数据不准确(和现实系统表现出来的有出入下面是cacai的图,大家可对比一下)。

  最后决定发现zabbix是正确的选择。网上看上去有很多参考资料,但当你参考时发现仍会出现不同的问题:系统环境不一样;zabbix的版本不一致;相关的PHP模块找不到;相关的MYSQL版本不一致;找不到合适的监控模板等等,本文的目的是尽量解决这些问题同时将自己的做法及想法贡献出来大家一起参考。其中有些部份的内容可能用不到放在这里的原因仅做参考用。

网络设定相关

1.增加路由

  1. route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.0.22

2.系统启动后网卡需手动激活

  原因是最小化安装CentOS6.2后,网卡是没有默认启动的(onboot=“no”),并且设置了依赖NetworkManager 的选项(NM_CONTROLLED="yes"),但是minimal的情况下并没有安装系统默认提供的网络管理工具NetworkManger。我们需要修改/etc/sysconfig/network-script/ifcfg-eth0文件

3.安装传输文件协方式

  1. yum install lrzsz

时间设定

1.时间设定

  1. hwclock --set --date="07/07/06 10:19"
  2. hwclock --hctosys

  时间的正确设定很重要,时间不同步将导致监控的数据不一致,有可能出现监控了一周却始终只有三五天数据或是无法得到当前时间数据的情况。其中第一条语句是设定硬件时钟,第二条语句是设定系统时钟和硬件时钟同步。

2.时区设定

  1. tzselect

  时区的设定也很重要,如果系统及硬件时钟正确而时区设定不正确的话会导致图形显示出来的数据相关几个小时,因些调整好时区也是一个重要的步骤。

  查找系统文件etc/sysconfig/clock并修改为:

  1. ZONE="Asia/Shanghai"
  2. UTC=true
  3. ARC=false

  找到系统文件/usr/share/zoneinfo/Asia/Shanghai用这个文件替换当前的/etc/localtime文件

  1. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  修改php.ini

  1. date.timezone = Asia/Shanghai

字体设定

  zabbix自带的中文字体不太好看,你可以将自己替换喜欢的字体。常用的字体windows其实已经自带了(系统字体的存放位置位于c:\windows\font中,如下图所示),你可以直接用windows中的字体进行替换。

2012-6-20 21-56-43

  1. wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.0/zabbix-2.0.0.tar.gz
  2. tar zxvf zabbix-2.0.0.tar.gz
  3. cp -r /root/zabbix-2.0.0/frontends/php /var/www/html/
  4. mv /var/www/html/php/ /var/www/html/zabbix
  5. cd /var/www/html/zabbix/fonts/
  6. cp -frp DejaVuSans.ttf DejaVuSans.ttf.old
  7. mv simsunb.ttf DejaVusans.ttf

XDMCP设定

  对于在windows下想用xmanager连接linux进行图形化远程操作的人员来说,设定好XDMCP是必不可少的步骤。这里仅仅介绍linux端的设定,对于该方式和该软件不了解的可以自己google下。

  1. vi /etc/gdm/custom.conf

  修改配置文件。

  1. [daemon]
  2. [security]
  3. AllowRemoteRoot=true
  4. [xdmcp]
  5. Enable=true
  6. [greeter]
  7. IncludeAll=true
  8. [chooser]
  9. [debug]

iptables设定

  iptables的作用及它的重要性不需做太多解释,这里只列出必要开放的端口,对于语句或内容有疑问的请自行google或和我联系。

  1.  vi /etc/sysconfig/iptables

  修改iptables配置文件

  1. :INPUT ACCEPT [0:0]
  2. :FORWARD ACCEPT [0:0]
  3. :OUTPUT ACCEPT [0:0]
  4. -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  5. -A INPUT -p icmp -j ACCEPT
  6. -A INPUT -i lo -j ACCEPT
  7. -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  8. -A INPUT -m state --state NEW -m udp -p udp --dport 177 -j ACCEPT
  9. -A INPUT -m state --state NEW -m tcp -p tcp --dport 6000:6010 -j ACCEPT
  10. -A INPUT -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT
  11. -A INPUT -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT
  12. -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  13. -A INPUT -j REJECT --reject-with icmp-host-prohibited
  14. -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  15. COMMIT

HTTPD设定

  HTTPD的作用也无需太多介结大家都能明白,这里需要说明的是HTTPD的设定可能是在安装了HTTP和PHP组件后,这里仅做参考用并不代表安装一定按些步骤。实在不明白的google吧。

  1. vi /etc/httpd/conf.d/zabbix.conf

  增加配置文件

  1. <VirtualHost *:80>
  2.         ServerAdmin zabbix
  3.         DocumentRoot /var/www/html/zabbix
  4.         ErrorLog /var/log/httpd/zabbix.log
  5.         HostnameLookups Off
  6.         UseCanonicalName Off
  7.         ServerSignature Off
  8.  
  9. <Directory />
  10.         Options FollowSymLinks
  11.         AllowOverride None
  12.         Order allow,deny
  13.         Allow from all
  14. </Directory>
  15.  
  16. <Directory "/var/www/html">
  17.         Options Indexes FollowSymLinks
  18.         AllowOverride None
  19.         Order allow,deny
  20.         Allow from all
  21. </Directory>
  22. </VirtualHost>

禁用selinux

  selinux确实提高了系统的安全性,但另一方面也给应用程序增加了很多的不确定性。我在安装配置完zabbix后曾出现过始终无法打开浏览页面无法进入web安装界面的情况,后来禁用selinux后问题解决。对于selinux的启用与否个人见仁见智可以根据自已的需求决定是否开启。

  1. vi /etc/selinux/config

  禁用selinux

  1. SELINUX=disabled
  2. SELINUXTYPE=targeted

禁用ctrl+alt+del

  禁用ctrl+alt+del的作用是防止机房管理人员误操作导致系统重启的问题。需注意的是在centos6之前的版本中该设置文件是/etc/inittab,而到了centos6以后被放到了/etc/init/control-alt-delete.conf中。

  1. vi /etc/init/control-alt-delete.conf

  禁用ctrl+alt+del

  1. #start on control-alt-delete
  2. #exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

1.增加用户组

  主要是增加zabbix用户组,如果不增加该用户和组,在后面的编译安装时将会有相关提示。

  1. groupadd -g 130 zabbix
  2. useradd -u 130 -g zabbix -c "Zabbix Monitoring" zabbix

2.增加软件源

  1. wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
  2. mv CentOS6-Base-163.repo /etc/yum.repos.d/
  3. wget http://mirrors.ustc.edu.cn/fedora/epel//6/i386/epel-release-6-7.noarch.rpm
  4. rpm -ivh epel-release-6-7.noarch.rpm

3.安装相关软件

  1. yum --enablerepo=epel install iksemel iksemel-devel
  2. yum install mysql-server httpd php mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath   php-mbstring php-xml postfix zlib-devel glibc-devel automake mysql libidn-devel openssl-devel rpm-devel   OpenIPMI-devel
  3. yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
  4. yum  install net-snmp*

4.配置数据库

  1. service mysqld start
  2. mysqladmin -u root password 'password'
  3. mysql_secure_installation
  4. mysql -uroot -p
  5. create database zabbix default character set utf8;
  6. grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'password';
  7. quit;
  8. tar zxvf zabbix-2.0.0.tar.gz
  9. cd database/mysql
  10. cat schema.sql |mysql -u zabbix -p zabbix
  11. cat p_w_picpaths.sql |mysql -u zabbix -p zabbix
  12. cat data.sql |mysql -u zabbix -p zabbix 

5.编译zabbix

  1. ./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl   --with-openipmi --enable-proxy --enable-agent
  2. make
  3. make install
  4. cp misc/init.d/redhat/8.0/zabbix_* /etc/init.d/
  5. chmod 755 /etc/init.d/zabbix_*
  6. chown -R zabbix:zabbix /usr/local/zabbix
  7. chkconfig --add zabbix_server
  8. chkconfig --add zabbix_agentd
  9. chkconfig --level 35 zabbix_server on
  10. chkconfig --level 35 zabbix_agentd on

6.配置zabbix

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

  配置zabbix_server.conf文件

  1. SourceIP=192.168.0.189
  2. DBName=zabbix
  3. DBUser=zabbix
  4. DBPassword=password
  5. vi /usr/loca/zabbix/etc/zabbix_agent.conf
  6. hostname=myj-jk
  7. Server=192.168.0.189

  启动zabbix服务

  1. service zabbix_server start
  2. service zabbix_agentd start

7.配置php.ini

  1. memory_limit = 256M
  2. date.timezone = Asia/Shanghai
  3. post_max_size = 32M
  4. max_execution_time = 600
  5. upload_max_filesize = 16M
  6. max_input_time = 600

8.启动httpd服务

  1. service httpd start

  到这里就可以启动web服务进行zabbix的安装了,httpd服务启动后直接在浏览器中输入服务器的IP地址开始安装,按照图形的方式一步一步安装完成吧。后面就如何自定义监控模板(IIS6、IIS7、SQL2005、SQL2008),如自定义MAP图标以及zabbix简单的性能优化写出我自己的理解。