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负荷 - 内存使用 - 磁盘使用 - 网络状况 - 端口监视 - 日志监视
server端侦听在10051端口,客户端侦听在10050端口。用户界面使用php开发。数据存储在MySQL里面。安装几次都要重新看,目前将Zabbix配置安装进行整理如下 Zabbix配置需要web、php、mysql、gcc等支持 请自行配置好
yum -y install gcc httpd mysql mysql-server php* mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp net-snmp-devel net-snmp net-snmp-devel
rdate -s time-b.nist.gov 设置准确时间
接下来我们开始操作 操作范例的操作系统为Centos 5.2
zabbix的官方站点:http://www.zabbix.com/
tar zxvf zabbix-1.8.2.tar.gz
cd zabbix-1.8.2
mysql -uroot -p
mysql> create database zabbix;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix' WITH GRANT OPTION;
mysql> use zabbix;
mysql> source create/schema/mysql.sql
mysql> source create/data/data.sql
mysql> source create/data/images_mysql.sql
./configure --prefix=/opt/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp
./configure --prefix=/opt/zabbix/ \ //指定安装目录 --enable-server \ //安装server,被监控节点不需要 --enable-agent \ //安装agent --with-mysql \ //需要mysql支持需要指定目录 --with-net-snmp //需要snmp支持需要指定目录 常用的编译选项如下,需要更多的可以看帮助
–enable-static Build statically linked binaries
–enable-server Turn on build of server –enable-proxy Turn on build of proxy server
–enable-agent Turn on build of agent –enable-ipv6 Turn on support of IPv6
–with-mysql –with-oracle
–with-pgsql –with-sqlite3
–with-jabber –with-net-snmp
–with-ucd-snmp Zabbix配置客户端只需执行: ./configure --prefix=/usr/local/zabbix --enable-agent make && make install Zabbix配置安装过程没有报错基本就OK,接下来增加对应的端口: vi /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
Zabbix配置回到zabbix的编译目录:
配置文件
mkdir /etc/zabbix groupadd zabbix useradd -g zabbix zabbix chown -R zabbix.zabbix /etc/zabbix/ cp misc/conf/* /etc/zabbix/
vi /etc/zabbix/zabbix_server.conf
ListenPort=10051
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
ListenIP=192.168.1.11
vi /etc/zabbix/zabbix_agent.conf Server=192.168.1.11
vi frontends/php/include/db.inc.php (可以不修改) 更改数据库相关内容: $DB_TYPE ="MYSQL"; $DB_SERVER ="localhost"; $DB_DATABASE ="zabbix"; $DB_USER ="zabbix"; $DB_PWD ="zabbix";
复制zabbix
mkdir /var/www/html/zabbix cp -Rpf frontends/php/* /var/www/html/zabbix
复制启动程序 cp misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix_server cp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix_agentd
cp /opt/zabbix/bin/* /opt/zabbix/sbin/
分别在两个脚本的 #!/bin/sh 后加入如下两行注释,注意要行前要加“#”
# chkconfig: - 95 95 # description: Zabbix Server
vi /etc/init.d/zabbix_server
# chkconfig: - 95 95 # description: Zabbix Server
# base zabbix dir
BASEDIR=/opt/zabbix
# PID file
PIDFILE=/var/tmp/zabbix_server.pid
# binary file
ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server (修改执行文件路径)
vi /etc/init.d/zabbix_agentd
# chkconfig: - 95 95 # description: Zabbix Server
# base zabbix dir BASEDIR=/opt/zabbix # pid file (as of 1.0 beta 10) PIDFILE=/var/tmp/zabbix_agentd.pid # binary file ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd (修改执行文件路径)
自启动 chkconfig --add zabbix_server chkconfig --add zabbix_agentd chkconfig zabbix_server on chkconfig zabbix_agentd on
注:gd-devel没有安装上去将无法在web端安装过去,对应的其他也要安装,比如net-snmp,可通过yum来安装,方便。
[root@zabbix ~]#rpm -qa|grep gd
gd-devel-2.0.33-9.4.el5_1.1
gd-2.0.33-9.4.el5_1.1
安装php-bcmath yum -y install php-bcmath
启动zabbix服务 /etc/init.d/zabbix_server start /etc/init.d/zabbix_agentd start
或者
#/opt/zabbix/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
#/opt/zabbix/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
由于 zabbix 使用 fping 替代了 ping 作为 icmp 的工具,所以要安装 fping 可以从 http://fping.sourceforge.net/ 上下载 fping 的源代码,解压编译安装。 ** fping 解压后的源代码目录 ./configure make install 修改/etc/zabbix/zabbix_server.conf FpingLocation=/usr/local/sbin/fping
二。Zabbix配置访问web:http://localhost/zabbix进行安装
php环境需求
PHP Memory limit: 128M Ok PHP post max size: 8M Ok
PHP max execution time: 300 sec Ok PHP Databases support: MySQL Ok
PHP BC math support yes Ok GD Version: bundled (2.0.34 compatible) Ok
Image formats: PNG Ok
PHP Timezone: Asia/Shanghai
修改时区及其它最小参数要求 Vi /etc/php.ini date.timezone =Asia/Shanghai
如果是server端,需要修改/etc/zabbix中的zabbix_server.conf、zabbix_trapper.conf两个文件,主要是配置一些路径、IP、端口、数据库信息等等;如果是agent端,需要修改/etc/zabbix中的zabbix_agent.conf、zabbix_agentd.conf两个文件,也是配置类似的相关信息,这些都比较简单不用详说。
在agent端服务器上需要通过/data/app/zabbix/bin/zabbix_agentd来启动agent进程,在server端通过/data/app/zabbix/bin/zabbix_server来启动server进程,如果发生错误可以查看指定的log文件来分析。
最后我们需要在server端来配置web脚本的环境,拷贝frontends/php目录的脚本到web文件目录,并修改include/db.inc.php中的数据库连接信息。
安装完成后,打开浏览器,就可以进行zabbix设置了。
第一次登录的时候,管理员登录名为admin,初始密码为zabbix。
**登陆页面 输入管理用户名:admin 默认口令 zabbix 登陆。**Configuration -》Hosts 选择 Zabbix Server 然后 Activate Select,Zabbix Server (本机)的监控激活。** Monitoring Dashboard,可以看到 Zabbix Server 的监控结果
ps:有可能在前端运行是显示zabbix_server is running---no,此时在系统管理里面把selinux项关掉就可以了。
我们要做的第一件事,是添加管理用户。
1.点击Configurations >> Users。右上角有个下拉列表,可选择创建用户或者用户组。创建用户的时候,可指定用户使用的语言。创建完用户后,会发现Actions栏位有Media,点击可创建警告通知的邮件。建议将用户分组,这样可指定警告消息的群发地址。
2.接下来创建主机:点击Configurations >> Hosts。右上角有个下拉列表,可选择创建:主机,主机组,模板,应用组,以及查看模板链接。建议对主机进行分组,可把监控项目分配给组,这样就不用为每一台主机创建监控项目了。
3.主机组和主机创建完成后,接着创建监控项目:点击Configurations >> Items。可以为每一台主机创建一个监控项,也可以在创建监控项的时候,点击页面最下方的do按钮,这样可把这个监控项应用到所选的组。监控项的类型很丰富,可以创建zabbix agent自带的项,也可创建SNMP的项,以及自扩展定义的项。
4.创建触发器:点击Configurations >> Triggers。触发器是指被监控项所满足的条件,当条件为真时可触发定义的动作,同时系统会记录这些事件。可以为每台主机创建触发器,也可以为模板创建触发器。关于创建触发器的语法见http://www.zabbix.com/manual/v1.1/config_triggers.php。
5.创建动作:点击Configurations >> Actions。动作用于当触发器条件为真时所执行的操作,有两种操作:发送消息和执行命令。关于创建动作可用的变量请参考http://www.zabbix.com/manual/v1.1/config_actions.php。
这些事项完成后就可以收集基本的系统信息了,点击Monitoring >> Latest data可以看到最新收集到的数据。
6.模板(Templates)和应用组(Applications)的说明
模板(Configurations >> Hosts里可创建模板,是为某种具有共同监控目的的主机快速定义和修改监控操作的方法。假设有100台机器,如果为每台机器都手工创建监控项目、触发器、图表,非得累趴下不可。你可以定义一个模板,为该模板创建监控项目、触发器和图表。然后创建主机的时候,让它和这个模板建立链接。这样这些机器就不用再创建这些条目了。
应用组(Configurations >> Hosts里可创建应用组,主要用于监控项分组和权限分配。比如可为机器定义Network应用组,该组可加入网络入口量、网络出口量等监控项目。然后在Monitoring >> Latest data就可以以分组的方式查看这些数据。此外,还可以把这些数据的查看分配给不同的用户。
三、可视化功能
1.地图功能:Configurations >> Map
你可以在此建立具有某种逻辑关系的地图,比如网络拓扑。每个节点可能为一台服务器,工作站,路由器或者网络。节点与节点之间可建立连接线。连通性可用触发器来计算,当触发器为真时可定义红线,为假时可定义绿线,这样一旦问题发生时就能通过连接线的颜色看出来。
2.图表功能:Configurations >> Graphs
你可以把监控项目的趋势绘制成曲线图,或者把几台机器的某项监控项目绘制在一张图,这样更便于比对。这种趋势图是通过图表的功能实现的。
3.屏幕图功能:Configurations >> Screens
屏幕图是指把若干个图形元素(比如地图,图表)或者非图形元素(统计表,文字)放在n行m列的单元格中,便于一起比对监控。
4.系统评估功能:
系统评估功能是对监控软件的监控报告进行统计,它包括zabbix状态、服务器可用统计、警告统计、触发器触发统计等功能,便于管理人员的系统的运行状态进行分析统计。
5.主机资料功能:
该功能用于企业使用的服务器资料的存档,包括操作系统版本、机器系列号、标签、MAC地址IP地址等,便于系统管理员保存主机资料
6.告警功能:
zabbix告警主要通过触发器触发实现的,它的告警方式有EMAIL告警、电话告警、短信告警,在新版的1.4版本还可通过桌面jabber进行报警。多种告警方式便于系统管理人员及时发现系统发生的问题。
7.系统安全功能:既有密码MD5加密,完整的用户权限分配功能及用户的登陆操作审计功能。
我厂使用zabbix软件已一年多了,通过该软件,我厂已实现服务器监控、Oracle数据库、db2数据库、Sqlserver数据库的监控,通过snmp trap实现与趋势杀毒软件的集成及存储的自动报警、通过扩展脚本实现企业运用系统的监控和报警,目前采集数据已达到 |