zabbix(音同 zbix)是一个基于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等平台上。
一、Server
1、安装
第一步,搭建好yum,我这里搭建的是163的网络yum源。
# yum install -y php-common
# yum install -y gcc gcc-c++ autoconf httpdphp mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysqlphp-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbcmysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel
2、修改php.ini
# vim /etc/php.ini
440 max_execution_time = 300
449 max_input_time = 300
457 memory_limit = 128M
729 post_max_size = 32M
946 date.timezone = Asia/Shanghai
1587 mbstring.func_overload = 2
3、启动mysqld和httpd
4、zabbix server配置
# groupadd -g 201 zabbix
# useradd -g zabbix -u 201 zabbix
# tar xf zabbix-2.2.1.tar.gz
# cd zabbix-2.2.1
# ./configure --prefix=/usr/local/zabbix--enable-server --enable-proxy --enable-agent--with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
# make
# make install
# tail -4 /etc/services
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-server 10051/tcp #zabbix Trapper
zabbix-server 10051/udp #zabbix Trapper
5、导入数据库
# mysql -uroot -p
mysql> create database zabbix characterset utf8;
mysql> grant all on zabbix.* tozabbix@localhost identified by 'zabbix';
# mysql -uzabbix -pzabbixzabbix<./database/mysql/schema.sql
# mysql -uzabbix -pzabbixzabbix<./database/mysql/p_w_picpaths.sql
# mysql -uzabbix -pzabbixzabbix<./database/mysql/data.sql
6、创建链接
# mkdir /var/log/zabbix
# chown zabbix.zabbix /var/log/zabbix
# ln -s /usr/local/zabbix/etc /etc/zabbix
# ln -s /usr/local/zabbix/bin/* /usr/bin/
# ln -s /usr/local/zabbix/sbin/* /usr/sbin/
7、加入系统服务
# cp misc/init.d/fedora/core/zabix_*/etc/init.d/
# vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix
# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
8、修改zabbix server配置文件
# vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
LogFile=/var/log/zabbix/zabbix_server.log
9、配置监控本身
# vim /etc/zabbix/zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=127.0.0.1,x.x.x.x (x.x.x.x 是zabbix服务的的ip)
ServerActive=x.x.x.x:10051
Hostname=主机名 (本地主机名)
UnsafeUserParameters=1
10、拷贝网页至apache目录
# cd zabbix-2.2.1 //zabbix的压缩目录
# cp -r ./frontends/php//var/www/html/zabbix
# chown -R apache.apache /var/www/html/zabbix
11、设置zabbix_server和zabbix_agentd自动启动
12、http://x.x.x.x/zabbix根据向导安装
二、Agent
# groupadd -g 201 zabbix
# useradd -g zabbix -u 201 zabbix
# yum install -y gcc gcc-c++
# ./configure --prefix=/usr/local/zabbix--enable-agent
# make
# make install
# mkdir /var/log/zabbix
# chown zabbix.zabbix /var/log/zabbix/
# cp misc/init.d/fedora/core/zabbix_agentd/etc/init.d/
# chmod 755 /etc/init.d/zabbix_agentd
# ln -s /usr/local/zabbix/etc /etc/zabbix
# ln -s /usr/local/zabbix/bin/* /usr/bin/
# ln -s /usr/local/zabbix/sbin/* /usr/sbin/
# tail -4 /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
# cd /etc/zabbix/
# vim zabbix_agentd.conf
# grep -Ev '^$|^#' zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=127.0.0.1,192.168.20.10
ServerActive=192.168.20.10:10051
Hostname=Zabbix server
UnsafeUserParameters=1
# chkconfig zabbix_agentd on
# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
# service zabbix_agentd start
三、中文显示出现乱码的解决方法:
1、在windows 上复制字体或者是到网上下载字体。。我们这里以 “楷体”为例,文件名为simkai.ttf(必须要以.ttf结尾的字体文件才行)
将字体复制到web的fonts目录 /var/www/html/zabbix/fonts。
2、修改zabbix的web端 /include/defines.inc.php;
vim /var/www/html/zabbix/include/defines.inc.php
修改如下两处配置文件中的默认字体
//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
efine('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
//define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'simkai');
保存退出,刷新一下就可以了。
Zabbix使用icmp ping来判断主机是否存活的问题
在zabbix中,判断主机是否存活最简单的方法就是使用simple check中的icmp ping,尤其适用于那些无法安装zabbix客户端的主机,如网络打印机,esxi主机等。在zabbix的simple check 中有三个key是用到了icmp ping,分别是icmppingloss,icmppingsec和icmpping.
1、 设定fping程序的目录
Fping的默认安装目录在/usr/local/sbin/下,而在zabbix_server.conf配置文件中fping程序的目录是/usr/sbin/,这里可以做链接文件或者修改zabbix_server.conf配置文件中的FpingLocation的值,总之一个目的,让zabbix知道fping程序的位置
2、 更改fping程序的权限
Zabbix运行时是以普通用户的身份运行的,而普通用户是没有权限构建icmp包的,因此需要给fping程序加上强制位 setuid,让普通用户运行该程序时以root的身份来运行,命令如下: chmod u+s /usr/local/sbin/fping
完成以上操作后,就可以使用icmp包来快速检测主机是否存活(防火墙不能阻止相关的icmp包)了。
Zabbix 使用snmp 添加交换机接口监控
使用snmp监控交换机接口需要在交换机上开启snmp。命令如下:
<Quidway>system-view
Enter system view, return user view withCtrl+Z.
[Quidway]snmp-agent
[Quidway]snmp-agent local-engineid800063A203000FE207F2E0
[Quidway]snmp-agent community read public
[Quidway]snmp-agent sys-info versionall
[Quidway]snmp-agent target-host informaddress udp-domain 133.96.7.248 udp-port 161 params securitynamenetwork(securityname) v2c
[Quidway]snmp-agent trap enablebasetrap
注释:
udp-domain 133.96.7.248 //zabbix服务器ip地址
udp-port 161 //监听端口
snmp-agent community read public //社团名称public
在linux上安装net-snmp net-snmp-utils包,测试snmp访问
#snmpwalk -v 2c -c public 14.1.8.1 1.3.6.1.2.1.2.2.1.10.2 #查看端口2的计数(交换机ip是14.1.8.1 后面的数字是OID)
iso.3.6.1.2.1.2.2.1.10.2 = Counter32:3497833695
添加主机,snmp介面ip地址填写需要监控的交换机管理Ip地址。端口161
添加模块Template SNMP Interfaces
添加巨集 {$SNMP_COMMUNITY} 值 168duan—此处填写的是交换机的snmp-agent明文密码
添加好后,选择探索—项目原型,选中incoming traffic on interface ,operational status of interface ,outqoing traffic on interface只需要将这三个开启,其余的全部停用。