zabbix监控之zabbix-agent被动变为主动,搭建Proxy代理

zabbiz环境配置参考这篇博客
JMX监控参考这篇中的java模块的添加

1.Agent被动变为主动:

环境设定

base2 172.25.78.12 zabbix-server
base3 172.25.78.13 zabbix-agent

开启服务

# 在服务端
[root@base2 ~]# systemctl start zabbix-server
[root@base2 ~]# systemctl start zabbix-agent
[root@base2 ~]# systemctl start httpd
[root@base2 ~]# systemctl start zabbix-java-gateway
[root@base2 ~]# systemctl start mariadb

# 在客户端
[root@base3 bin]# systemctl start zabbix-agent
[root@base3 ~]# cd /usr/local/tomcat/
[root@base3 tomcat]# cd bin/
[root@base3 bin]# ./startup.sh 

我们克隆一个模块来实现我们的功能

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

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

# 回到agent端配置
[root@base3 zabbix]# pwd
/etc/zabbix
[root@base3 zabbix]# vim zabbix_agentd.conf 
 98 # Server=172.25.78.12    # 关闭服务端的连接     
123 StartAgents=0         # 在被动模式下,此参数用于设置控制监听进程可启用的子进程的数量,若监控项较多
                                      且采集很频繁,建议加大此数值 ;若此数值为0,则禁止使用被动模式。另外,一般
                                      情况,不建议修改此数值,当且仅当某些监控项无法采集到数据,或数据采集数据
                                      有延迟现象时,可调整。第四,启用线程越多,则相对越耗系统资源。此处只想说明
                                      有这个功能
[root@base3 zabbix]# systemctl restart zabbix-agent
[root@base3 zabbix]# netstat -antlp  | grep 10050    # 查看不到agent端口,说明此主机已经不是agent了
刷新网页,base3的zabbix不可用,此时的base3为服务端

在这里插入图片描述

恢复agent身份
[root@base3 zabbix]# vim zabbix_agentd.conf 
 98 Server=172.25.78.12
123 # StartAgents=3
[root@base3 zabbix]# systemctl restart zabbix-agent
[root@base3 zabbix]# netstat -antlp  |grep :10050   # agent端口出现,身份恢复

在这里插入图片描述

3.Proxy代理

环境设定

base2 172.25.78.12 zabbix-server
base3 172.25.78.13 zabbix-agent
base4 172.25.78.14 zabbix-proxy

概述:

  zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上
分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式、分布式监控.

zabbix proxy使用场景:

	1.监控远程区域设备
	2.监控本地网络不稳定区域
    3.当zabbix监控上千设备时,使用它来减轻server的压力
	4.简化zabbix的维护

在这里插入图片描述

  zabbix proxy仅仅需要一条tcp连接到zabbix server,所以防火墙上仅仅需要加上一条规则即可.zabbix proxy
数据库必须和server分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。总之记住,数据库分开即可。

  proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server.这个时间由
proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定.

  zabbix proxy只是一个数据收集器,它不计算触发器、不处理事件、不发送报警
先在网页上添加好proxy

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

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

agent使用 agent active模式

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

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

回到proxy主机,开始配置
[root@base4 ~]# hostnamectl set-hostname proxy    # 修改主机名,方便操作
[root@base4 ~]# reboot
[root@proxy ~]# vim /etc/hosts
172.25.78.14 base4  proxy
[root@proxy ~]# systemctl stop zabbix-agent    # 关闭agent功能
[root@proxy ~]# ls
zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
fping-3.10-1.el7.x86_64.rpm
[root@proxy ~]# yum install -y fping-3.10-1.el7.x86_64.rpm zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
[root@proxy ~]# yum install -y mariadb-server
[root@proxy ~]# systemctl start mariadb
[root@proxy ~]# mysql -p     # 没有密码,登录数据库
Enter password: 
MariaDB [(none)]> show databases;

在这里插入图片描述

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';
MariaDB [(none)]> quit

[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
[root@proxy zabbix-proxy-mysql-4.0.5]# zcat schema.sql.gz | mysql zabbix_proxy   # 给zabbix_proxy数据库导入数据
[root@proxy zabbix-proxy-mysql-4.0.5]# mysql -u zabbix -p zabbix_proxy  #  以zabbix用户登录zabbix_proxy数据库
Enter password: 
MariaDB [zabbix_proxy]> show tables;

在这里插入图片描述

[root@proxy zabbix-proxy-mysql-4.0.5]# cd /etc/zabbix/
[root@proxy zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d  zabbix_proxy.conf
[root@proxy zabbix]# vim zabbix_proxy.conf 
 30 Server=172.25.78.12    # 表示proxy是作为172.25.78.12这台主机的代理
 39 ServerPort=10051       # 代理端口为10051
 49 Hostname=proxy         # 修改本机解析
 188 DBUser=zabbix
196 DBPassword=westos
329 JavaGateway=172.25.78.12      # 因为服务端有JMX的监控,所以proxy也要开启相应的服务
337 JavaGatewayPort=10052
345 StartJavaPollers=5
[root@proxy zabbix]# systemctl start zabbix-proxy
[root@proxy zabbix]# netstat -antlp | grep proxy

在这里插入图片描述

配置客户端
[root@base3 bin]# vim /etc/zabbix/zabbix_agentd.conf 
 98 Server=172.25.78.14                # 把客户端的server指向proxy
 139 ServerActive=172.25.78.14
[root@base3 bin]# systemctl restart zabbix-agent
分别给服务端和客户端添加解析
[root@base2 ~]# vim /etc/hosts
172.25.78.14 base4  proxy
[root@base3 ~]# vim /etc/hosts
172.25.78.14 base4  proxy
浏览器刷新

我们使用由agent代理程序监测字段指定主机配置窗体中的proxy监视单个主机
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

查看日志,proxy代理成功
[root@proxy ~]# vim /var/log/zabbix/zabbix_proxy.log 

在这里插入图片描述

[root@base3 bin]# vim /var/log/zabbix/zabbix_agentd.log

在这里插入图片描述

[root@base2 ~]# vim /var/log/zabbix/zabbix_server.log

在这里插入图片描述

注:如果发现没有成功代理,查看日志有以下报错

  1. cannot send list of active checks to “172.25.78.13”: host [base3] not found

     [root@base2 ~]# systemctl restart zabbix-server   # 重启服务端服务
     [root@proxy ~]# systemctl restart zabbix-proxy     # 重启代理端服务
    
  2. connection to database ‘zabbix_proxy’ failed

     [root@proxy ~]# systemctl start mariadb   # 开启代理服务端的数据库
    

猜你喜欢

转载自blog.csdn.net/wzt888_/article/details/88378522