Chinaunix首页 | 论坛 | 博客
  • 博客访问: 155962
  • 博文数量: 55
  • 博客积分: 2409
  • 博客等级: 大尉
  • 技术积分: 371
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-10 14:19
文章分类

全部博文(55)

文章存档

2012年(5)

2011年(15)

2010年(6)

2009年(29)

我的朋友

分类: LINUX

2012-05-14 15:07:45

Zabbix安装配置

 

是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

  zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。

  zabbix2部分构成,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.xapache2.2.xapr上有本质的区别,前者为依赖公用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

安装mysql

1.解压安装

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来启动mysqlservice 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

安装php

Php依赖软件包有:

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

安装zlib

tar -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

安装libpng

tar –zxvf libpng-1.2.8-config.tar.gz

cd libpng-1.2.8-config

./configure –prefix=/usr/local/libpng

make && make install

安装 freetype

tar zxvf freetype-2.3.4 .tar.gz
cd freetype-2.3.4  
 ./configure --prefix=/usr/local/freetype
make && make install

安装jpeg

tar –zxvf jpegsrc-1.v6b.tar.gz

cd jpegsrc-1.v6b

./configure --prefix=/usr/local/jpeg --enable-shared --enable-static

make && make install

安装libxpm

tar –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

安装php

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.2php-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
的功能:
自动发现服务器和网络设备;
分布式监控网络,集中式管理;
支持pollingtrapping机制;
服务器端支持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文件是所有平台都通用的)

LinuxUXLinuxUX上的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 (用户)

添加Hosts

Host  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%,触发事件。

添加Actions

Action 是告警动作,当触发器条件被满足时,就会执行指定的 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

添加Medias

Media ,即告警方式, 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动作作为一个整体来监控。

下面以监控登录zabbixweb程序为例,来展示如何使用web monitoring

Configuration-> web-> Create Scenario ,选择一台WEB服务器,创建一个Senario(注:必须选择主机后才能创建Scenariozabbix的所有监控项都必须创建在主机上)

监控项分组:选择这个scenario所在的监控项分组

名称:scenario的名字

认证:鉴权

数据更新间隔():监控频率,单位为秒

Agent:选择要使用的浏览器客户端,可能同样的web程序对不同的客户端展示的内容不一样。

状态:默认为Active

变量:变量定义,这里定义的变量可在后续的steps中使用,这里我们定义了用户和密码变量

Stepsweb程序的各个步骤,选择add新增一个Loginstep,来模拟用户登录,传递用户和密码给index.php页面。

URL:监控的web页面(注:必须是全路径带页面名)

Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面的变量。

Timeout:超时时间

Required:页面中能匹配到字符,匹配不到即认为错误

Status codes:页面返回状态码

添加完step后,在Monitoring-> web页面即能看到监控的状态和图示。

创建完scenario后,zabbix server会自动穿件相关的监控项,所以我们只需为这些监控项添加触发器即可让web scenario出错时产生告警。

onfiguration-> 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文件,将文件最后所有关于MySQLUserParameter前的#号去掉,更改登录MySQL的用户名和密码即可

例如:修改后其中一条监控数据库状态如下:

UserParameter=mysql.ping,mysqladmin -uzabbix -p123 ping|grep alive|wc -l修改后重启host上的agentd,使其生效

2.添加监控项

Web端编辑mysql所在的host,使之linktemplate_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,文件格式如下:

   

          

                  1

                  127.0.0.1

                  10050

                  1

                 

                 

                 

                        

                                Ping to the server (TCP)

                                30

                                7

                                365

                                161

                                Service state

                               

                                       General

                               

                        

                  ....

                 

                 

                        

                                Version of zabbix_agent(d) was changed on {HOSTNAME}

                                {{HOSTNAME}:agent.version.diff(0)}>0

                                3

                        

                  ....

                 

                        

                                1

                                1

                                0.0000

                                100.0000

                               

                                      

                                              990000

                                              1

                                              2

                                              5

                                      

                                      

                                              009900

                                              1

                                              2

                                              5

                                      

                                      

                                              999900

                                              1

                                              2

                                              5

                                      

                               

                        

                  ....

                 

          

                  ....

   

 

2)主机的导入

通过Configuration->Import/Export,选择导入

 

由于MapScreen的导入导出需要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策略后,服务器就会自动把发现的设备关联和添加到相应的组中。

现在就可以根据你自己的需求修改每个模板,在模板里面添加ItemsApplicationsTriggersGraphs

添加Items主要涉及到OIDKey,可是我怎么知道某个Items它的OIDKey是多少?这里给大家推荐一个软件Getif,一个可以查看设备SNMP信息的软件,功能相当强大。下面是下载地址:

软件运行时的界面

MBrowser页面你能查到snmp设备上所有的对象(比如cpu util)的OIDKey,以及它的值,在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.选择 配置 >> 信息显示屏:此处就是可以把若干个图形元素或者非图形元素(比如统计表等)统统放在一个nm列的单元格内,可以一起对比监控。另外还有一种幻灯片模式,可以按照幻灯形式循环播放各种图表

在配置选项中设置好的内容,都需要在监视器菜单下进行查看,普通权限或未授权用户登录后是无法看到配置选项的。在监视器 >> 监控面板中 可总揽被监控设备的异常信息等,还可以将各种图表添加到面板中方便点击查看

 

监控告警功能:

zabbix告警主要通过触发器触发实现的,它的告警方式有邮件告警、电话告警、短信告警以及jabber告警。

 

URL/process / log

 

阅读(6651) | 评论(0) | 转发(0) |
1

上一篇:Nagios3完整配置文档

下一篇:nginx安装步骤

给主人留下些什么吧!~~