monicazhang 发表于 2017-8-29 17:14:59

介绍Zabbix 监控配置及实战

Zabbix监控简介

[*]概述
Zabbix 是一个高度集成的网络监控解决方案,可以提供 企业级的开源分布式监控解决
方案,由一个国外的团队持续维护更新,软件可以自由下载使用。
[*]工作模式
Zabbix 通过 C/S 模式采集数据。通过 B/S 模式在 web 端展示和配置。
[*]监控原理
1.被监控端:主机通过安装agent方式进行采集本机的数据,网络设备通过SNMP协议方式采集数据
2.监控服务端:通过收集agent和SNMP所采集到的数据,并将数据写在数据库服务器里,最终通过php+apache(nginx)在web前端显示出来。
[*]Zabbix功能
1.具备常见的商业软件所具备的功能,例如:本机的私有数据(CPU,内存,硬盘使用情况),本机的公有数据(http服务,ftp服务,数据库服务等)
2.支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
3.支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本)
4.支持分布式,能集中展示、管理分布式的监控点
5.扩展性强,server 提供通用接口(api 功能)可以自己开发完善各类监控(根据相关接口编写程序实现)
6.编写插件容易,可以自定义监控项,报警级别的设置。
7.数据收集
8.具备实时将监控项绘图的功能

部署LNMP平台
之所以部署LNMP平台,是因为Zabbix服务是php脚本开发。并且需要将收集到的数据保存在数据库里,和将收集到的数据实时的展示在web前端上。因此,我们全部使用源码包构建LNMP平台。
[*]安装Nginx# yum -y install openssl-devel
pcre-devel gcc gcc-c++ make //安装依赖包
# useradd nginx//创建进程属主
# tar -xf nginx-1.10.1.tar.gz//解包
# cd nginx-1.10.1# ./configure --user=nginx
--prefix=/usr/local/nginx--group=nginx
--with-http_ssl_module    //配置
# make && make install
   //编译和安装
# /usr/local/nginx/sbin/nginx
//启动服务
# echo "www.dcc.com" >
/usr/local/nginx/html/index.html //配置网站主页
# curl h www.dcc.com
[*]安装MySQL# tar -xf mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz
//解包
# cd mysql-5.6.30-linux-glibc2.5-x86_64/
# useradd mysql
# mv mysql-5.6.30-linux-glibc2.5-x86_64
/usr/local/mysql
# yum -y install perl-Data-Dumper.x86_64
   //安装依赖包
# cd /usr/local/mysql/scripts
# ./mysql_install_db
   --basedir=/usr/local/mysql
   --datadir=/usr/local/mysql/data
   --user=mysql       //装包
# chown -R mysql:mysql
    /usr/local/mysql///赋予进程属主权限
# ln -s /usr/local/mysql/bin
    /usr/sbin
# echo"exportPATH=/usr/local/mysql/bin:$PATH"
>>/etc/profile
# source /etc/profile
# cd /usr/local/mysql/support-files/
# cp mysql.server /etc/init.d/mysql
# chmod +x /etc/init.d/mysql
# cp /usr/local/mysql/support-files/my.cnf.default
/etc/my.cnf# /etc/init.d/mysql start
# mysql -uroot create database zabbixdb;   
      //创建存放监控系统信息的数据库 grant all on zabbix.* to cc@'localhost'
      identified by '123456';
//授权登陆创建数据库的用户
[*]安装PHP# yum -y install php-gd.x86_64 freetype*
libjpeg-devel libxml2-devel libpng-devel# tar -xf php-5.6.22.tar.gz # cd php-5.6.22# ./configure --prefix=/usr/local/php5/
    --enable-fpm --enable-mbstring --enable-bcmath
   --enable-sockets
   --with-config-file-path=/usr/local/php5/etc
   --with-mysql=/usr/local/mysql/
   --with-mysqli=/usr/local/mysql/bin/mysql_config
   --with-gd --with-gettext --with-jpeg-dir
      --with-freetype-dir   //配置
# make && make install //编译和安装
# cpphp.ini-production /usr/local/php5/etc/php.ini# vim /usr/local/php5/etc/php.ini   //修改php.ini date.timezone = Asia/Shanghai max_execution_time = 300 post_max_size = 32M max_input_time = 300 memory_limit = 128M always_populate_raw_post_data = -1# cd /usr/local/php5/etc/# cp php-fpm.conf.default php-fpm.conf
//生成php-fpm主配置文件# /etc/init.d/php-fpm start //启动服务
[*]安装Zabbix# useradd zabbix//添加用户
# tar -xf zabbix-3.2.3.tar.gz //解包
# cd zabbix-3.2.3/#./configure
--prefix=/usr/local/zabbix
   --enable-server--enable-agent
       --with-mysql=/usr/local/mysql/bin/mysql_config
# make && make install
# cp -r frontends/php/
    /usr/local/nginx/html/zabbix
    //生成监控服务器根目录
# cd database/mysql/# mysql -ucc -p123456 zabbixdb < schema.sql
//导入监控服务器材存储监控数据的表
# mysql -ucc -p123456 zabbixdb < images.sql# mysql -ucc -p123456 zabbixdb &lt; data.sql# chown -R nobody:nobody /usr/local/nginx/html/zabbix/# zabbix/index.php //客户端访问
[*]登陆面板需要配置的信息,帐号默认admin,密码:zabbix    /usr/local/nginx/html/zabbix/conf/zabbix.conf.php
$DB['TYPE']   = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']   = '0';
$DB['DATABASE'] = 'zabbixdb';
$DB['USER']   = 'cc';
$DB['PASSWORD'] = '123456';
$ZBX_SERVER      = '192.168.4.50';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'zabbixo';
[*]客户端访问如下:

[*]配置,启动监控服务#cd zabbix-3.2.3/misc/init.d/fedora/core/
# cp * /etc/init.d/
# chmod +x /etc/init.d/zabbix_*
# vim /etc/init.d/zabbix_server   BASEDIR=/usr/local/zabbix# vim /etc/init.d/zabbix_agentd   BASEDIR=/usr/local/zabbix# vim /usr/local/zabbix/etc/zabbix_server.conf   87 DBName=zabbixdb
   103 DBUser=cc
   111 DBPassword=123456
# /etc/init.d/zabbix_server start
# netstat-utnlap| grep :10051
# vim /usr/local/zabbix/etc/zabbix_agentd.conf   91 Server=127.0.0.1   132 ServerActive=127.0.0.1:10051
# /etc/init.d/zabbix_agentd start
# netstat-utnlap| grep :10050

监控实战

[*]使用已有模版监控本机(Host 是 Zabbix 监控的基本载体,所有的监控项都是基于 host 的。)
步骤如下:
1.通过 Configuration->Hosts->Create Host 来创建监控设备
如图:

2.按提示填入 Name、Groups、IP ,其他选项默认即可。在Link Templates 处选择一个模板。save 即可成功添加设备。

3.在 Configuration->Hosts 中会出现监控的主机。
4.重启监控服务端的服务/etc/init,d/zabbix_serverrestart 。查看ZBX是否加亮。加亮则可查看监控状态。
结果如图:

绘图界面如下:

[*]监控远端主机并且自定义监控项目
ip:192.168.4.66
监控项:系统用户数 : wc -l /etc/passwd
1.安装zabbix——agentd包,启动服务# tar -xf zabbix-3.2.1.tar.gz
# cd zabbix-3.2.1
# yum -y install gcc gcc-c++ make
# useradd zabbix
# ./configure
    --prefix=/usr/local/zabbix
    --enable-agent &amp;&amp; make &amp;&amp;
         make install
# cp misc/init.d/fedora/core/zabbix_agentd
   /etc/init.d/
# chmod +x /etc/init.d/zabbix_agentd
# vim /etc/zabbix/zabbix_agentd.conf      Server=127.0.0.1, 192.168.4.40      
      //更改服务器ip   ServerActive=192.168.4.40:10051
         //更改监控服务器ip   UnsafeUserParameters=1
                  //去掉注释# vim /etc/init.d/zabbix_agentd   
                     //修改脚本zabbix根目录   BASEDIR=/usr/local/zabbix# /etc/init.d/zabbix_agentd restart
   //启动客户端服务,端口为100502 被监控主机创建自定义监控命令
自定义的key文件一般存储在/etc/zabbix/zabbix_agentd.conf.d/目录,这里还需要修改zabbix_agentd.conf文件,来读取该目录下的所有文件 。# vim /etc/zabbix/zabbix_agentd.conf    Include=/etc/zabbix/zabbix_agentd.conf.d/ # cd /usr/local/zabbix/etc/zabbix_agentd.conf.d
# vim get_users.conf   UserParameter=get_user,wc -l /etc/passwd
      | awk '{print $1}'
      //获取4.66主机的用户数命令
# /etc/init.d/zabbix_agentd restart # zabbix_get -s 127.0.0.1 -k get_user
      //测试命令是否创建正确3.设置Zabbix监控控制台
1添加模版
通过Configuration-->Template-->Create template创建模板

2.创建应用
点击模板后面的Application链接
3.创建项目
选择Create items创建项目
4.给项目设置名称及对应的自定义key
5.将模板链接到被监控主机
6.如图:

[*]启用报警功能
3.1.设置邮件信息及触发动作
创建Media:Administration-->Users找到Admin账户;
通过Add按钮创建新的Media;
创建Media时需要设置Media的类型,选择Email类型,则在Send to后填写接收报警邮件的收件人邮箱;
Media创建完成后,继续设置该Media设置SMTP邮件服务器信息;3.2.创建Action(动作)
通过Configuration-->Actions-->Create action创建动作
创建动作后,为发送邮件报警的行为设置报警邮件的标题、内容等信息
设置动作的触发条件
3.3.创建触发器
通过Configuration-->Templates找到之前创建的模板,点击模板后面的Triggers来创建触发器
3.4 配置触发器
监控项目选择之前创建的项目:count_line_passwd_item,触发器条件是账户数量大于N是触发动作,N的值设置为45;
触发器规则设置完成后,激活该触发器即可;
3.5测试效果
如图:监控4.66主机用户数绘图如下:

监控主页如图:

[*]测试报警功能# wc -l /etc/passwd 47# su - zabbix# mail收取邮件的结果测试如下:

邮件内容如下:Message8:
From root@localhost.localdomainFri May 19 20:43:53 2017
Return-Path: <root@localhost.localdomain>
X-Original-To: zabbix@localhost
Delivered-To: zabbix@localhost.localdomain
From: <root@localhost.localdomain>
To: <zabbix@localhost.localdomain>
Date: Fri, 19 May 2017 20:43:53 +0800
Subject: more_users
Content-Type: text/plain; charset="UTF-8"
Status: ROThe current users is more than your configure.&




原创: Mayweis

页: [1]
查看完整版本: 介绍Zabbix 监控配置及实战