服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 26130|回复: 3

监控软件-Zabbix配置安装详解

[复制链接]
dirtysea 发表于 2010-7-28 16:48:10 | 显示全部楼层 |阅读模式

 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 version:  5.2.8 Ok   

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实现与趋势杀毒软件的集成及存储的自动报警、通过扩展脚本实现企业运用系统的监控和报警,目前采集数据已达到

 楼主| dirtysea 发表于 2010-8-13 16:58:45 | 显示全部楼层
错误集

错误 写道启动 错误
/etc/init.d/zabbix_server_ctl start
/etc/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory

cp /usr/lib/mysql/libmysqlclient.so /lib
/etc/init.d/zabbix_server_ctl start
/etc/init.d/zabbix_server_ctl start: zabbix_server started

编译 ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --prefix=/usr/local/
zabbix
错误configure: error: Invalid NET-SNMP directory - unable to find net-snmp-config

安装 net-snmp 包
yum install net-snmp net-snmp-devel



错误configure: error: MySQL library not found
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql




ubuntu系统
1 configure: error: MySQL library not found
the problem is not installed mysql-devel
#apt-get install  libghc6-hsql-mysql-dev (ubuntu )
2 configure: error: Jabber library not found
the problem is not installed jabber lib
#apt-get install libphp-jabber
#apt-get install libnet-jabber-loudmouth-perl
#apt-get install jabber-dev
#apt-get install libiksemel-dev  (* this packet important)
3 configure: error: Not found curl Library
the problem is not installed libcurl4-openssl-dev
#apt-get install libcurl4-openssl-dev
4 configure: error : Not found NET-SNMP library
#apt-get install libsnmp-dev
#apt-get install snmp

 楼主| dirtysea 发表于 2010-8-24 18:06:27 | 显示全部楼层
Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
官方网站:http://www.zabbix.com
Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据
Server端:通过收集SNMPagent发送的数据,写入MySQL数据库,再通过php+apacheweb前端展示。
Zabbix运行条件:
Server
Zabbix Server需运行在LAMPLinux+Apache+Mysql+PHP)环境下,对硬件要求低
Agent
目前已有的agent基本支持市面常见的OS,包含LinuxHPUXSolarisSunwindows
SNMP
支持各类常见的网络设备
 
l  具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)
l  支持自动发现网络设备和服务器
l  支持分布式,能集中展示、管理分布式的监控点
l  扩展性强,server提供通用接口,可以自己开发完善各类监控
优点:
l  开源,无软件成本投入
l  Server对设备性能要求低(实际测试环境:虚拟机Redhat EL AS52GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上)
l  支持设备多
l  支持分布式集中管理
l  开放式接口,扩展性强
缺点:
l  全英文,界面不友好
l  无厂家支持,出现问题解决比较麻烦
l  需在被监控主机上安装agent
 

Part2.安装部署

Zabbix Server需要运行在CentOSRedHat LinuxDebainLinux系统上,这里以RHEL AS5作为部署环境。
Root用户安装必须的包,建议配置好yum,通过yum安装下列包,解决包的依赖关系。
LAMP环境
 
#yum install mysql-server httpd php
 
其他需要用到的包:
 
#yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml
 
下载最新的Zabbix安装包(官网:http://www.zabbix.com)到本地,解压
 
#tar zxvf zabbix-1.8.1.tar.gz
 
增加zabbix用户和组
 
#groupadd zabbix
#useradd –g zabbix –m zabbix
 
启动MySQL数据库:
 
#service mysqld start
 
修改MySQL root用户密码(默认密码为空)
 
#mysqladmin –u root –p password root
 
测试能否正常登陆数据库
 
#mysql –uroot –proot
 
创建Zabbix数据库
 
Mysql> create database zabbix character set utf8;
 
导入数据库sql脚本
 
#cd zabbix-1.8.1
# cat ./create/schema/mysql.sql |mysql -uroot -proot zabbix          
# cat ./create/data/data.sql |mysql -uroot -proot zabbix             
# cat ./create/data/images_mysql.sql |mysql -uroot -proot zabbix  
  
配置编译,prefix是安装后程序目录
 
# ./configure --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix
# make
# make install
 
添加服务端口,添加后如下
 
# grep zabbix /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
 
添加配置文件
 
# mkdir -p /etc/zabbix
# cp ./misc/conf/* /etc/zabbix
# chown -R zabbix:zabbix /etc/zabbix
 
修改Server配置文件
基本不用修改,用默认配置即可,只需修改一项DBPassword=密码
 
# vi /etc/zabbix/zabbix_server.conf
 
修改Agentd配置文件,更改HOST NAME 为本机的hostname就好了
 
#vi /etc/zabbix/zabbix_agentd.conf
 
添加web前端php文件
 
# cd frontends/
# cp -rf php /var/www/html/
# cd /var/www/html
# mv php zabbix
# chown -R zabbix:zabbix zabbix
 
修改php相关参数
 
# vi /etc/php.ini    找到如下几项,改成下面的值,前面有;号的要删掉
max_execution_time = 300
date.timezone = Asia/Shanghai
post_max_size = 32M
memory_limit = 128M
mbstring.func_overload = 2
 
重启apache
 
#service httpd restart
 
在本地浏览器上访问Zabbis Serve地址开始web前端配置,http://ServerIP/zabbix
按提示一步步next,其中Step 3 Check of pre-requisites 必须全部项目OK后才能继续配置,如有提示fail,去server上检查是否安装这个包或配置是否按上述更改。
 
Step 4 填入Zabbix Server 登陆mysql的用户和密码
Step 7 按提示下载配置文件到Server/var/www/html/zabbix/conf下,名字一定要是zabbix.conf.php
配置完成后,出现登陆界面,默认的用户为:admin,密码为:zabbix
 
安装完成后的server程序在/usr/local/zabbix/sbin/目录下,可以直接启动
 
#/usr/local/zabbix/sbin/zabbix_server
 
为了便于启停Server,我们做一些小配置
 
复制控制程序
# cp ./misc/init.d/redhat/zabbix_* /etc/init.d/
 
修改配置目录,将如下两个文件中的BASEDIR=改为/usr/local/zabbix, 下面两个配置中的bin改为sbinZABBIX_AGENTDZABBIX_SUCKERD
 
# vi /etc/init.d/zabbix_server_ctl
# vi /etc/init.d/zabbix_agentd_ctl
 
加入开机启动
 
# echo '/etc/init.d/zabbix_server_ctl start &' >>/etc/rc
# echo '/etc/init.d/zabbix_agentd_ctl start &' >>/etc/rc
 
创建快键方式
# ln -s /etc/init.d/zabbix_server_ctl /usr/bin/zabbix_server_ctl
# ln -s /etc/init.d/zabbix_agentd_ctl /usr/bin/zabbix_agentd_ctl
 
启动ServerAgentd(可以通过start stop restart来操作)
 
# zabbix_agentd_ctl start
# zabbix_server_ctl start
 
检查启动是否正常,查看进程是否起来,serveragentd
 
#ps –ef|grep zabbix
 
如果进程没起来,可以查看对应的日志错误,默认在/tmp/zabbix-*.log
 
至此Zabbix Server的安装已完成
 
 
Zabbix需要在被监控的host上安装agent,在zabbix官网上下载相应平台的agent包到各被监控端,按如下方式在被监控上运行agent。(注:官网上下载的agent包里没有运行agentd所必须的配置文件,可以从zabbix server上拷贝一份zabbix_agentd.conf,这个conf文件是所有平台都通用的
LinuxUX
LinuxUX上的agent是编译好了的,不用安装
 
#cd /usr/local/zabbix
#tar zxvf zabbix_agents_1.8.linux2_6.i386.tar.gz
 
取一份server上的zabbix_agnetd.conf到本地,然后按说明修改,一般我们只需修改如下3个参数:
Hostname=本机名
Server=Zabbix Server IP
LogFile=本机agentd日志保存文件
 
修改完成后,运行agentd
 
#/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &
#ps –ef|grep zabbix_agentd
 
如果进程没起来,可查看agentd.log日志来排查问题。(注:启动时建议用全路径,否则可能会出错
 
加入开机运行
 
#echo ‘/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &
‘ >>/etc/rc
 
Windows:
Windows下解压客户端包到c:,下载修改好的zabbix_agentd.conf文件也放到c:,打开cmd命令行,执行
 
C:>zabbix_agentd –install
 
安装后会在系统服务里添加一个zabbix_agentd服务,会自动开机运行
 
如果需要将客户端和配置文件放在其他目录,请执行
 
C:>DIR/zabbix_agentd –c DIR/zabbix_agentd.conf –install
 
启动agentd服务
 
C:>zabbix_agentd –start
 
或是通过管理->服务找到zabbix_agentd来启动
 
 

Part3.配置使用

通过本地浏览器访问http://ServerIP/zabbix来开始配置和使用zabbix
使用zabbix进行监控之前,要理解zabbix监控的流程。
一次完整的监控流程可以简单描述为:
Host Groups(设备组)->Hosts(设备)->Applications(监控项组)->Items(监控项)->Triggers(触发器)->Actions(告警动作)->Medias(告警方式)->User Groups(用户组)->Users(用户)
 
HostZabbix监控的基本载体,所有的监控项都是基于host的。
通过Configuration->Hosts->Create Host来创建监控设备
按提示填入NameGroupsIP ,其他选项默认即可,Link Templates 处选择一个模板,save即可成功添加设备。(注:如果host上没安装agent,添加后的状态会是unmonitor,会采集不到值,Zabbix自带大量的设备监控模板,我们添加主机时通过link到这些模板,就可以快速添加主机的监控项和告警触发条件。
一类的hosts可以归属到同一个Host Group,便于分类管理同一类设备,在Configuration->Host Group->Create Host Group 可以添加设备组
Item是监控项,是监控的基本元素,每一个监控项对应一个被监控端的采集值。
Configuration->Hosts界面,我们能看到每个host所包含的items总数,点击对应主机的items项,可以看到具体的每个item信息,这些items可以引用自templates,也可以自己创建。
通过点击具体item名字可以修改已有监控项的属性,点击Satus的链接可以禁用/启用这个监控项。(注:我们可以通过新建一个template,在template中禁用掉所有不需要用到的items,然后把同一类hosts link to这个template,就不用一台台主机去更改items
新增item可以通过点击右上角的create item来创建
  按提示逐项填入相关信息即可,其中keyzabbix已经自带的取值方法,Application类似于host groups,是item的组。(item key也可以自定义,后面会讲到如何自定义监控项
Zabbix自带非常多的监控采集项及方法,基本能满足当前所有的监控功能,这些都包含在item item key中了,更多的typekey的解释请参考:
 
Trigger是触发器,当Items采集值满足triggers的触发条件时,就会产生actions
每一个trigger必须对应一个item,但一个item可以对应多个trigger
同样,通过点击Configuration->Hosts->Triggers中某个trigger的名字,可以修改trigger的属性。(注意:引用自templatetrigger触发值是不能单独修改的,必须在template中修改,或是复制一个同样的trigger再修改,然后禁用掉之前的
新增trigger可以通过点击右上角的create trigger来创建
Expression中选择对应的item、触发方式及触发值,Severity是告警级别,根据trigger的严重性来选择。
Zabbix 提供多种trigger触发方式供选择,常用的我们可以选择last value </>/=/#/N(最近一次采集值),或是选择maximal value for period of time (一段时间内的最大值),等等。可以根据实际需要来设定触发方式。更多的解释请参考:
 
Action是告警动作,当触发器条件被满足时,就会执行指定的action
通过Configuration->Actions->Create Action来创建Action
Event source:来源,如果选择triggers,即所有的triggers条件满足时都会执行这个action
Escalations:告警是否升级,及升级时间
SubjectMessage:告警标题和内容 ,此处可引用zabbix的宏变量;例如 {{HOSTNAME}:{TRIGGER.KEY}.last(0)}表示最后一次采集值,更多宏变量参考: http://www.zabbix.com/documentation/1.8/manual/config/macros
Recovery Message:告警恢复信息,不勾选系统会用默认的,勾选后自定义
Conditionstrigger产生的条件,条件可以多选
Operation:选择media user  
Media,即告警方式,Zabbix可以提供四类MediaEmail/SMS/Jabber/Script,通过Administrator->Media Type来修改或新增告警方式
Email方式最常用的,填入相关的SMTP信息,即可通过邮件方式发送告警。
SMS方式要在server主机上接入短信modem
Jabber方式是一种linux下的即时通讯工具,通过Jabber发送即时消息。
Script方式可以通过自己编写程序或脚本的方式发送告警信息。
Administrator->Users 可以添加用户和用户组
通过User Group可以限制用户的权限,zabbix自带的用户组的权限限制基本能满足我们的要求。
创建用户时可以根据用户的不同作用划分到不同的组,media中填入告警接受地址及告警接受时间等信息。
 
 
 
Web Monitoring是用来监控web程序的,可以监控到web程序的下载速度、返回码及响应时间,还支持把一组连续的web动作作为一个整体来监控。
下面我们以监控登陆zabbixweb程序为例,来展示如何使用web monitoring
Configuration->web->Create Scenario 创建一个Scenario(注:必须选择host后才能创建scenariozabbix的所有items都必须创建在hosts)
Application:选择这个scenario所在的application
Namescenario的名字
Basic authentication:鉴权
Update interval:监控频率,s为单位
Agent:选择要使用的浏览器客户端,可能同样的web程序对不同的客户端展示的内容会不一样
Status:默认为active
Variables:变量定义,这里定义的变量可在后续的steps中使用,这里我们定义了用户和密码的变量
Stepsweb 程序的各个步骤,选择add新增一个Loginstep,来模拟用户登陆,传递用户和密码给index.php页面
URL:监控的web页面(:必须是全路径带页面名)
Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量
Timeout:超时时间
Required:页面中能匹配到字符,匹配不到即认为错误
Status codes:页面返回码
 
添加完step后,我们在Monitoring->web页面即能看到监控的状态和图示
创建完scenario后,zabbix server会自动创建相关的items,所以我们只需为这些items添加triggers即可让web scenario出错时产生告警
Configuration->hosts->点击scenario所在的host条目的trigger,直接create trigger,在select items的时候就可以看到系统自动创建的items注:自动创建的itemshostitems列表中直接是看不到的,需要在创建trigger时选择items时才能看到
 
可以在items列表中看到,系统为每个step创建了3itemDownload Speed/Response Code/Response Time,为整个scenario创建了一个test.failitem,可以分别为其创建trigger
下例我们创建一个Login页面返回码的trigger,大于等于400即为错误
再创建一个整个scenario所有step运行是否成功的trigger,采集值为0表示整个scenario的所有step都执行成功了,第几步的step执行失败就返回数字几,且后续的step都不会继续执行下去。
这样,一个完整的web monitoring就配置完成了。
Web monitoring还有更多强大的功能,未能一一研究了解,有待挖掘
ZabbixGraphs功能很强大,可以为每一个item绘制图表,也可以把多个items绘制在一张图表内。
通过configuration->hosts选择要绘制图表的host,点击graphscreate graphs即可创建图表。
Graph type:图表样式,有线状、柱状、饼状
还可以自定义图表大小,及Y轴最大最小值
通过add items可以添加在同一个图表中展示的多个items注:注意每个item的颜色及取值范围,范围相差太大图表会显示不全
配置好的graphsmonitoring->graphs中查看
monitoring->last data下能快速查看每个host的每个itemgraph
Screen将多种信息放在一起展示,便于集中展示某个host的多个信息,或是比较多个hosts的同一种信息,这些信息可以为graphsmapsserver infos等等,几乎涵盖zabbix所有的监控信息。
通过configuration->screen->creat screen来创建,创建时定义screen的行数和列数,点击对应单元格内的change,添加相应的信息
通过monitoring-screen,可以查看之前配置好的信息。
 
Zabbix自带有MySQL的监控模板,可以做一些简单的监控。
1、更改agentd配置
Agent的配置文件上默认就有通过mysqladmin工具取MySQL数据库监控信息的配置,我们只需更改需MySQL所在host上的agentd.conf文件,将文件最后的所有关于mysqlUserParameter前的#号去掉,更改登陆mysql的用户和密码即可。
例如:修改后其中一条监控数据库状态如下:
UserParameter=mysql.ping,mysqladmin -uroot –proot ping|grep alive|wc –l
修改后重启host上的agentd,使配置文件生效。
2、添加items
web端编辑mysql所在的host,使之linktemplate_APP_MySQL模板,然后在hostitems里就能看到刚才定义的这些MySQL的监控项了,修改相应的trigger值即可。
 
这个zabbix自带的mysql监控功能比较弱,只是通过mysqladmin工具去查询mysql的一些状态而已。
我们可以自己编写或是找一些功能更强的mysql监控脚本,加到zabbix监控里,后面会讲到如何自己添加监控。
另外更详细的方法可参考zabbix wiki上的mysql监控方法,这个监控的就非常详细:http://www.zabbix.com/wiki/howto/monitor/db/mysql/extensive_mysql_monitoring_including_replication
 
 
 
Oracle监控也参考zabbix wiki上如下的方法(调用zabora工具):
1、    下载oracle监控程序zaboraoracle所在的主机上,修改所在hostagentd.conf,添加监控项,按如下格式:
 
UserParameter=oracle.name,DIR/zabora pattern sid
 
监控oracle数据库状态:
 
UserParameter=oracle.checkactive,/usr/local/zabora checkactive OracleSID
 
监控oralce数据库连接用户总数
UserParameter=oracle.usercount,/usr/local/zabora usercount OracleSID
 
更多zabora的监控项参考如下:
zabora version: 1.5
usage:
   zabora checkactive [SID]     -- Check Intance is active and open.
   zabora usercount [SID]       -- Count of users connected to Oracle.
   zabora activeusercount [SID] -- Count of active users.
   zabora dbsize [SID]          -- Size of user data (without temp).
   zabora dbfilesize [SID]      -- Size of all datafiles.
   zabora version [SID]         -- Oracle version (Banner).
   zabora dsksortratio [SID]    -- Disk sorts ratio.
   zabora rcachehit [SID]       -- Read Cache hit ratio.
   zabora uptime [SID]          -- Instance Uptime (seconds).
   zabora commits [SID]         -- User Commits.
   zabora rollbacks [SID]       -- User Rollbacks.
   zabora deadlocks [SID]       -- Deadlocks.
   zabora redowrites [SID]      -- Redo Writes.
   zabora tblscans [SID]        -- Table scans (long tables).
   zabora tblrowsscans [SID]    -- Table scan rows gotten.
   zabora indexffs [SID]        -- Index fast full scans (full).
   zabora hparsratio [SID]      -- Hard parse ratio.
   zabora netsent [SID]         -- Bytes sent via SQL*Net to client.
   zabora netresv [SID]         -- Bytes received via SQL*Net from client.
   zabora netroundtrips [SID]   -- SQL*Net roundtrips to/from client.
   zabora logonscurrent [SID]   -- Logons current.
   zabora lastarclog [SID]      -- Last archived log sequence.
   zabora lastapplarclog [SID]  -- Last applied archive log (at standby).Next items requires [timed_statistics = true].
   zabora freebufwaits [SID]    -- free buffer waits.
   zabora bufbusywaits [SID]    -- buffer busy waits.
   zabora logswcompletion [SID] -- log file switch completion.
   zabora logfilesync [SID]     -- log file sync.
   zabora logprllwrite [SID]    -- log file parallel write.
   zabora enqueue [SID]         -- enqueue waits.
   zabora dbseqread [SID]       -- db file sequential read waits.
   zabora dbscattread [SID]     -- db file scattered read.
   zabora dbsnglwrite [SID]     -- db file single write.
   zabora dbprllwrite [SID]     -- db file parallel write.
   zabora directread [SID]      -- direct path read.
   zabora directwrite [SID]     -- direct path write.
   zabora latchfree [SID]       -- latch free.
   zabora zaboraver             -- Version of this script.
保存配置,重启agentd
 
2、    zabbix web页面上创建对应的itemstriggers
创建监控oracle数据库状态的itemitem key不要select,直接在key栏输入在agent上的UserParameter name
例如监控数据库状态的:oracle.checkactive
 
创建trigger,选择之前创建的item,最后一次采集值不为0,即为状态有问题。
注:不确定每个zabora方法的返回值时,可直接在agent上运行获取结果
 
 
对于zabbix功能上无法实现的监控,我们可以通过自己编写程序或脚本来辅助完成,并将脚本的结果通过agent递交给zabbix server统一管理,一样可以绘制graph 报表等。
具体的方法请参考上述oracle监控。
UserParameters的定义方法,请参考:
 
如果有大量的同一类设备,需要监控的信息也大致类似,一个个去修改相关参数比较麻烦,我们可以通过创建一个template来简化操作。
Configuration->Host Groups->Template->Create Template
创建template后,在configuration->host->template下找到刚创建的MyLinuxTemplate,修改相关的itemstriggersgraphs等信息,使满足要求后link到相关的host即可。
 
 
Macros指宏变量,定义的宏变量可以在triggeractions等多种场景中引用。
Macros分系统自带全局宏的及自定义的宏。
系统自带的全局macros列表及解释参考:
引用macros的例子可参考上述action中添加{{Hostname}:{trigger.key}.last(0)}的例子。
Zabbix还支持自定义macros,在添加host或是template时,我们可以在macros项中定义好后续要用到的宏变量,格式为:
{macroname}=macrovalue
自定义的宏变量及系统自带的宏变量都可以在zabbix场景中引用,zabbix在遇到引用的宏变量时,会先查找当前场景中定义的宏,接着查找当前host的自定义宏,接着查找linktemplate的宏,最后查找zabbix系统自带的全局宏。所以在自定义宏时注意宏引用的顺序。
 
Inventory 用来管理设备存档信息的。
在添加host时,勾选右侧的Use profile,我们即可填入该台设备的型号、编码、MAC地址等详细信息,勾选Use extended profile则可以填入更详细的信息。
填写的inventory信息在inventory->hosts下能看到.
 
Zabbix提供将所有配置导出为标准XML格式的文件,同样,也支持导入标准格式的XML配置文件。
通过configuration->Export/Import->Export,勾选要导出的hostPreview可以展示要导出的host的详细配置,选择export即可导出xml文件到本地。
Import可导入本地的XML文件,注意格式一定要符合标准要求,如果server上有同名的配置,会被覆盖掉。
如果有大量的配置需要手动新增,譬如新增oralce监控,我们可以手动编写xml,一次导入所有的itemstriggers,但要注意格式,可自己导出一个配置后参考。
 
 
 
1、 Export/Import XML 文件时报 http 500错误
答:安装php-xml包后,重启apache即可
 
2、 WEB前端安装Step 3 PHP MB Strings Overload 检查 fail
答:修改php.ini中的mbstring.func_overload = 2,重启apache
 
答:添加host时如果linktemplate,那itemstriggers都是引用自template,而不是实际属于这个host的,所以如果要修改trigger阀值,需要修改template中的阀值,修改后所有link到这个templatetrigger都会改变。如果只想修改某台hosttrigger,可以复制一个trigger,修改新复制过来的阀值,再禁用掉之前的即可。
4、 运行agentd时进程总起不来,查看agetd.log又无报错
答:全路径运行后正常
 
 
 
 
 

本文出自 “迷茫” 博客,http://zjdick.blog.51cto.com/1278092/277970

 

 

 楼主| dirtysea 发表于 2012-1-12 17:53:18 | 显示全部楼层
支持一下!!!:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-3-29 20:30 , Processed in 0.104363 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表