Zabbix的主被动模式监控与Zabbix Proxy分布式监控

Zabbix的主动模式与被动模式:
zabbix客户端分数据给服务端分为主被动两种模式
主动模式是zabbix客户端主动向服务端发送数据,被动模式是被动等待服务端来取数据。

主动模式:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动模式:server向agent请求获取监控项的数据,agent返回数据。

实验前提:

已经完成了zabbix的安装部署(zabbix-server),并且添加了server2主机(zabbix-agent)

点击此处即可查看zabbix的安装部署详细步骤

1.主被动模式监控

默认是被动的监控模式,即zabbix-server端主动连接zabbix-agent端;
当agent的数量太多时,server端连接压力过大,为了减少server端的开销,直接让agent端主动连接server端

实验环境:

server1:172.25.66.1  zabbix-server
server2:172.25.66.2  zabbix-agent
(1).主动模式

配置网页:

1.全克隆Template OS Linux模板
.在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.更新监控项:设定为zabbix-agent(客户端)主动连接模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.将更新后的模板添加到server2主机中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置agent端:

1.更改配置文件

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
#################
# Server=172.25.66.1   #关闭被动模式(拒绝zabbix-server主动连接zabbix-agent)
StartAgents=0          #禁用被动模式(二者需同时设定才能生效)

在这里插入图片描述
在这里插入图片描述
2.重启zabbix-agent

[root@server2 ~]# systemctl restart zabbix-agent
#3.发现zabbix-agent服务端口消失
[root@server2 ~]# netstat -antlp | grep :10050

测试:

发现问题:查看主机,发现zabbix-agent主动连接失败,因为虽然server2主机添加过更新后的Template OS Linux模板(即:Template OS Linux - Active 模板),它设定的是主动连接,但我们可以发现此模板还有一个链接的Template App Zabbix Agent模板,但它并没有设定为主动连接模式,而zabbix-agent关闭了被动连接模式,故而出现连接失败问题

在这里插入图片描述
解决问题:

方案1:更改Template App Zabbix Agent模板的连接方式为主动连接(操作同上),但这样显然很麻烦,如果链接模板很多,难道都一个一个的更改吗?这样显然效率很低

方案2: 在zabbix-agent端,更改连接方式为主被动连接均可(主被动模式),这种方式效率更高。

(2).主被动模式

配置agent端:

1.更改配置文件

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
#################
Server=172.25.66.1      #主被动连接同时开启
StartAgents=5         

在这里插入图片描述
在这里插入图片描述
2.重启zabbix-agent

[root@server2 ~]# systemctl restart zabbix-agent
#查看端口
[root@server2 ~]# netstat -antlp | grep :10050

在这里插入图片描述测试:

1.刷新网页:发现此时server2主机(zabbix-agent端)主动连接zabbix-server成功

在这里插入图片描述
2.为了进一步验证,点击预览CPU图形,发现有数据,说明主动连接成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.添加proxy代理

默认是zabbix-server主动连接zabbix-agent,当agent端有防火墙阻挡时,而我们一般在实际生产环境中不能直接添加防火墙策略。所以此时proxy代理便显得尤为重要。
zabbix-server  ----->  zabiix-proxy  ------> zabbix-agent

proxy端先采集agent端的数据,server端直接连接proxy端获取数据即可,便无需server主动连接agent

实验环境:

server1:172.25.66.1  zabbix-server
server2:172.25.66.2  zabbix-agent
server3:172.25.66.3  zabbix-proxy

配置proxy端:

1.更改主机名

#更改主机名,便于区分
[root@server3 ~]# hostname proxy
[root@server3 ~]# hostname
proxy
[root@server3 ~]# exit
logout
Connection to 172.25.66.3 closed.
[root@foundation66 ~]# ssh [email protected]
[email protected]'s password: 
Last login: Mon Mar 11 00:20:00 2019 from foundation66.localdomain

2.添加解析

所有server,agent,proxy结点都需要添加解析
#添加解析
[root@proxy ~]# vim /etc/hosts

在这里插入图片描述

#测试
[root@proxy ~]# ping -c1 -w1 proxy

在这里插入图片描述

[root@server1 ~]# vim /etc/hosts

在这里插入图片描述

[root@server2 ~]# vim /etc/hosts

在这里插入图片描述
3.在网页上添加proxy代理程序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.下载并安装zabbix-proxy-mysql

安装包:

#依赖包
fping-3.10-1.el7.x86_64.rpm    
#proxy-mysql安装包  
zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
[root@proxy ~]# ls
fping-3.10-1.el7.x86_64.rpm  zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
[root@proxy ~]# yum install -y *

5.配置数据库

(1).安装并开启数据库

[root@proxy ~]# yum install -y mariadb-server
[root@proxy ~]# systemctl start mariadb

(2).初始化

#初始化,更改密码
[root@proxy ~]# mysql_secure_installation 

(3).创建zabbix_proxy数据库并授权

[root@proxy ~]# mysql -uroot -pwestos
#创建数据库
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
#授权
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'westos';

在这里插入图片描述
(4)导入数据

[root@proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.5/
[root@proxy zabbix-proxy-mysql-4.0.5]# ls
AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql.gz
#将数据导入zabbix_proxy数据库;-p表示数据库,而不是密码
[root@proxy zabbix-proxy-mysql-4.0.5]# zcat schema.sql.gz | mysql -u zabbix -p zabbix_proxy
Enter password: 

(5)测试数据库

#若是能登陆,即说明数据库配置成功
[root@proxy zabbix-proxy-mysql-4.0.5]# mysql -u zabbix -p zabbix_proxy

在这里插入图片描述
6.配置proxy

[root@proxy ~]# cd /etc/zabbix/
#1.更改配置文件
[root@proxy zabbix]# vim zabbix_proxy.conf 
####################
Server=172.25.66.1         #指向zabbix-server(server主动连接proxy)
ServerPort=10051           #指定端口
Hostname=proxy             #本机的主机名(要做解析)

DBPassword=westos          #数据库密码

JavaGateway=172.25.66.1    #指定java网关(java-gateway服务器地址)      (注意:因为我之前做了监控java应用,若没有可以不写)
JavaGatewayPort=10052      #监听端口(java-gateway服务器端口)
StartJavaPollers=5         #java轮询器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#2.开启zabbix-proxy
[root@proxy zabbix]# systemctl start zabbix-proxy
#查看端口
[root@proxy zabbix]# netstat -antlp | grep :10051

在这里插入图片描述
7.查看日志

#查看日志,发现received(已接收),说明proxy配置成功
[root@proxy zabbix]# cat /var/log/zabbix/zabbix_proxy.log 

在这里插入图片描述

#查看日志,发现sending(已发送)
[root@server1 ~]# cat /var/log/zabbix/zabbix_server.log 

在这里插入图片描述
此时查看proxy代理程序的状态,发现为开
在这里插入图片描述
配置agent:

1.更改配置文件

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
#################
 98 Server=172.25.66.3
139 ServerActive=172.25.66.3

在这里插入图片描述
在这里插入图片描述
2.重启zabbix-agent

[root@server2 ~]# systemctl restart zabbix-agent

3.在server2主机中添加proxy代理
在这里插入图片描述
在这里插入图片描述
测试:

1.刷新网页,查看主机,发现proxy代理成功

注意: proxy:server2 仅表示server2主机添加了proxy代理,当可用性栏目中的ZBX和JMX为绿色(可用)时,才说明proxy代理成功

在这里插入图片描述2.查看日志

#先重启zabbix-agent
[root@server2 ~]# systemctl restart zabbix-agent
#再查看日志,只要没有failed报错,即添加代理成功
[root@server2 ~]# cat /var/log/zabbix/zabbix_agentd.log

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lilygg/article/details/88384866