Zabbix 部署分布式全网监控系统 ;

一 、 zabbix  简介  ;

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server 和 zabbix agent 与可选组件zabbix proxy 。
zabbix server 可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。


二  、zabbix  架构图-架构说明   ;

Zabbix 部署分布式全网监控系统 ;

监控主机 ; 安装zabbix sever 程序和 zabbix agent 程序 

被监控主机;只需要安装 zabbix agent 程序 

zabbix agent 程序获取本机的所有信息,发送给 zabbix sever 端 

 

三 、 zabbix  特性大概了解    ;

数据收集
a)  可用性及性能检测
b)  支持 SNMP(trapping 及 polling)、IPMI、JMX 监控
c)  自定义检测
d)  自定义间隔收集收据
e)  server/proxy/agents 吸能

灵活的阀值定义
a)  允许灵活地自定义问题阀值,Zabbix 中称为触发器(trigger), 存储在后端数据库中

高级告警配置
a)  可以自定义告警升级(escalation)、接收者及告警方式
b)  告警信息可以配置并允许使用宏(macro)变量
c)  通过远程命令实行自动化动作(action)

实时绘图
a)  通过内置的绘图方法实现监控数据实时绘图

扩展的图形化显示
b)  允许自定义创建多监控项视图
c)  网络拓扑(network maps)
d)  自定义的面板(screen)和 slide shows,并允许在 dashboard 页面显示
e)  报告
f)  高等级(商业)监控资源

历史数据存储
a)  数据存储在数据库中
b)  历史数据可配置
c)  内置数据清理机制

配置简单
a)  主机通过添加监控设备方式添加
b)  一次配置,终生监控
c)  监控设备允许使用模板


模板使用
a)  模板中可以添加组监控
b)  模板允许继承


网络自动发现
a)  自动发现网络设备
b)  agent 自动注册
c)  自动发现文件系统、网卡设备、SNMP OID 等


快速的 web 接口
a)  web 前端采用 php 编写
b)  访问无障碍
c)  你想怎么做就能做么做
d)  审计日志


四 、zabbix 进程构成  ;

zabbix 进程组成结构,默认情况下 zabbix 包含 5 个程序:zabbix_agentd 、zabbix_get 、zabbix_proxy 、zabbix_sender 、
zabbix_server,另外 zabbix_java_gateway 是可选,需要另外安装。下面来分别介绍下他们各自的作用。

zabbix_agentd  ;
客户端守护进程,收集客户端数据,例如 cpu 负载、内存、硬盘使用情况等

zabbix_get ;
zabbix 工具,单独使用的命令,通常在 server 或者 proxy 端执行,用户获取被监控端数据,通常用于排错。例
如在 server 端获取不到客户端的内存数据,我们可以使用 zabbix_get 获取客户端的内容的方式来做故障排查。

zabbix_sender  ;
zabbix 工具,用于发送数据给 server 或者 proxy,通常用于耗时比较长的 check,并且与 trapper 配合使用。

zabbix_server  ;
zabbix 服务端守护进程。zabbix_agentd、zabbix_get、等等的数据最终都是提交到 server 的。
备注:不是数据主动提交给 zabbix_server, 大多数情况下都是 server 主动去取数据。

zabbix_proxy ;
zabbix 代理守护进程。功能类似 server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交
到 server 里。一般跨机房、地区的环境需要用到 proxy。

zabbix_java_gateway ;
zabbix2.0 之后引入的一个功能。顾名思义:Java 网关,类似 agentd,但是只用于 Java 方面。需要特别注意的
是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到 server 或者 proxy。

 

五  、zabbix  安装  ;

搭建环境 lamp

php 和 Apache 主要是为 zabbix 提供web 界面的 ,如果 服务器挂了不影响zabbix 正常监控,

因为 zabbix server 还在 ,只是 web 界面不能正常打开 ,mysql 千万不能出问题,如果出现问题

zabbix 也会出现问题,因为zabbix 需要实时往数据库里存数据,zabbix server 端只负责收集和写入数据,展示数据是WEB界面来执行的 


5.1 、 安装 HTTP  

     [[email protected] ~]# yum install httpd

5.2 、 安装MySQL 数据库 

    [[email protected] ~] # yum -y install mysql-server      

5.3 、安装 PHP 5.5  

 默认Base的php是5.3 ,但是 zabbix 3.0 要求php版本在5.4 以上
[[email protected] ~]# rpm -ivh http://repo.webtatic.com/yum/el6/x86_64/webtatic-release-6-9.noarch.rpm
yum -y install php55w php55w-mysql php55w-common php55w-gd php55w-mbstring php55w-mcrypt php55w-devel php55w-xml php55w-bcmath

注 ;如果系统里有 PHP 先把系统里的删除避免安装的时候出现错误 

   [[email protected] ~]# yum remove php*

5.4 、安装zabbix server 端 ;

  [[email protected] ~]#  rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
  [[email protected] ~]# yum -y install zabbix-web zabbix-server-mysql zabbix-web-mysql 

已安装:
  php55w.x86_64 0:5.5.38-1.w6                            php55w-bcmath.x86_64 0:5.5.38-1.w6        php55w-common.x86_64 0:5.5.38-1.w6             
  php55w-devel.x86_64 0:5.5.38-1.w6                      php55w-gd.x86_64 0:5.5.38-1.w6            php55w-mbstring.x86_64 0:5.5.38-1.w6           
  php55w-mcrypt.x86_64 0:5.5.38-1.w6                     php55w-mysql.x86_64 0:5.5.38-1.w6         php55w-xml.x86_64 0:5.5.38-1.w6                
  wqy-microhei-fonts.noarch 0:0.2.0-0.14.beta.el6        zabbix-get.x86_64 0:3.0.9-1.el6           zabbix-java-gateway.x86_64 0:3.0.9-1.el6       
  zabbix-server-mysql.x86_64 0:3.0.9-1.el6               zabbix-web.noarch 0:3.0.9-1.el6           zabbix-web-mysql.noarch 0:3.0.9-1.el6          

作为依赖被安装:
  dejavu-fonts-common.noarch 0:2.33-1.el6  dejavu-sans-fonts.noarch 0:2.33-1.el6  fping.x86_64 0:2.4b2-16.el6      iksemel.x86_64 0:1.4-2.el6      
  libmcrypt.x86_64 0:2.5.8-9.el6           pcre-devel.x86_64 0:7.8-7.el6          php55w-cli.x86_64 0:5.5.38-1.w6  php55w-pdo.x86_64 0:5.5.38-1.w6 
  t1lib.x86_64 0:5.1.2-6.el6_2.1          

完毕!
 

========================至此服务端的安装完成开始配置并启动zabbix等服务 ======================

六 、 配置Zabbix服务端

 6.1 、 Apache 、HTTP  不需要配置

 6.2  、mysql配置
    \cp /usr/share/mysql/my-medium.cnf /etc/my.cnf                     ---->> 备份一下 mysql 的配置文件 

    /etc/init.d/mysqld start                                                               ---->>  启动mysql 的服务 

mysql -uroot -e"create database zabbix character set utf8 collate utf8_bin;"            --->> 创建一个 zabbix 的数据库 
mysql -uroot -e"grant all on zabbix.* to [email protected]'localhost' identified by 'zabbix';"    --->>   创建用户zabbix  密码和授权 
mysql -uroot -e"flush privileges;"                                                                                      --->>  刷新使配置生效 

 zcat /usr/share/doc/zabbix-server-mysql-3.0.9/create.sql.gz |mysql -uzabbix -pzabbix zabbix    --->> 不解压查看压缩文件,上传到mysql中


6.3  、 php配置

sed -i.ori 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /etc/php.ini

egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone" /etc/php.ini

            PHP 修改的一些值都是在这里体现的 

            Zabbix 部署分布式全网监控系统 ;

6.4 、 配置zabbix server连接数据库

   sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf         ---->> 配置了zabbix 连接数据库的密码 


6.5  、配置Zabbix网页

  # 网页文件 
   cp -R /usr/share/zabbix/ /var/www/html/          ---->> zabbix web 的源代码复制到  /var/www/html/  这个目录  默认站点目录 

  # 文件授权
  chmod -R 755 /etc/zabbix/web
  chown -R apache.apache /etc/zabbix/web 

6.6  、 启动zabbix
  # 启动apache && zabbix
    echo "ServerName 127.0.0.1:80">>/etc/httpd/conf/httpd.conf
    /etc/init.d/mysqld start
    /etc/init.d/zabbix-server start
    /etc/init.d/httpd start
   

   ******************************************************************************************************

    正在启动 mysqld:                                                         [确定]                                          
    正在启动 httpd:                                                            [确定]
    Starting Zabbix server:                                                    [确定]            

  ******************************************************************************************************  

# 加入开机自启动
  cat>>/etc/rc.local<<EOF
 /etc/init.d/mysqld start
 /etc/init.d/httpd start
 /etc/init.d/zabbix-server start
 EOF

 
都完成后测试;在浏览器中 输入   “  http://10.0.0.61/zabbix  ”     可以访问到 Zabbix  的 WEB 界面离成功就进了一步 ;

     Zabbix 部署分布式全网监控系统 ;

 

七  、Zabbix 的网页配置  ;

   7.1  、Zabbix 的欢迎界面   直接点击  Next step 

      Zabbix 部署分布式全网监控系统 ;

      7.2  、这里需要确保 全部是   “OK”   才能进行下一步 ,如果出现错误就哪里出错改哪里 ,在PHP的配置文件中 。

    Zabbix 部署分布式全网监控系统 ;

     7.3  、 配置Zabbix 连接数据库

    Zabbix 部署分布式全网监控系统 ;

     7.4  、 填写网站的站点名称用于展示 ,自定义

   Zabbix 部署分布式全网监控系统 ;

   7.5  、 Zabbix  填写 信息确认,如不确认可返回上一步 。

  Zabbix 部署分布式全网监控系统 ;

   7.6  、 表示已经安装成功的界面  。

  Zabbix 部署分布式全网监控系统 ;

   7.7  、zabbix 的登陆界面  吼吼  ;

                                               Zabbix 部署分布式全网监控系统 ;

 

   7.8   、 登陆 Zabbix  后的WEB 展示界面 ,英文 的 Ծ‸Ծ

Zabbix 部署分布式全网监控系统 ;

  7.9  、这里可以更改为中文  “  点击小人头  ”;

  Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

更新之后就是中文的了  ;

Zabbix 部署分布式全网监控系统 ;      

 

八  、 安装  Zabbix -agent 客户端  ;

      只要是你所有想要监控的服务器都需要安装 Agent 客户端  ,这里我只安装两台   

[[email protected] ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
Retrieving http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
warning: /var/tmp/rpm-tmp.XI5XON: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
Preparing...                ########################################### [100%]
   1:zabbix-agent         ########################################### [100%]

 

[[email protected] ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
Retrieving http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
warning: /var/tmp/rpm-tmp.idlhql: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
Preparing...                ########################################### [100%]
   1:zabbix-agent         ########################################### [100%]

 

8.1 、配置 Agent  客户端配置文件  ;

修改这个“  /etc/zabbix/zabbix_agentd.conf   ”配置文件 ,这行是表示告诉客户端他的服务端是谁允许谁来获取客户端服务器的信息 ;
[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf                        ---->> 方法 1 修改  

Zabbix 部署分布式全网监控系统 ;

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf                    ---->> 方法 2 修改   

注意 : 所有设备执行  ;

 

8.2  、 启动 zabbix-agent   ;

[[email protected] ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [确定]
 

 

[[email protected] ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [确定]
 

8.3  、 简单测试一下看能不能出现数据 ,如果不能正常显示这个数据说明配置有问题也可能是防火墙的问题 ;

[[email protected] ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
0.500000
[[email protected] ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "system.cpu.load[all,avg1]"
0.040000
[[email protected] ~]# 
 

问题1 ;
在执行以上命令的时候,出现以下报错,说明是防火墙和selinux 的问题关闭防火墙和 selinux 即可 ;
[[email protected] ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get [4006]: Get value error: cannot connect to [[172.16.1.8]:10050]: [113] No route to host

 

九  、网页操作第二波 ;

 添加第一个主机,这里zabbix 有个模板,就改下模板即可,比较简单 ;

 在添加监控的时候   “ 主机名称这里需要填写设备真实的名称 ”  ,“ 可见名称 ”,用于展示给自己看,配置完后点击最下方的  “ 更新 ”

Zabbix 部署分布式全网监控系统 ;

 配置完后 “ 状态 ”  那里显示的是 停用的点击启用设备即可, 刷新一下页面 “ 可用性 ” 那里 ZBX 绿色就表示添加监控成功 ;  

Zabbix 部署分布式全网监控系统 ;

9.1 、 新添加主机 ;

点击 -- 配置 -- 主机 上角有个  “  创建主机  ”  点击创建主机 

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

其他默认不填,暂时不要点   “  添加  ”      点击  “  模板 ”  这里需要关联模板,因为我们是 linux 系统,直接关联linux 的模板,在链接指示器中直接   “linux”  会弹出 2条模板信息,我们选择 第1条,点击小的  “  添加 ” ,即可 

Zabbix 部署分布式全网监控系统 ;

添加完成后,完成后点击最后的一个大的  “  添加 ”

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

这里就显示了 2 台主机了 ,后续在有服务器同样的添加步骤  ;

Zabbix 部署分布式全网监控系统 ;

 9.2 、 查看监控数据 ;

Zabbix 部署分布式全网监控系统 ;

    zabbix  在2.0 的时候 默认是全部都展示的,这样比较耗费资源 ,3.0 后这里是可选项 自己想看那台设备通过过滤就可以 。

 

 9.3  、以图形的方式查看 ,并解决zabbix 中文乱码 

Zabbix 部署分布式全网监控系统 ;

解决zabbix中文乱码
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

 刷新页面字体可以正常显示 

Zabbix 部署分布式全网监控系统 ;

查看网卡的监控状态

Zabbix 部署分布式全网监控系统 ;

 

十  、Zabbix 自定义监控  ;

[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf      --->>  在 被监控端操作 ;

Zabbix 部署分布式全网监控系统 ;

UserParameter=login-user,who | wc -l      (who | wc -l  这条命令的结果会赋值给 login-user  )

 

[[email protected] ~]# /etc/init.d/zabbix-agent restart                   ----->> 重启zabbix-agent  ;
Shutting down Zabbix agent:                                [失败]
Starting Zabbix agent:                                         [确定]
 

 

在crt 中多复制几个窗口 ,  在zabbix监控端使用 zabbix_get 查看 ;

Zabbix 部署分布式全网监控系统 ;

[[email protected] ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "login-user"     

                                          指定IP地址    10050  是agent 的端口号     -k 表示是你要获取哪个  key 的数据
 

十一   、 zabbix 网页添加自定义监控 ;

   Zabbix网页添加自定义监控步骤 ;  ( 添加模板 - 添加应用集 - 添加监控项  - 添加触发器  - 添加图形 )

10.1  添加模板   ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

 完成以上步骤之后点击最下方的 “  添加 ”    即可完成 模板的创建  ;

 添加完成的模板  ;

Zabbix 部署分布式全网监控系统 ;

 

10.2  、 添加应用集  ; 

 应用集: 一个目录,统一存放具有相关性的监控项  

Zabbix 部署分布式全网监控系统 ;

添加一个应用集的目录名称 ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

 

10.3 、 添加监控项  ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

 历史数据最好保存的时间短一点  2周最多1个月 即可 ,添加完成的监控项 

Zabbix 部署分布式全网监控系统 ;

10.4  、添加触发器  ;

  选择触发器, 名称是展示给自己看的自己能看明白就行,表达直接选择 添加 ,

Zabbix 部署分布式全网监控系统 ;

添加表达式  ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

10.5 、 添加图形  ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

 

   UserParameter=<key>,<shell command>
   UserParameter=login-user,who|wc -l

   服务端m01检查自定义key的结果
   zabbix_get -s 172.16.1.8 -p 10050 -k "login-user"

自定义监控核心: 会写自定义参数,前边的 key 值 后边的命令或者是是脚本 ,服务端能获取到数据,剩下的就是 web 页面点点,关联模板

===========================至此模板创建流程结束=========================================

 

十一  、 把需要监控的主机关联模板  ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

查看监控数据  ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

 

监控方法 ;

监控备份服务器,简单的办法就是监控rsync 的端口 , ;

配置 - 模板 -创建模板 ,

Zabbix 部署分布式全网监控系统 ;

添加应用集 “ 名称 ”

Zabbix 部署分布式全网监控系统 ;

添加监控项 

Zabbix 部署分布式全网监控系统 ;

在监控项的键值 这里 可以选择 zabbix 自带的 

Zabbix 部署分布式全网监控系统 ;

 

2, 监控 MySQL 服务器 ,简单的方法是监控MySQL的 3306 端口 ,或者使用zabbix 提供的 MySQL 模板 ;

3, URL 地址监控   ;

   点击   WEB  监测 ,详细见下图 

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

 

十二  、 配置zabbix 的聚合图形  ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

点击  “更改”   就出现这个界面啦  !

Zabbix 部署分布式全网监控系统 ;

这里是添加了 2台服务器的  eth0 和 eth1  的网卡 信息 ;

Zabbix 部署分布式全网监控系统 ;

 

十三  、 Zabbix  自动发现 自动注册 功能 

自动发现是服务端发现客户端 ,                  主动模式:主动去发现客户端, 服务端的压力比较大   ;
自动注册是客户端主动到服务端登记信息  , 被动模式:客户端主动的到服务端去注册,服务端压力较小  ;

 

 自动发现 :

 由于电脑配置问题,我这里直接把 web01 这台主机删除 ,也可以自己再开一台虚拟机 ;

Zabbix 部署分布式全网监控系统 ;

这里是默认的,可以直接在这个上边直接配置了  ;

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

记得把  “已启用”  的勾上 。

自动发现后,配置 “ 动作 ”

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

这里 “ 条件 ” 暂时不需要配置默认即可,直接配置  “ 操作 ”  新增 添加主机 和 启用主机 , 最后点击 (更新) 即可 。

Zabbix 部署分布式全网监控系统 ;

配置完成后我们到  (监测中) - (自动发现) 中发现这台设备已经扫描到了  ;

Zabbix 部署分布式全网监控系统 ;

看已经把主机自动添加了  ;

Zabbix 部署分布式全网监控系统 ;

 

自动注册  ;

修改web01 的配置文件 

[[email protected] ~]# sed -i.ori  's#ServerActive=127.0.0.1#ServerActive=172.16.1.61#g;s#Hostname=Zabbix server#Hostname=web01#;176a HostMetadataItem=system.uname' /etc/zabbix/zabbix_agentd.conf

[[email protected] ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [确定]
Starting Zabbix agent:                                     [确定]
[[email protected] ~]# 
 

页面操作  :

 把 开始配置的 自动发现 和 动作 全部停掉 ,点进去 把已启用的勾去掉即可  ;

Zabbix 部署分布式全网监控系统 ;

删除  刚才发现的 web01  机器  ;

Zabbix 部署分布式全网监控系统 ;

之后到配置里边选择 “ 自动注册 ”  

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

主机元数据,就是只要是包含 Linux 的就触发这个条件 

Zabbix 部署分布式全网监控系统 ;

Zabbix 部署分布式全网监控系统 ;

已经发现了 

Zabbix 部署分布式全网监控系统 ;

 

十四  、zabbix  分布式监控 ;

zabbix 默认只能监控同一个局域网的机器 

确认环境 ;

Zabbix 部署分布式全网监控系统 ;

[[email protected] ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm       --->> 安装rpm包
Retrieving http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
warning: /var/tmp/rpm-tmp.FkAsMo: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
Preparing...                ########################################### [100%]
1:zabbix-release         ########################################### [100%]
[[email protected] ~]# yum -y install zabbix-proxy-mysql                                 ---->>  使用yum  安装zabbix-proxy 

已安装:
  zabbix-proxy-mysql.x86_64 0:3.0.21-1.el6                                                                                                          

作为依赖被安装:
  OpenIPMI-libs.x86_64 0:2.0.16-14.el6                                          fping.x86_64 0:2.4b2-16.el6                                         

完毕!

 

zabbix proxy 也是需要数据库存储相关的配置信息,但是不存储监控数据(只存在server上)

生产环境:在proxy  上是需要安装数据库,当然也可以专门找一台数据库服务器  本次操作将借助现成的m01的mysql 数据库 。

[[email protected] ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6979
Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database zabbix_proxy character set utf8 collate utf8_bin;   --->> 创建数据库
Query OK, 1 row affected (0.21 sec)

mysql> grant all privileges on zabbix_proxy.* to [email protected]'172.16.1.%' identified by 'zabbix';         --->> 进行授权
Query OK, 0 rows affected (0.17 sec)

mysql> 
 

[email protected] ~]# mysql -uzabbix -pzabbix -h172.16.1.61        --->>  验证操作 在web01 上可以正常连接上数据库
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7254
Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;           ---->>  web01 上查看是否有刚才创建的数据库 zabbix_proxy    ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix_proxy       |
+--------------------+
3 rows in set (0.15 sec)


导入数据库  ;

[[email protected] ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.0.21/schema.sql.gz |mysql -uzabbix -pzabbix -h172.16.1.61 zabbix_proxy
 

修改 zabbix proxy    配置文件 ;

vim /etc/zabbix/zabbix_proxy.conf
  Server=127.0.0.1
   Hostname=Zabbix proxy
   DBHost=localhost
   DBPassword=

上边的 vim 简化为  :
       [[email protected] ~]# sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#;s#Hostname=Zabbix proxy#Hostname=web01#;155a                 DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf

      [[email protected] ~]# sed -i '128a DBHost=172.16.1.61' /etc/zabbix/zabbix_proxy.conf
 

       [[email protected] ~]# /etc/init.d/zabbix-proxy start
 

 

配置 zabbix Agent   ;

[[email protected] ~]# sed -i 's#172.16.1.61#172.16.1.8#g' /etc/zabbix/zabbix_agentd.conf    --->> 把IP地址改为 proxy 的IP地址 
[[email protected] ~]# 
[[email protected] ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [确定]
Starting Zabbix agent:                                         [确定]
[[email protected] ~]# 
 

WEB 页面操作  ;

关联 proxy ,将代理节点注册到zabbix server 

Zabbix 部署分布式全网监控系统 ;
 Zabbix 部署分布式全网监控系统 ;       

Zabbix 部署分布式全网监控系统 ;

   =====================================分布式到此结束=================================

 

SNMP监控

    ZBX  zabbix agent客户端监控
    SNMP 简单网络管理协议
    JMX  监控java程序
    IPMI 硬件监控

     yum -y install net-snmp net-snmp-utils

        配置snmp
        sed -i.ori '57a view systemview   included  .1' /etc/snmp/snmpd.conf
        /etc/init.d/snmpd start
        
        使用SNMP
        [[email protected] ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
        
        # snmpwalk 类似 zabbix_get
        # -v 2c  指定使用snmp协议的版本  snmp分为v1 v2 v3
        # -c public  指定暗号
        # sysname  类似zabbix的key

 

附录 

监控的可用性 ;

Zabbix 部署分布式全网监控系统 ;

监控常用命令 ;

[[email protected] ~]# lscpu                                  ----.>>>  查看CPU 信息 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
Stepping:              9
CPU MHz:               2501.000
BogoMIPS:              5002.00
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0
[[email protected] ~]# 
 

[[email protected] ~]# uptime                                --->>> 查看系统负载 
 18:03:02 up 1 day, 14:50,   2 users,   load average:   0.01, 0.03, 0.00
   什么时间开机                      用户           平均负载       1,5 and 15 分钟 

[[email protected] ~]# top                          ----->>>   查看实时负载 
top - 18:09:01 up 1 day, 14:56,  2 users,  load average: 0.00, 0.00, 0.00              ---->>> 负载信息
Tasks: 109 total,   1 running, 108 sleeping,   0 stopped,   0 zombie                 ----->>> 进程状态统计 
Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st           --->> 显示CPU的使用率

us(表示用户使用CPU百分比),sy(系统使用CPU百分比),id(空闲CPU使用百分比)
在  top 下 按数字键 “1”  切换显示CPU 使用率和每个CPU使用率核数 , 

Mem:   1004112k total,   486060k used,   518052k free,    91544k buffers   
                     总使用             使用的                  剩余的                 buffers的 

Swap:   204796k total,        0k used,   204796k free,   212556k cached

PID   USER      PR  NI  VIRT  RES  SHR S   %CPU   %MEM     TIME+  COMMAND
PID值 用户        显示的进程信息            CPU    内存      进程运行时间      
22988 root      20   0 15028 1316 1004 R  0.3  0.1   0:00.04 top                                                        
     1 root      20   0 19364 1540 1236 S  0.0  0.2   0:01.54 init                                                       
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                   
     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                
     4 root      20   0     0    0    0 S  0.0  0.0   0:00.32 ksoftirqd/0             

top 下的小技巧 ;

按字母 z 加底色 ,按字母 x 高亮排序 默认是以CPU 排序  “ <  > ”  大于和小于的符号  左右移动

[[email protected] ~]# hdparm -t /dev/sda    --->> 测试磁盘读的速度 

/dev/sda:
 Timing buffered disk reads: 224 MB in  3.01 seconds =  74.40 MB/sec
[[email protected] ~]#

 

 
[[email protected] ~]# iotop     ---->>>  动态的查看磁盘的  IO  读写  ,需要 yum 安装 

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                              
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
 

[email protected] ~]# iftop            ---->>  查看网络接口的实时流量   需要 yum 安装  或者 rpm  
interface: eth0        ---->>默认监控的是  eth0  
IP address is: 10.0.0.61    
MAC address is: 00:0c:29:28:ff:1a
[[email protected] ~]# 
Zabbix 部署分布式全网监控系统 ;

[[email protected] ~]# nethogs     --->>查看每个进程的流量 (也是需要 yum安装 或者是rpm 包 )

Zabbix 部署分布式全网监控系统 ;

 

 

附录Zabbix 简单优化  ;

服务器硬件

想通过几个简单的配置让服务器提高成倍的性能,想法很好,但是基本不太现实。简单的说,你需要搭配更好的CPU、更大的内存,更快的硬盘:条件允许的花,可以考虑购买SSD,它比更大的cpu和更大的内存带来的效果更好,或者考虑使用SAS 15K硬盘,组raid等等,总之一句话,配置优化不动的情况,增加硬件投入,

操作系统

使用最新的操作系统,优化、定制化操作系统内核。应该会有些作用,但是肯定不大。

数据库优化

DBsock优化

如果MySQL和zabbix server在同一台服务器上,socket连接要比tcp连接要更快。

数据库分离

将数据库服务器独立,数据库和zabbix资源互相独立,例如:可以购买一台RDS

数据库引擎

使用MySQL5.6或者更高版本,自从MySQL被Oracle收购了,它的性能确实有不少的提升。请一定选择innodb,别选择myisam,因为zabbix在innodb的性能比在myisam快1.5倍,而且myisam不安全,zabbix监控数据量很大,一旦表坏了,那就是一个悲剧。

mysql分区,history等等表数据量较大,可以试着分区替身性能。

其他优化

1、减少history保存时间

2、减少item获取间隔时间

3、减少不必要的监控项