zabbix的主动模式监控和zabbix-proxy分布式监控

一 zabbix的主动模式监控

当zabbix_server端当主机数量过多的时候,虽然能够经过增长代理的方式来进行收集数据,可是须要增长proxy机,因此还能够经过zabbix_agent主动往由Server端去发生数据来解决,不然,Zabbix会出现严重的性能问题,主要表现以下: 
1、当被监控端主机过多时,web操做很卡,容易出现502,已经数据库等方面的问题。
2、容易形成图层断裂。
3、开启的进程(Pollar)太多,即便减小item数量,之后加入必定量的机器也会有问题

因此下面主要往两个优化方向考虑: 
1、添加Proxy节点作分布式监控 
2、调整Agentd为主动模式

如下操做为调整Agentd为主动模式的优化方式:
1.新建主机server3(ip为172.25.17.3),并在server3端安装zabbix-agent:mysql

[root@server3 mnt]# rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm 
warning: zabbix-agent-3.4.6-1.el6.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                ########################################### [100%]
   1:zabbix-agent           ########################################### [100%]

2在Zabbix管理界面修改模板做为主动模式的模板:
找到模板Template OS Linux:
这里写图片描述
点击模板进入模板内部界面,点击最下方‘全克隆’用来克隆一个主动模式的模板:
这里写图片描述
全克隆以后,在新的模板页输入新模板的名字Template OS Linux-active,以后点击添加:linux

这里写图片描述
在模板夜里找到刚才新建的模板,点击监控项:
这里写图片描述
进入模板页选中所有监控项:
这里写图片描述
选中以后最下方点击批量更新:
这里写图片描述
接下来在类型里选择主动式:
这里写图片描述
到此模板就制做完成了。web

3.新建被监控agent:
编辑agent的配置文件:sql

[root@server3 mnt]# vim /etc/zabbix/zabbix_agentd.conf 

设定Server为zabbix-server服务端的ip:数据库

95 # Server=
 96 
 97 Server=172.25.17.11

设定客户端agent模式:vim

120 # Range: 0-100
121 # Default:
122 StartAgents=3     #设定客户端agent模式,0表示禁用被动模式
123

设定ServerActive为zabbix-server端ip:ruby

137 
138 ServerActive=172.25.17.11
139 ### Option: Hostname

设定主机名:
这里的主机名须要和本机主机名一致,而且在本机和server端的/etc/hosts文件中有相应解析:bash

147 
148 Hostname=server3
149 
150 ### Option: HostnameItem

配置文件设定完成以后开启zabbix-agent服务:app

[root@server3 mnt]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]

查看端口10050开启:ssh

[root@server3 mnt]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      922/sshd            
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      998/master          
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      2092/zabbix_agentd  
tcp        0      0 172.25.17.3:22              172.25.17.250:33584         ESTABLISHED 1388/sshd           
tcp        0      0 :::22                       :::*                        LISTEN      922/sshd            
tcp        0      0 ::1:25                      :::*                        LISTEN      998/master          
tcp        0      0 :::10050                    :::*                        LISTEN      2092/zabbix_agentd
  1. 配置server3主机
    在zabbix管理页面,点击建立主机:
    写入主机名和群组,设定ip地址为172.25.17.3,端口为10050:
    这里写图片描述
    点击模板添加模板:
    这里写图片描述
    点击选择,选中刚才新建的模板:
    这里写图片描述
    点击添加,看到连接的模板里有新建的模板才算成功:
    这里写图片描述
    以后点击添加主机,就能够在主机界面看到新加的主机server3:
    若是在配置文件中设定StartAgents=0即表示被动模式,这里的ZEX将会时灰色的。
    这里写图片描述
    同时也能够在模板界面看到新增的模板对应主机server3:
    这里写图片描述
    这样就设定完成了。

二 zabbix-proxy的分布式监控(代理)

1.在server2(ip为172.25.17.2)端编辑zabbix-agent的配置文件:

[root@server2 bin]# vim /etc/zabbix/zabbix_agentd.conf 

设定server3为server2的代理:

95 # Server=
 96 
 97 Server=172.25.17.3
 136 # ServerActive=
 137 
 138 ServerActive=172.25.17.3

配置文件保存退出后重启zabbix-agent服务:

[root@server2 bin]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]

2.在server3端停掉zabbix-agent服务并安装fping,用于linux redhat6版本的zabbix-proxy-mysql和mysql-server:

[root@server3 mnt]# /etc/init.d/zabbix-agent stop
Shutting down Zabbix agent:                                [  OK  ]
[root@server3 mnt]# yum install fping-2.4b2-16.el6.x86_64.rpm zabbix-proxy-mysql-3.4.6-1.el6.x86_64.rpm mysql-server -y

开启数据库服务:

[root@server3 mnt]# /etc/init.d/mysqld start

3.配置数据库:

[root@server3 mnt]# mysql #进入数据库
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;    #建立代理数据库
Query OK, 1 row affected (0.00 sec)  

mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'westos';     #用户受权
Query OK, 0 rows affected (0.00 sec)

进入zabbix-proxy-mysql安装目录进行配置:

[root@server3 mnt]# cd /usr/share/doc/zabbix-proxy-mysql-3.4.6/
[root@server3 zabbix-proxy-mysql-3.4.6]# zcat schema.sql.gz | mysql -u zabbix -p zabbix_proxy
Enter password:    #输入密码后会有一个等待时间但并非卡住,只要等待就好。不要ctrl+c中断
[root@server3 zabbix-proxy-mysql-3.4.6]# /etc/init.d/zabbix-proxy start #开启服务
Starting Zabbix proxy:                                     [  OK  ]

配置zabbix-proxy:
进入/etc/zabbix目录编辑zabbix配置文件:

[root@server3 zabbix-proxy-mysql-3.4.6]# cd /etc/zabbix/
[root@server3 zabbix]# vim zabbix_proxy.conf 

设定:

22 # Server=
 23 
 24 Server=172.25.17.11 #设定server为zabbix-server端

 41 # Hostname=
 42 
 43 Hostname=server3  #设定主机名

 190 DBPassword=westos   #设定数据库密码
 191 
 192 ### Option: DBSocket
 193 # Path to MySQL socket.
 194 #
 195 # Mandatory: no
 196 # Default:
 197 DBSocket=/var/lib/mysql/mysql.sock  #设定数据库socket

5.代理设置:
在“管理”项中选择”agent代理程序“:
这里写图片描述
点击右上角建立代理:
设定server3为server2(172.25.17.2)的代理:
这里写图片描述
添加成功:
这里写图片描述
结果:
主机页面server3成为172.25.17.2的代理:
这里写图片描述

在server3端查看日志:

[root@server3 mysql]# vim /var/log/zabbix/zabbix_proxy.log

能够看到来自172.25.17.11(zabbix-server端)的数据:
这里写图片描述