24212 发表于 2016-2-23 09:15:32

部署Zabbix监控平台

1 部署Zabbix监控平台1.1 问题本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备:

[*]在监控服务器上安装LAMP环境

[*]修改PHP配置文件,满足Zabbix需求

[*]源码安装Zabbix

[*]修改Zabbix基本配置

[*]初始化Zabbix监控Web页面

1.2 方案使用1台RHEL6虚拟机,安装部署LAMP环境、Zabbix及相关的依赖包,配置数据库并对Zabbix监控平台进行初始化操作。被监控端源码安装Zabbix Agent。监控拓扑如图-1所示。

图-1
1.3 步骤实现此案例需要按照如下步骤进行。
步骤一:部署监控服务器1)安装LAMP环境
Zabbix监控管理控制台需要通过Web页面展示出来,并且还需要使用MySQL来存储数据,因此需要先为Zabbix准备基础LAMP环境。
copytextpop-up

    # yum -y install gcc gcc-c++ autoconf httpd \

    >php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl \

    >mod_auth_mysql php-gd php-xml php-ldap php-pear php-xmlrpc \

    >mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel crul-devel

    # rpm -vih php-bcmath-5.3.3-22.el6.x86_64.rpm

    # rpm -vih php-mbstring-5.3.3-22.el6.x86_64.rpm

# yum -y install gcc gcc-c++ autoconf httpd \
>php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl \
>mod_auth_mysql php-gd php-xml php-ldap php-pear php-xmlrpc \
>mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel crul-devel
# rpm -vih php-bcmath-5.3.3-22.el6.x86_64.rpm
# rpm -vih php-mbstring-5.3.3-22.el6.x86_64.rpm

2)修改PHP配置文件

通过修改php.ini配置文件设置时区、内存限制等来满足Zabbix运行的需要。


    # vim /etc/php.ini

    date.timezone = Asia/Shanghai      //设置时区

    max_execution_time = 300            //最大执行时间,秒

    post_max_size = 32M                //POST数据最大容量

    max_input_time = 300                //服务器接收数据的时间限制

    memory_limit = 128M                //PHP内存占用的容量限制

    mbstring.func_overload = 2

# vim /etc/php.ini
date.timezone = Asia/Shanghai      //设置时区
max_execution_time = 300            //最大执行时间,秒
post_max_size = 32M                //POST数据最大容量
max_input_time = 300                //服务器接收数据的时间限制
memory_limit = 128M                //PHP内存占用的容量限制
mbstring.func_overload = 2

3)源码安装Zabbix

源码安装时,因为是监控服务器,所以使用--enable-server;因为需要使用Zabbix监控本机,所以使用--enable-agent作为被监控主机。


    # useradd -u 201 zabbix                  //创建普通账户

    # ls

    frontend.po

    php-bcmath-5.3.3-22.el6.x86_64.rpm

    php-mbstring-5.3.3-22.el6.x86_64.rpm

    zabbix-2.2.1.tar.gz

    # tar zabbix-2.2.1.tar.gz -C /usr/src

    # cd /usr/src/zabbix-2.2.1/

    # ./configure \                  //编译Zabbix

    >--prefix=/usr/local/zabbix --enable-server --enable-proxy \

    >--enable-agent --with-mysql=/usr/bin/mysql_config \

    > --with-net-snmp --with-libcurl

    # make && make install

# useradd-u 201 zabbix                  //创建普通账户
# ls
frontend.po
php-bcmath-5.3.3-22.el6.x86_64.rpm
php-mbstring-5.3.3-22.el6.x86_64.rpm
zabbix-2.2.1.tar.gz
# tarzabbix-2.2.1.tar.gz -C /usr/src
# cd /usr/src/zabbix-2.2.1/
# ./configure \                  //编译Zabbix
>--prefix=/usr/local/zabbix --enable-server --enable-proxy \
>--enable-agent --with-mysql=/usr/bin/mysql_config \
> --with-net-snmp --with-libcurl
# make && make install

4)创建数据库并导入数据

Zabbix会将获取的监控数据存储在数据库中,可以使用MySQL或Oracle数据库存储,本案例中我们选择MySQL数据库存储监控数据。


    # mysql

    mysql> create database zabbix character set utf8;

    mysql> grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’;

    # cd /usr/src/zabbix.2.2.1/database/mysql

    # mysql -uzabbix -pzabbix zabbix < schema.sql

    # mysql -uzabbix -pzabbix zabbix < images.sql

    # mysql -uzabbix -pzabbix zabbix < data.sql

# mysql
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’;
# cd /usr/src/zabbix.2.2.1/database/mysql
# mysql -uzabbix -pzabbix zabbix < schema.sql
# mysql -uzabbix -pzabbix zabbix < images.sql
# mysql -uzabbix -pzabbix zabbix < data.sql

5)创建连接并将Zabbix加入系统服务

Zabbix安装路径为/usr/local/zabbix,为了更方便进行操作,需要创建相关链接文件。复制软件包中提供的启动脚本到/etc/init.d目录,适当修改脚本内容,即可实现开机启动服务。


    # 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/

    # cd /usr/src/zabbix-2.2.1/misc/init.d/fedora/core

    # cp zabbix_* /etc/init.d/            //复制启动脚本

    # vim /etc/init.d/zabbix_server      //修改启动脚本

    BASEDIR=/usr/local/zabbix

    # vim /etc/init.d/zabbix_agentd      //修改启动脚本

    BASEDIR=/usr/local/zabbix

    # vim /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

# 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/
# cd /usr/src/zabbix-2.2.1/misc/init.d/fedora/core
# cp zabbix_* /etc/init.d/            //复制启动脚本
# vim /etc/init.d/zabbix_server      //修改启动脚本
BASEDIR=/usr/local/zabbix
# vim /etc/init.d/zabbix_agentd      //修改启动脚本
BASEDIR=/usr/local/zabbix
# vim/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

6)修改Zabbix配置文件

本机作为监控服务器同时作为被监控端,需要同时修改zabbix_server.conf和zabbix_agentd.conf文件。


    # vim /etc/zabbix/zabbix_server.conf

    DBName=zabbix                                    //设置数据库名称

    DBUser=zabbix                                    //设置数据库账户

    DBPassword=zabbix                              //设置数据库密码

    LogFile=/var/log/zabbix/zabbix_server.log      //设置日志

    # vim /etc/zabbix/zabbix_agentd.conf

    Server=127.0.0.1,192.168.194.10                //设置监控服务器IP

    ServerActive=192.168.194.10:10051                //主动监控服务器IP

    Hostname=zabbixserver.tarena.com                //设置主机名

    LogFile=/var/log/zabbix/zabbix_server.log      //设置日志

    UnsafeUserParemeters=1                        //是否允许自定义key

# vim /etc/zabbix/zabbix_server.conf
DBName=zabbix                                    //设置数据库名称
DBUser=zabbix                                    //设置数据库账户
DBPassword=zabbix                              //设置数据库密码
LogFile=/var/log/zabbix/zabbix_server.log      //设置日志
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,192.168.194.10                //设置监控服务器IP
ServerActive=192.168.194.10:10051                //主动监控服务器IP
Hostname=zabbixserver.tarena.com                //设置主机名
LogFile=/var/log/zabbix/zabbix_server.log      //设置日志
UnsafeUserParemeters=1                        //是否允许自定义key

7)复制Web页面,启动Zabbix服务


    # cd /usr/src/zabblix-2.2.1

    # cp -r frontends/php /var/www/html/zabbix

    # chwon -R apache.apache /var/www/html/zabbix

    # service zabbix_server start

    Starting zabbix_server                  

    # chkconfig zabbix_server on

    # service zabbix_agentd start

    Starting zabbix_agentd               

    # chkcofig zabbix_agentd on

# cd/usr/src/zabblix-2.2.1
# cp -rfrontends/php/var/www/html/zabbix
# chwon -R apache.apache /var/www/html/zabbix
# service zabbix_server start
Starting zabbix_server                  
# chkconfig zabbix_server on
# service zabbix_agentd start
Starting zabbix_agentd               
# chkcofig zabbix_agentd on

8)登录Web管理页面,初始化管理平台

首次使用Zabbix管理平台,需要进行简单的初始化操作,主要是MySQL数据库设置,如图-2所示,Web管理页面默认初始账户admin,密码为zabbix。

图-2
步骤二:部署被监控主机1)源码安装Zabbix Agent
被监控端主机安装Zabbix仅需要开启Agent模式即可,不需要使用Zabbix服务器模式。
    # useradd -u 201 zabbix                  //创建账户

    # yum -y install gcc gcc-c++

    # tar zabbix-2.2.1.tar.gz -C /usr/src      //解压

    # cd /usr/src/zabbix-2.2.1/

    # ./configure \                  //参数配置

    >--prefix=/usr/local/zabbix --enable-agent

    # make && make install

# useradd -u 201 zabbix                  //创建账户
# yum -y install gcc gcc-c++
# tarzabbix-2.2.1.tar.gz -C /usr/src      //解压
# cd /usr/src/zabbix-2.2.1/
# ./configure \                  //参数配置
>--prefix=/usr/local/zabbix --enable-agent
# make && make install

2)创建目录及链接文件


    # mkdir /var/log/zabbix

    # chown zabbix.zabbix /var/log/zabbix/

    # cd /usr/src/zabbix-2.2.1/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

# mkdir /var/log/zabbix
# chown zabbix.zabbix /var/log/zabbix/
# cd /usr/src/zabbix-2.2.1/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

3)修改配置文件,启动Agent


    # 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.194.10                //监控服务器IP

    ServerActive=192.168.194.10:10051                //主动监控服务器IP

    Hostname=zabbixclient

    UnsafeUserParameters=1                        //是否允许自定义key

    # chkconfig zabbix_agentd on

    # vim /etc/init.d/zabbix_agentd

    BASEDIR=/usr/local/zabbix

    # service zabbix_agentd start

# 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.194.10                //监控服务器IP
ServerActive=192.168.194.10:10051                //主动监控服务器IP
Hostname=zabbixclient
UnsafeUserParameters=1                        //是否允许自定义key
# chkconfig zabbix_agentd on
# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
# service zabbix_agentd start

2 使用Zabbix监控Linux服务器
2.1 问题

沿用练习一,使用Zabbix监控平台监控Linux服务器,实现以下目标:

    监控CPU

    监控内存

    监控进程

    监控网络流量

    监控硬盘

2.2 方案

通过Zabbix监控平台,添加被监控主机并链接监控模板即可。
2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:添加监控主机

使用火狐浏览器登录http://192.168.194.10/zabbix,通过Configuration(动态)-->Hosts(主机)-->Create Host(创建主机)添加被监控Linux主机,如图-3所示。

图-3
添加被监控主机时,需要根据提示输入被监控Linux主机的主机名称、IP地址等参数,具体参考图-4。

图-4
步骤二:为被监控主机添加监控模板Zabbix通过监控模板来对监控对象实施具体的监控功能,根据模板来定义需要监控哪些数据,对于Linux服务器的监控,Zabbix已经内置了相关的模板(Template OS Linux),选择模板并链接到主机即可,如图-5所示。

图-5
步骤三:查看监控数据查看监控数据及图形,登录Zabbix Web控制台,点击监控中,在监控组和监控主机中选择需要查看数据的监控主机,并在图形后面选择需要查看哪些监控数据,如图-6所示。

图-6

3 创建自定义监控3.1 问题沿用练习二,使用Zabbix实现自定义监控,实现以下目标:

[*]监控Linux服务器系统账户的数量

3.2 方案需要使用Zabbix自定义key的方式实现自定义监控,参考如下操作步骤:

[*]创建自定义key

[*]创建监控项目

[*]创建监控图形

[*]将监控模板关联到主机

3.3 步骤实现此案例需要按照如下步骤进行。
步骤一:被监控主机创建自定义key1)创建自定义key
自定义key语法格式为:UserParameter=自定义key名称,命令。
自定义的key文件一般存储在//etc/zabbix/zabbix_agentd.conf.d/目录,这里还需要修改zabbix_agentd.conf文件,来读取该目录下的所有文件 。
    # vim /etc/zabbix/zabbix_agentd.conf

    Include=/etc/zabbix/zabbix_agentd.conf.d/      //加载配置文件目录

    # cd /etc/zabbix/zabbix_agentd.conf.d

    # vim count.line.passwd

    UserParameter=count.line.passwd,wc -l /etc/passwd | awk ' {print $1} '

# vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.conf.d/      //加载配置文件目录
# cd /etc/zabbix/zabbix_agentd.conf.d
# vim count.line.passwd
UserParameter=count.line.passwd,wc -l /etc/passwd | awk ' {print $1} '

2)测试自定义key是否正常工作

copytextpop-up

    # service zabbix_agentd restart

    # zabbix_get -s 127.0.0.1 -k count.line.passwd

    34

# service zabbix_agentd restart
# zabbix_get -s 127.0.0.1 -k count.line.passwd
34

步骤二:设置Zabbix监控控制台

1)添加模板

登录Zabbix Web监控控制台,通过Configuration-->Template-->Create template创建模板,如图-7所示。

图-7
为创建的模板设置模板名称及组名称,如图-8所示。

图-8
2)创建应用
创建完成模板后,默认模板中没有任何应用、项目、触发器、图形等资源。这里需要点击模板后面的Application链接打开创建应用的页面,如图-9所示。

图-9
点击Application后,会刷新出图-10所示页面,在该页面中点击Create application按钮创建应用。

图-10
设置应用名称如图-11所示。

图-11
3)创建项目
与创建应用一样,在模板中还需要创建监控项目,如图-12所示,并在刷新出的新页面中选择Create items创建项目,如图-13所示。

图-12

图-13
接下来,还需要给项目设置名称及对应的自定义key,如图-14所示。

图-14
最后激活该监控项目,如图-15所示。

图-15
4)创建图形
为了后期可以通过图形的方式展示监控数据,还需要在模板中创建图形,设置方法与前面的步骤一致,如图-16所示。

图-16
创建图形后,还需要为图形设置名称及选择对应的监控项目,选择为哪个项目绘制图形,如图-17所示。

图-17
5)将模板链接到被监控主机
将完整的监控模板制作完成后,就可以将模板链接到主机实现监控功能了。首先找到被监控主机,如图-18所示。

图-18
点击被监控主机链接,打开监控主机设置页面,在Template(模板)页面中选择需要链接到该主机的模板,在此选择刚刚创建的模板count_line.passwd添加即可,如图-19所示。

图-19

4 实现Zabbix报警功能4.1 问题沿用练习三,使用Zabbix实现报警功能,实现以下目标:

[*]监控Linux服务器系统账户

[*]当系统账户数量超过35人时发送报警邮件

4.2 方案需要设置Zabbix触发器,定义触发条件及触发后执行什么动作。除此之外还需要提前设置好SMTP服务器及报警信息收件人邮箱信息。参考如下操作步骤:

[*]创建Media

[*]创建Action

[*]创建触发器并设置条件

4.3 步骤实现此案例需要按照如下步骤进行。
步骤一:设置邮件信息及触发动作1)创建Media
设置邮件信息需要针对账户设置,通过Administration-->Users找到Admin账户,点击该账户的链接,如图-20所示。

图-20
在刷新出来的页面中选择Media菜单,通过Add按钮创建新的Media,如图-21所示。

图-21
创建Media时需要设置Media的类型,如果选择Email类型,则在Send to后填写接收报警邮件的收件人邮箱,如图-22所示。

图-22
Media创建完成后,继续设置该Media设置SMTP邮件服务器信息,如图-23所示。

图-23
2)创建Action(动作)
设置完邮件信息后,还需要设置触发行为,创建动作:当触发条件满足是发送报警邮件。
通过Configuration-->Actions-->Create action创建动作,如图-24所示。

图-24
创建动作后,为发送邮件报警的行为设置报警邮件的标题、内容等信息,如图-25所示。

图-25
设置动作的触发条件,如图-26所示。

图-26
步骤二:创建触发器1)创建触发器
创建触发器可以通过Configuration-->Templates找到之前创建的模板,点击模板后面的Triggers来创建触发器,如图-27所示。

图-27
设置触发器名称为passwd_line_gt_35,如图-28所示。

图-28
2)配置触发器
设置触发器规则,监控项目选择之前创建的项目:count_line_passwd_item,触发器条件是账户数量大于N是触发动作,N的值设置为35,如图-29所示。

图-29
触发器规则设置完成后,激活该触发器即可,如图-30所示。

图-30
3)测试效果
在被监控主机创建账户,登录监控Web页面查看,如图-31所示。

图-31
在监控服务器查收报警邮件,如图-32所示。


页: [1]
查看完整版本: 部署Zabbix监控平台