分类: LINUX
2012-05-14 15:07:45
Zabbix安装配置
是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过,zabbix agent,,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在 ,, , , 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)等配合使用。
目录
TOC \o "1-3" \h \z \u
环境的搭建 安装Apache
1.解压安装
tar –zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17
./configure –prefix=/usr/mpsp/pangyuying/apache –enable-module=so
这样在编译的时候会报错:
Cannot use an external APR with the bundled APR-util
解决:apache2.0.x与apache2.2.x在apr上有本质的区别,前者为依赖公用apr,后者依赖于自身的apr。
一般前者也就是2.0.x的编译基本上没有apr方面的问题,除非,在编译前,安装了非2.0.x所需的apr,如果是这样,则需要将已经安装的apr去除,然后再编译。
如果是后者也出现关于apr的问题,则将安装前的apr去除后,在编译apache2.2.x自身的apr,在srclib目录中。
(1) 安装apr
cd srclib/apr
./configure –prefix=/usr/local/apr
make && make install
(2) 安装apr-util
cd srclib/apr-util
./configure –prefix=/usr/local/arp-util –-with-apr=/usr/local/apr
make && make install
然后配置apache
./configure –prefix=/usr/mpsp/pangyuying/apache
--with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util
--enable-module=so
make && make install
2.配置apache
cd /usr/mpsp/pangyuying/apache/conf
vi httpd.conf
(1)添加php支持:
LoadModule php5_module /usr/mpsp/pangyuying/apache/modules/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
(2)指定web发布目录:
DocumentRoot "/usr/mpsp/pangyuying/apache/htdocs"
可以修改成其他容易记得目录。
(3)添加apahce默认打开起始页面类型:
DirectoryIndex index.html index.php
3.启动停止
/usr/mpsp/pangyuying/apache/bin/apachectl start|stop|restart
由于机器上有多个apache服务,因此我没有添加service启动。
4.修改apache访问权限
Chmod 777 /usr/mpsp/pangyuying/apache/htdocs
文件权限需修改为644,目录最少为755。
安装mysql1.解压安装
tar –zxvf mysql-5.0.22.tar.gz
cd mysql-5.0.22
./configure –prefix=/usr/mpsp/pangyuying/mysql
--with-charset=gbk
--localstatedir=/export/mysql/var
make && make install
2.建立用户和组
groupadd mysql
useradd -g mysql mysql
3.复制配置文件
cp /usr/mpsp/pangyuying/mysql/share/mysql /etc/my.cnf
4.初始化数据库文件
cd /usr/mpsp/pangyuying/soft/mysql-5.0.22/scripts
./ mysql_install_db
5.修改数据库目录所有者
chown -R root /usr/mpsp/pangyuying/mysql
chown -R mysql /export/mysql/var
chgrp -R mysql /usr/mpsp/pangyuying/mysql
6.启动
cd /usr /mpsp/pangyuying/mysql/bin
./mysqld_safe --user=mysql &
7.修改密码
/usr/mpsp/pangyuying/mysql/bin/mysqladmin –u root password 123
8.登录测试
mysql –uroot –p123
出现mysql>
mysql>show databases; 查看数据库
mysql>quit退出
另外cp /usr/mpsp/pangyuying/mysql/share/mysql/mysql.server /etc/init.d/mysql
以后可以通过 /etc/init.d/mysql start来启动mysql或service mysql start
问题1:不能通过mysql.sock连接MySQL问题这个问题主要提示是,不能通过 '/tmp/mysql.sock'连到服务器
解决:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
或者修改/etc/my.cnf文件来修正:
vi /etc/my.cnf
[mysqld]
socket=/var/lib/mysql.sock
改一下就好了,但也会引起其他的问题,如mysql程序连不上了,再加一点:
[mysql]
socket=/tmp/mysql.sock
或者还可以通过修改php.ini中的配置来使php用其他的mysql.sock来连。
问题2: 安装完毕之后,发现service mysqld start 不能使用:“mysqld 未被识别的服务"
解决:这是因为mysqld没有添加到系统路径(待修改) 当中。
需要启动mysql守护进程,守护进程是/etc/rc.d/init.d/mysql
操作步骤
cd /etc/rc.d/init.d
./mysql start
安装phpPhp依赖软件包有:
zlib-1.2.5.tar.gz
libpng-1.2.8-config.tar.gz
freetype-2.3.4 .tar.gz
jpegsrc-1.v6b.tar.gz
libXpm-3.5.5.tar.bz2
gd-2.0.33.tar.gz
安装zlibtar -zxvf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure --prefix=/usr/local/zlib
make && make install
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with –fPIC /usr/local/lib/libz.a: could not read symbols: Bad value
解决方法如下:
cd zlib-1.2.5
//进入zlib目录
CFLAGS="-O3 -fPIC" ./configure //使用64位元的方法进行编译
make && make install
tar –zxvf libpng-1.2.8-config.tar.gz
cd libpng-1.2.8-config
./configure –prefix=/usr/local/libpng
make && make install
安装 freetypetar zxvf freetype-2.3.4 .tar.gz
cd freetype-2.3.4
./configure --prefix=/usr/local/freetype
make && make install
tar –zxvf jpegsrc-1.v6b.tar.gz
cd jpegsrc-1.v6b
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
make && make install
安装libxpmtar –xvf libXpm-3.5.5.tar.bz2
cd libXpm-3.5.5
./configure –prefix=/usr/local/libxpm
make && make install
安装gd库tar –zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
--prefix=/usr/local/gd
--with-jpeg=/usr/local/jpeg
--with-png=/usr/local/libpng
--with-zlib=/usr/local/zlib
--with-freetype=/usr/local/freetype2
--with-xpm=/usr/local/libxpm
make && make install
编译完成显示以下信息:
** Configuration summary for gd 2.0.33:
Support for PNG library: yes
Support for JPEG library: yes
Support for Freetype 2.x library: yes
Support for Fontconfig library: yes
Support for Xpm library: yes
Support for pthreads: yes
tar –zxvf php-5.3.6.tar.gz
cd php-5.3.6
./configure
--prefix=/usr/mpsp/pangyuying/php
--with-mysql=/usr/mpsp/pangyuying/mysql --with-freetype-dir=/usr/local/freetype2
--with-gd=/usr/local/gd/lib
--enable-gd-native-ttf
--with-jpeg-dir=/usr/local/jpeg
--with-zlib-dir=/usr/local/zlib
--with-png-dir=/usr/local/libpng/lib --with-apxs2=/usr/mpsp/pangyuying/apache/bin/apxs
增加zabbix需要的php扩展
分别进入
/usr/mpsp/pangyuying/soft/php-5.3.6/ext/mbstring
/usr/mpsp/pangyuying/soft/php-5.3.6/ext/bcmath
/usr/mpsp/pangyuying/soft/php-5.3.6/ext/sockets
依次执行命令
/usr/mpsp/pangyuying/php/bin/phpize
./configure –with-php-config=/usr/mpsp/pangyuying/php/bin/php-config
make && make install
执行完毕后在php.ini里依次增加:
extension=bcmath.so //扩展bcmath模块
extension=mbstring.so //扩展mbstring模块
extension=sockets.so //扩展套接字
修改时区
date.timezone=Asia/Shanghai
重启apache服务器
错误:libpng warning: Application built with libpng-1.2.8 but running with 1.5.2
gd-png error: cannot allocate libpng main struct
解决:由于之前安装的libpng1.5.2,php-5.3.6不支持,因此,需要安装libpng1.2.8以下版本,我安装的是libpng-1.2.8-config.tar.gz,注意如果安装的不是config版本,安装会报错,找不到配置文件。
测试php是否安装成功,
在web目录/usr/mpsp/pangyuying/apache/htdocs下建立info.php
phpinfo();?>
在浏览器中打开 显示如下:
安装zabbix
ZABBIX是一个C/S结构的监控系统,server端侦听在10051端口,客户端侦听在10050端口,用户界面使用php开发,数据存储在MySQL里面;官方网站:
ZABBIX由Alexei Vladishev编写,目前由ZABBIX
SIA积极开发和维护;
ZABBIX是一个企业级的开源分布式监控解决方案;
ZABBIX是一款用于监控众多服务器的健康完整状态的软件,采用了灵活的预警通知机制,比如它允许用户设定通过email示警任何网络活动,从而使得服务器的问题能够被迅速反映出来;
ZABBIX具备出色的报告和数据可视化功能所有的数据存储的在数据库中,这使得ZABBIX具备很好的规划的能力;
ZABBIX支持投票和陷阱(polling and trapping);通过参数配置,所有ZABBIX报告和统计资料都可以通过基于Web的前端访问到;
通过正确的配置,您可以从任何地点评估您的服务器状态,这一点无论对于小企业还是大企业都是非常重要的;
ZABBIX是免费的,遵循GPL公共许可证第二版,这意味着其源代码是免费地分发提供给广大公众,并可以从ZABBIX公司获得商业支持;
ZABBIX的功能:
自动发现服务器和网络设备;
分布式监控网络,集中式管理;
支持polling和trapping机制;
服务器端支持Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD,
OS X系统;
高性能本地代理(客户端软件支持Linux ,Solaris, HP-UX, AIX,Free BSD,
Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000,Windows 2003, Windows
XP, Windows Vista系统);
无代理监控;
有安全的用户认证功能;
可灵活地分配用户权限;
基于web的接口;
可灵活地预定网络事件并使用邮件通知;
高等级的资源监控;
日志审计功能;
服务器端的安装编译 创建zabbix用户及用户组,但不需要登录权限
groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix
解压编译安装tar –zxvf zabbix-1.8.tar.gz
cd zabbix-1.8
./configure
--prefix=/usr/mpsp/pangyuying/zabbix --with-mysql=/usr/mpsp/pangyuying/mysql/bin/mysql_config --with-net-snmp=/usr/local/net-snmp
--with-curl=/usr/local/curl
--enable-server
--enable-agent
make && make install
创建zabbix数据库mysql –uroot –p123
mysql>create database zabbix;
mysql>quit;
导入初始数据库cd /usr/mpsp/pangyuying/soft/zabbix-1.8/create/schema
cat mysql.sql |/usr/mpsp/pangyuying/mysql/bin/mysql -uroot -p123 zabbix
cat ../data/data.sql |/opt/mysql/bin/mysql -uroot -p123456 zabbix
cat ../data/images_mysql.sql |/opt/mysql/bin/mysql -uroot -p123456 zabbix
创建运行所需目录及部署程序文件
mkdir -p /etc/zabbix
chown -R zabbix:zabbix /etc/zabbix
cp -rf zabbix-1.8/conf/*.conf /etc/zabbix/
cp -rf zabbix-1.8/frontends/php/* /usr/mpsp/pangyuying/apache/htdocs/zabbix/ -R
cp /usr/mpsp/pangyuying/soft/zabbix-1.8/misc/init.d/redhat/zabbix_* /etc/init.d/
启动zabbix进程
/usr/mpsp/pangyuying/zabbix/sbin/zabbix_server
netstat -ntpl |grep zab
tcp 0 0 127.0.0.1:10051 0.0.0.0:* LISTEN 21409/zabbix_server
浏览器的安装配置zabbix完全依赖于LAMP结构,编译PHP的时候除了添加MySQL的扩展外,还需要如下扩展
Php BC math:编译php的时候加上--enable-bcmath
Php mb string:编译php的时候加上--enable-mbstring
Php GD:编译的时候加上--with-gd
这个我在之前安装php的时候已经编译过了,所以不需要再次加扩展。
修改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
在本地浏览器上访问Zabbis Serve地址开始web前端配置, 按提示一步步next,其中Step 3 Check of pre-requisites 必须全部项目OK后才能继续配置,如有提示fail,去server上检查是否安装这个包或配置是否按上述更改。
这个地址,我将Host指定为:10.10.43.252,数据库会报错,
Error connecting to database [Access denied for user 'root'@'host252.zuocs.org' (Password:YES),查资料发现未给root'@'host252.zuocs.org赋权限,因此需要加上相应权限。
具体步骤:
mysql>GRANT ALL PRIVILEGES ON *.* TO root'@'host252.zuocs.org IDENTIFIED
BY ‘newpwd’ WITH GRANT OPTION;
mysql>flush privileges;
点击“Finish”完成后,用默认的用户名:Admin密码:zabbix,进入zabbix界面。
可以看到zabbix server的状态是YES,表示已经运行。
监控主机及监控项的配置Zabbix需要在被监控的host上安装agent,在zabbix官网上下载相应平台的agent包到各被监控端,按如下方式在被监控上运行agent。(注:官网上下载的agent包里没有运行agentd所必须的配置文件,可以从zabbix server上拷贝一份zabbix_agentd.conf,这个conf文件是所有平台都通用的)
Linux、UX:Linux、UX上的agent是编译好了的,不用安装
#cd /usr/local/zabbix
#tar zxvf zabbix_agents_1.8.linux2_6.i386.tar.gz(这里是在32位机器上安装的包,如果是64位需要下载对应的安装包)
取一份server上的zabbix_agnetd.conf到本地,然后按说明修改,一般我们只需修改如下3个参数:
Hostname=本机名
Server=Zabbix Server IP
LogFile=本机agentd日志保存文件
修改完成后,运行agentd
#/usr/mpsp/pangyuying/zabbix/sbin/zabbix-agentd –c /usr/mpsp/pangyuying/zabbix/zabbix_agentd.conf &
#ps –ef|grep zabbix_agentd
如果进程没起来,可查看agentd.log日志来排查问题。(注:启动时建议用全路径,否则可能会出错)
监控的流程:
一次完整的监控流程可以简单描述为:
Host Groups (设备组) ->Hosts (设备) ->Applications (监控项组) ->Items (监控项) ->Triggers (触发器) ->Actions (告警动作) ->Medias (告警方式) ->User Groups (用户组) ->Users (用户)
添加HostsHost 是 Zabbix 监控的基本载体,所有的监控项都是基于 host 的。
通过 Configuration->Hosts->Create Host 来创建监控设备
按提示填入 Name 、 Groups 、 IP , 其他选项默认即可, Link Templates 处选择一个模板, save 即可成功添加设备。(注:如果 host 上没安装 agent ,添加后的状态会是 unmonitor ,会采集不到值, Zabbix 自带大量的设备监控模板,我们添加主机时通过 link 到这些模板,就可以快速添加主机的监控项和告警触发条件。 )
一类的 hosts 可以归属到同一个 Host Group ,便于分类管理同一类设备,在 Configuration->Host Group->Create Host Group 可以添加设备组,如下:
添加Items
Item 是监控项,是监控的基本元素,每一个监控项对应一个被监控端的采集值。
在 Configuration->Hosts 界面,我们能看到每个 host 所包含的 items 总数,点击对应主机的 items 项,可以看到具体的每个 item 信息,这些 items 可以引用自 templates ,也可以自己创建。
通过点击具体 item 名字可以修改已有监控项的属性,点击 Satus 的链接可以禁用 / 启用这个监控项。(注:我们可以通过新建一个 template ,在 template 中禁用掉所有不需要用到的 items ,然后把同一类 hosts link to 这个 template ,就不用一台台主机去更改 items )
新增 item 可以通过点击右上角的 create item 来创建。
按提示逐项填入相关信息即可,其中 key 是 zabbix 已经自带的取值法, Application 类似于 host groups ,是 item 的组。( item key 也可以自定义,后面会讲到如何自定义监控项 )
添加Graphs图形显示可以更直观的看到每个监控项的状态
在Configuration->Hosts->Configuration of Graphs->Custom graphs,可以看到所监控主机的监控项中的图形显示,选择Create Graphs
下方区域可以看到图形显示:
在首页也可以添加快捷方式的图形显示。
添加Triggers
Trigger 是触发器,当 Items 采集值满足 triggers 的触发条件时,就会产生 actions 。每一个 trigger 必须对应一个 item ,但一个 item 可以对应多个 trigger 。同样,通过点击 Configuration->Hosts->Triggers 中某个 trigger 的名字,可以修改 trigger 的属性。(注意:引用自 template 的 trigger 触发值是不能单独修改的,必须在 template 中修改,或是复制一个同样的 trigger 再修改,然后禁用掉之前的 )
新增 trigger 可以通过点击右上角的 create trigger 来创建
Expression 中选择对应的 item 、触发方式及触发值, Severity 是告警级别,根据 trigger 的严重性来选择。
Zabbix 提供多种 trigger 触发方式供选择,常用的我们可以选择 last value >/=/#/N( 最近一次采集值 ), 或是选择 maximal value for period of time ( 一段时间内的最大值 ), 等等。可以根据实际需要来设定触发方式。
这里我选择在一定时间内(10分钟)检查磁盘空间,如果/tmp目录大于83%,触发事件。
添加ActionsAction 是告警动作,当触发器条件被满足时,就会执行指定的 action 。
通过 Configuration->Actions->Create Action 来创建 Action
Event source: 来源,如果选择 triggers ,即所有的 triggers 条件满足时都会执行这个action
Escalations :告警是否升级,及升级时间
Subject 、 Message :告警标题和内容 ,此处可引用 zabbix 的宏变量;例如 {{HOSTNAME}:{TRIGGER.KEY}.last(0)} 表示最后一次采集值,更多宏变量参考:
documentation/1.8/manual/config/macros
Recovery Message :告警恢复信息,不勾选系统会用默认的,勾选后自定义
Conditions : trigger 产生的条件,条件可以多选
Operation :选择 media 及 user
添加MediasMedia ,即告警方式, Zabbix 可以提供四类 Media : Email/SMS/Jabber/Script ,通过Administrator->Media Type 来修改或新增告警方式
Email 方式最常用的,填入相关的 SMTP 信息,即可通过邮件方式发送告警。
SMS 方式要在 server 主机上接入短信 modem 。
Jabber 方式是一种 linux 下的即时通讯工具 , 通过 Jabber 发送即时消息。
Script 方式可以通过自己编写程序或脚本的方式发送告警信息。
添加Users在 Administrator->Users 可以添加用户和用户组
通过 User Group 可以限制用户的权限, zabbix 自带的用户组的权限限制基本能满足我们的要求。
创建用户时可以根据用户的不同作用划分到不同的组, media 中填入告警接受地址及告警接受时间等信息。
在“报警介质”这项,配置报警的方式,我选邮件方式。
完成配置后,将触发器激活,可以收到邮件。
之后,在事件中,可以看到监控详细信息。
添加WEB Monitorings
Web Monitoring是用来监控web程序的,可以监控到web程序的下载速度、返回码及响应时间,还支持把一组连续的web动作作为一个整体来监控。
下面以监控登录zabbix的web程序为例,来展示如何使用web monitoring。
Configuration-> web-> Create Scenario ,选择一台WEB服务器,创建一个Senario(注:必须选择主机后才能创建Scenario,zabbix的所有监控项都必须创建在主机上)
监控项分组:选择这个scenario所在的监控项分组
名称:scenario的名字
认证:鉴权
数据更新间隔(秒):监控频率,单位为秒
Agent:选择要使用的浏览器客户端,可能同样的web程序对不同的客户端展示的内容不一样。
状态:默认为Active
变量:变量定义,这里定义的变量可在后续的steps中使用,这里我们定义了用户和密码变量
Steps:web程序的各个步骤,选择add新增一个Login的step,来模拟用户登录,传递用户和密码给index.php页面。
URL:监控的web页面(注:必须是全路径带页面名)
Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面的变量。
Timeout:超时时间
Required:页面中能匹配到字符,匹配不到即认为错误
Status codes:页面返回状态码
添加完step后,在Monitoring-> web页面即能看到监控的状态和图示。
创建完scenario后,zabbix server会自动穿件相关的监控项,所以我们只需为这些监控项添加触发器即可让web scenario出错时产生告警。
Configuration-> Hosts,点击scenario所在的主机条目的触发器,直接创建触发器,在选择监控项的时候就可以看到系统自动创建的监控项(注:自动创建的监控项在主机的监控项列表中直接是看不到的,需要在创建触发器是选择监控项时才能看到)
可以在监控项列表中看到,系统为每个step创建了3个监控项,Download Speed/Response Code/Response Time,为整个scenario创建了一个test.fail的监控项,可以分别为其创建触发器。下例我们创建一个Login页面返回状态码的触发器,大于等于400即为错误
再创建一个整个scenario所有step运行是否成功的触发器,采集值为0表示整个scenario的所有step都执行成功了,第几步的执行失败就返回数字几,且后续的step都不会继续执行下去。
这样,一个完整的web monitoring就配置完成了。
添加自定义MySQL监控
Zabbix自带有MySQL的监控模板,可以做一些简单的监控。
1、 更改客户端配置
客户端的配置文件上默认就有通过mysqladmin工具取MySQL数据库监控信息的配置,因此只需更改使用MySQL监控模板的Host上的agentd.conf文件,将文件最后所有关于MySQL的UserParameter前的#号去掉,更改登录MySQL的用户名和密码即可
例如:修改后其中一条监控数据库状态如下:
UserParameter=mysql.ping,mysqladmin -uzabbix -p123 ping|grep alive|wc -l修改后重启host上的agentd,使其生效
2.添加监控项
Web端编辑mysql所在的host,使之link到template_APP_MySQL模板,然后在主机的监控项里就能看到刚才定义的这些MySQL的监控项,修改相应的触发器值即可。
zabbix自带的MySQL监控功能比较弱,只是通过mysqladmin工具去查询mysql的一些状态而已。
我根据目前使用情况,自己编写了MySQL监控模板和监控配置文件,对数据库的连接数、运行状态、主从复制进程状态等进行监控。具体配置文件参考附件的zabbix_mysql.conf配置文件。
3.添加MySQL监控配置文件
在客户端主机数据库中添加zabbix监控用的本地数据库用户
mysql -uroot -p123 -e "grant usage,super,replication slave on *.* to zabbixtest@localhost identified by 'zabbixtest';flush hosts;flush privileges;"创建目录,并将数据库监控配置文件拷贝到该目录下
mkdir /etc/zabbix/zabbix_agentd
Cp zabbix_mysql.conf /etc/zabbix/zabbix_agentd修改客户端服务器上的zabbix主配置文件,添加如下内容
Include=/etc/zabbix/zabbix_agentd
重新启动客户端服务器上的zabbix应用
/etc/init.d/zabbix_agentd stop
/etc/init.d/zabbix_agentd start
Configuration->Hosts,选择需要监控MySQL的主机添加该模板,添加完毕后save即可
添加配置图表
图表将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是比较多个主机的同一种信息,这些信息可以为图形、拓扑图、主机等等,几乎涵盖zabbix所有的监控信息。
Configuration->Screens->create screen来创建,创建时定义图表的行数和列数,点击对应单元格内的change,添加相应的信息。
导入/导出(Import/Export)
(1)主机的导出
通过Configuration-> Export/Import来进行导出导入主机。
可以选择主机模板,或者监控项和触发器。
点击“Preview”按钮来查看要导出的元素。
选择“Export”按钮来导出到本地的xml文件,默认名字为zabbix_export.xml,文件格式如下:
....
....
....
....
(2)主机的导入
通过Configuration->Import/Export,选择导入
由于Map、Screen的导入导出需要zabbix1.8.2以后版本才可支持,故不介绍。
(1) HTTP
此种认证方式基于Apache based(HTTP) authentication,将检查用户名和密码,必须在zabbix服务器中存在一个用户。
注意:
Be careful! Make sure that Apache authentication is configured and works properly before switching it on.
In case of Apache authentication all users (even with GUI Access set to Internal) will be authorised by Apache, not by ZABBIX!
简要介绍apache http authentication
启用认证
先介绍用密码来保护服务器上的目录。
首先需要建立一个密码文件。这个文件应该放在不能被网络访问的位置,以避免被下载。例如,如果/usr/local/apache/htdocs以外的空间不能被网络访问,那么可以考虑把密码文件放在/usr/local/apache/passwd目录中。
Apache在其安装目录的bin子目录中提供了htpasswd工具,用于建立密码文件,可以这样使用:
htpasswd -c /usr/local/apache/passwd/passwords rbowen
htpasswd会要你输入密码,并要求重新输入以进行确认:
# htpasswd -c
/usr/local/apache/passwd/passwords rbowen
New password: mypassword
Re-type new password: mypassword
Adding password for user rbowen
如果htpasswd不在搜索路径中,则必须使用完整路径,如:/usr/local/apache/bin/htpasswd
然后修改httpd.conf或.htaccess文件,指示服务器允许哪些用户访问并向用户索取密码。若要保护/usr/local/apache/htdocs/secret目录,则可以将下列指令写入/usr/local/apache/htdocs/secret/.htaccess或者httpd.conf的
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
让我们逐个解释这些指令。AuthType指令选择对用户实施认证的方法,最常用的是由mod_auth_basic提供的Basic 。必须认识到的很重要的一点是,Basic认证方法并不加密来自用户浏览器的密码,因此,不应该用于高度敏感的数据。Apache中还有另一种更安全的认证方法"AuthType Digest",即由mod_auth_digest供的摘要认证。目前,只有最新的浏览器版本才支持摘要认证。
AuthName指令设置了使用认证的域(Realm),它起两个作用,首先,此域会出现在显示给用户的密码提问对话框中,其次,也帮助客户端程序确定应该发送哪个密码。
所以,如果一个用户已经在"Restricted Files"域通过了认证,则客户端就可以尝试使用同样的密码来访问同一个服务器上任何名为"Restricted Files"域的其他部分,从而使多个受限区域使用同一个密码,以避免用户重复输入。当然,出于安全考虑,如果服务器变了,客户端始终会要求重新输入密码。
AuthUserFile指令设置了密码文件的位置,也就是刚才我们用htpasswd建立的文件。如果用户很多则认证速度会很慢,因为对每个请求都必须搜索这个纯文本文件,对此,Apache还支持把用户信息存入快速的数据库文件,mod_authn_dbm模块提供了AuthDBMUserFile指令,并可以用dbmmanage程序建立和操作这些数据库。Apache模块数据库中还提供了许多其他第三方模块提供的认证选项。
最后,Require指令设置了允许访问受保护区域的用户,下一节将对Require指令作详细说明。
上述指令只允许一个人(一个叫rbowen的用户)访问这个目录,但是多数情况下,都需要允许多人访问,所以就要用到AuthGroupFile指令。
如果想允许多人访问,那么就必须建立一个组文件以确定组中的用户。其格式很简单,可以用你喜欢的编辑器建立,例如:
GroupName: rbowen dpitts sungo rshersey
它只是每组一行的一个用空格分隔的组成员列表。
向已有的密码文件中增加一个用户,可以输入:
htpasswd /usr/local/apache/passwd/passwords dpitts
程序的提示和上面的一样,但是它会追加到已有的文件中,而不是建一个新文件(参数 -c 可以强制建立新的密码文件)。
现在,需要将.htaccess文件修改成这样:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups
Require group GroupName
现在,GroupName组中的成员都在password文件中有一个相应的记录,从而允许他们输入正确的密码进行访问。
除了建立组文件,还有另一种途径允许多人访问,就是使用如下指令:
Require valid-user
使用上述指令,而不是 Require user rbowen ,可以允许密码文件中的所有用户使用正确的密码进行访问。通过为每个组建立一个密码文件,这里甚至允许列举各个组,其优点是Apache只需要检查一个文件(而不是两个),其缺点是,必须维护众多密码文件,而且要确保AuthUserFile指定了一个正确的密码文件。
由于采用了Basic认证的方法,每次向服务器请求甚至刷新一个受保护的页面或图片时都必须校验用户名和密码,为此,必须打开密码文件并逐行搜索用户名,因此,服务器响应速度会受一些影响,受影响的程度与密码文件的大小成正比。
所以,对密码文件中的用户总数存在一个实际上的上限,此上限取决于特定的服务器机器的性能,但是一般有几百个用户就会对响应速度有非常明显的影响,在这种情况下,可以考虑用其他认证方法。
(2) LDAP
此认证方式需要LDAP Server的支持。
监控网络设备监控的网络设备需要支持SNMP(简单网络管理协议)协议,也需要在zabbix server上安装snmp软件,这里我装的是net-snmp。用SNMP2.0协议来监控网络设备。\
上定义Discovery策略定义Discovery策略IP搜索范围,agent选择“SNMPv2
agent”,“community”为前面设置的“public”,
OID设置为".1.3.6.1.2.1.1.1.0",注意这串数字前面有个“.”哦。你想知道这个OID是什么意思,你可以在zabbix server上使用如下命令:
snmpwalk -v 2c -c public host .1.3.6.1.2.1.1.1.0,其实就是获取的设备信息。
[root@server bin]# snmpwalk -v 2c -c public 10.10.40.129 .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: HP J4819A ProCurve Switch 5308xl, revision
E.10.37, ROM E.05.04 (/sw/code/build/alpmo(m35))Copyright (c) 1986-2004 by
cisco Systems, Inc.
Compiled Mon 12-Jul-04 08:18 by Madison
策略生效后,在Monitoring-Discovery下能看到所发现的cisco设备,如下图
当然,此时上图中的monitored host应该都是空白的。上图是我已经把发现的网络设备关联好了的。
发现很多网络设备,型号也有很多种,真是数量多、型号杂。要把他们一个个添加到 host列表中去想想都麻烦。不过我们在Configuration-Action中定义策略让它们自动关联到自定义设备模板并添加到host列表中 去。
a.以HP5308为例,我们需要将每个5308设备关联到Template_HP5308,并添加host。首先新建一条Action策略auto discovery hp5308,
Event source选择Discovery
Action conditions添加如下三条
Service type = "SNMPv2 agent"
Discovery status = "Up"
Received value like "5308" #根据Discovery得到的值,满足这三个条件则执行下面的操作。
Action operations
Add to group "Cisco switcher" #添加主机到Cisco switcher 组中
Link to template "Template_HP5308" #关联主机到5308模板
应用这个Action策略后,服务器就会自动把发现的设备关联和添加到相应的组中。
现在就可以根据你自己的需求修改每个模板,在模板里面添加Items、Applications、Triggers、Graphs。
添加Items主要涉及到OID、Key,可是我怎么知道某个Items它的OID、Key是多少?这里给大家推荐一个软件Getif,一个可以查看设备SNMP信息的软件,功能相当强大。下面是下载地址:
软件运行时的界面
在MBrowser页面你能查到snmp设备上所有的对象(比如cpu util)的OID、Key,以及它的值,在zabbix服务器上可以使用snmpget命令来获取OID的值
snmpget -v 2c -c public 10.10.40.129 1.3.6.1.4.1.11.2.14.10.2.14.1.1.1.1.1.2.8
SNMPv2-SMI::enterprises.11.2.14.10.2.14.1.1.1.1.1.2.8 = INTEGER: 2
最后放一张交换机的cpu利用率
配置说明
初次登陆zabbix软件默认用户名密码为Admin/zabbix
Zabbix在执行各项监控前,均要先进行配置,然后才可在“监视器”项中查看到监视结果
说明
1.选择 管理 >> 用户:此选项用于创建用户或者用户组,右上角的下拉列表可选择创建的项目。创建用户的时候,可指定用户使用的语言等环境参数。可针对不同的管理范围组创建相应的用户,权限划分比较明确
2.选择 配置 >> 主机:此选项用于创建添加主机,主机组,策略模板等项目。同样也可在右上角的下拉列表选择。在此处添加需要被监控的主机,并可对同群的主机进行分组,以便随后在设置监控策略时,可以针对整组添加不用针对每一台单个主机繁琐添加
3. 选择 配置 >> 监控项:在建立主机和主机组后,需要设置对主机监控的项目。这个选项可以为每一台主机添加监控项,也可以通过现有策略模版link到主机,同样也可以建立自己的策略模版,再把模版link给主机组。监控项的类型比较丰富,可以创建zabbix agent自带的项,也可创建SNMP的项,以及自扩展定义的项。
4. 选择 配置 >> 触发器:此选项是用于修改监控项中,触发监控项启动的条件。当条件为真时可触发预先定义的动作,同时系统会记录这些事件。可以为每台主机创建触发器,也可以为模板创 建触发器。也可以对现有监控项的触发条件根据实际需要修改
5. 选择 配置 >> 动作:这里的动作就是上面提到的当触发器条件为真时所执行的操作,有两种操作:发送消息和执行命令,通常不需要自己另设动作
6.选择 配置 >> 网络图:用于建立监控设备的网络逻辑关系,如网络拓扑,需至少建立两个及以上元素才行。但不知为何目前创建的逻辑图功能未能完全正常使用,还在进一步研究中
7.选择 配置 >> 曲线图:根据监控项的内容,生成相关图表,有曲线图,饼图等几种形式。还可以把几台被监控设备的某个监控项目绘制在一张图中,以便于比对。
8.选择 配置 >> 信息显示屏:此处就是可以把若干个图形元素或者非图形元素(比如统计表等)统统放在一个n行m列的单元格内,可以一起对比监控。另外还有一种幻灯片模式,可以按照幻灯形式循环播放各种图表
在配置选项中设置好的内容,都需要在监视器菜单下进行查看,普通权限或未授权用户登录后是无法看到配置选项的。在监视器 >> 监控面板中 可总揽被监控设备的异常信息等,还可以将各种图表添加到面板中方便点击查看
监控告警功能:
zabbix告警主要通过触发器触发实现的,它的告警方式有邮件告警、电话告警、短信告警以及jabber告警。
URL/process / log