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:

[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:
zabbix的主动模式监控和zabbix-proxy分布式监控_第1张图片
点击模板进入模板内部界面,点击最下方‘全克隆’用来克隆一个主动模式的模板:
zabbix的主动模式监控和zabbix-proxy分布式监控_第2张图片
全克隆之后,在新的模板页输入新模板的名字Template OS Linux-active,之后点击添加:

zabbix的主动模式监控和zabbix-proxy分布式监控_第3张图片
在模板夜里找到刚才新建的模板,点击监控项:
zabbix的主动模式监控和zabbix-proxy分布式监控_第4张图片
进入模板页选中全部监控项:
zabbix的主动模式监控和zabbix-proxy分布式监控_第5张图片
选中之后最下方点击批量更新:
zabbix的主动模式监控和zabbix-proxy分布式监控_第6张图片
接下来在类型里选择主动式:
zabbix的主动模式监控和zabbix-proxy分布式监控_第7张图片
到此模板就制作完成了。

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

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

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

 95 # Server=
 96 
 97 Server=172.25.17.11

设定客户端agent模式:

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

设定ServerActive为zabbix-server端ip:

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

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

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

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

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

查看端口10050开启:

[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:
    zabbix的主动模式监控和zabbix-proxy分布式监控_第8张图片
    点击模板添加模板:
    zabbix的主动模式监控和zabbix-proxy分布式监控_第9张图片
    点击选择,选中刚才新建的模板:
    zabbix的主动模式监控和zabbix-proxy分布式监控_第10张图片
    点击添加,看到链接的模板里有新建的模板才算成功:
    zabbix的主动模式监控和zabbix-proxy分布式监控_第11张图片
    之后点击添加主机,就可以在主机界面看到新加的主机server3:
    如果在配置文件中设定StartAgents=0即表示被动模式,这里的ZEX将会时灰色的。
    zabbix的主动模式监控和zabbix-proxy分布式监控_第12张图片
    同时也可以在模板界面看到新增的模板对应主机server3:
    zabbix的主动模式监控和zabbix-proxy分布式监控_第13张图片
    这样就设定完成了。

二 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代理程序“:
zabbix的主动模式监控和zabbix-proxy分布式监控_第14张图片
点击右上角创建代理:
设定server3为server2(172.25.17.2)的代理:
zabbix的主动模式监控和zabbix-proxy分布式监控_第15张图片
添加成功:
zabbix的主动模式监控和zabbix-proxy分布式监控_第16张图片
结果:
主机页面server3成为172.25.17.2的代理:
zabbix的主动模式监控和zabbix-proxy分布式监控_第17张图片

在server3端查看日志:

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

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

你可能感兴趣的:(原创)