zabbix-proxy搭建学习笔记

目录

1. 定义和主要功能

2. 使用场景

3. 工作原理

4. 配置

5. 注意事项

部署

安装yum源

安装proxy

创建初始数据库

编辑配置文件

启动服务

编辑 配置文件/etc/zabbix/zabbix_proxy.conf

在服务端页面添加proxy

编辑agent配置文件指定server为proxy

添加主机:选择agent代理程序,选择proxy的选项点击更新以添加

Zabbix-proxy是Zabbix监控系统中的一个重要组成部分,它在大型或分布式网络环境中扮演着关键角色。以下是关于Zabbix-proxy的详细介绍:

1. 定义和主要功能

  • 定义:Zabbix-proxy是一个数据收集器,用于代替Zabbix Server收集性能和可用性数据,然后将这些数据汇报给Zabbix Server。
  • 主要功能
    1. 分担服务器压力:通过收集并转发数据,Zabbix-proxy能够显著减轻Zabbix Server的工作负载,提高监控系统的整体性能和稳定性。
    2. 提高监控效率:在低带宽、高延迟的网络环境下,Zabbix-proxy能够有效地避免数据传输的瓶颈,提高监控效率。
    3. 跨网络或防火墙监控:Zabbix-proxy有助于解决跨网络或防火墙等限制的监控问题,使监控系统更加灵活和可靠。

2. 使用场景

  • 监控远程区域设备:当需要监控位于远程区域的设备时,可以在这些区域部署Zabbix-proxy,以收集并转发监控数据。
  • 监控本地网络不稳定区域:对于本地网络中可能存在的不稳定区域,Zabbix-proxy可以作为一个数据缓冲区,确保在网络不稳定时仍能够收集和转发数据。
  • 大型环境监控:在大型环境中,使用Zabbix-proxy可以显著减轻Zabbix Server的压力,提高监控系统的可扩展性和性能。

3. 工作原理

  • 数据收集:Zabbix-proxy负责收集被监控设备的性能和可用性数据。
  • 数据缓存:收集到的数据首先会被缓存在Zabbix-proxy的本地存储中。
  • 数据转发:在一定时间间隔后,Zabbix-proxy会将缓存的数据转发给Zabbix Server进行进一步的处理和存储。

4. 配置

  • 部署位置:Zabbix-proxy通常部署在局域网内的节点上,以便与被监控设备直接通信。
  • 配置要求:Zabbix-proxy需要配置与Zabbix Server的通信参数、数据缓存策略等。
  • 数据库:为了防止数据库被破坏,通常情况下Zabbix-proxy的数据库与Zabbix Server的数据库是分开的。

5. 注意事项

  • 数据流向:由于Zabbix-proxy仅负责数据采集和转发,不具备数据处理和存储的能力,因此需要确保Zabbix Server能够正常接收和处理来自Zabbix-proxy的数据。
  • 网络要求:在部署Zabbix-proxy时,需要考虑网络带宽和稳定性,以确保数据能够顺利传输。

综上所述,Zabbix-proxy是Zabbix监控系统中不可或缺的一部分,它在大型或分布式网络环境中发挥着重要作用,通过分担服务器压力、提高监控效率以及解决跨网络或防火墙等限制的监控问题,使得监控系统更加灵活、可靠和高效。

部署

安装yum源

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm
dnf clean all

安装proxy

dnf install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy

创建初始数据库

安装数据库设置数据库密码

yum -y install mariadb-server mariadb
systemctl start mariadb&&systemctl enable mariadb
mysqladmin -u root password "123456"
mysql -uroot -p
mysql> create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

导入初始架构和数据,系统将提示您输入新创建的密码。

cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix_proxy

导入数据库架构后禁用log_bin_trust_function_creators选项。

mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

编辑配置文件

vim /etc/zabbix/zabbix_proxy.conf

DBPassword=password

启动服务

systemctl restart zabbix-proxy
systemctl enable zabbix-proxy

编辑 配置文件/etc/zabbix/zabbix_proxy.conf

 vim /etc/zabbix/zabbix_proxy.conf


Server=172.18.40.101 
###zabbix-server的IP地址              
Hostname=172.18.40.103
###zabbix-proxy的IP地址

systemctl restart zabbix-proxy
###重启zabbix-proxy
ss -lnt
###查看端口监听proxy的端口是10051

在服务端页面添加proxy

点击管理-proxy-创建proxy-填写proxy的IP地址,点击更新

添加成功:

新添加一个主机172.18.40.120,给172.18.40.120安装agent,并且使用172.18.40.103proxy进行代理收集数据

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/7/x86_64/zabbix-release-7.0-1.el7.noarch.rpm
yum clean all
yum install zabbix-agent2 zabbix-agent2-plugin-*
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2

编辑agent配置文件指定server为proxy

vim /etc/zabbix/zabbix_agent2.conf

Server=172.18.40.103
###指定server为proxy的IP地址
Hostname=172.18.40.120
###主机名写agent的IP地址

systemctl restart zabbix-agent2
###重启zabbix-agent
###放开proxy对agent的10050端口的访问。

数据采集-主机-创建主机

添加主机:选择agent代理程序,选择proxy的选项点击更新以添加

如下图添加成功:

到此新建proxy成功。172.18.40.120的数据就是经过172.18.30.103代理收集。

当zabbix-server监控主机过多,导致zabbix-server压力过大时使用proxy可以减轻zabbix-server的压力。

使用场景:

  • 监控远程区域设备:当需要监控位于远程区域的设备时,可以在这些区域部署Zabbix-proxy,以收集并转发监控数据。
  • 监控本地网络不稳定区域:对于本地网络中可能存在的不稳定区域,Zabbix-proxy可以作为一个数据缓冲区,确保在网络不稳定时仍能够收集和转发数据。
  • 大型环境监控:在大型环境中,使用Zabbix-proxy可以显著减轻Zabbix Server的压力,提高监控系统的可扩展性和性能。

proxy与agent的主动被动关系

本片文章采用方法1。
方法1(proxy对agent索要数据):
配置文件中 Server=填写proxy的IP地址
对zabbix-proxy开放本地的10050端口,proxy收集agent数据需要访问agent的10050端口

方法2(agent自己推数据到proxy):
让agent主动提交数据到proxy,需要让proxy对zabbix-agent开放10051端口的访问,
agent的配置文件中 ServerActive=填写proxy的IP地址,web界面添加主机时模板选择	Linux by Zabbix agent active

接口开发是指根据接口文档来编程序,实现不同系统之间的数据交互和功能调用。在进行接口开发时,需要先了解清楚接口文档中规定的参数、请求方式、返回数据格式等信息。 首先,我们需要根据接口文档中的要求,选择合适的开发工具和编程语言。一般来说,接口开发常用的编程语言有JavaPython、C++等,可以根据项目需求和团队技术栈来选择合适的语言。 接着,根据接口文档中定义的接口地址、请求参数和返回数据格式,我们可以开始编接口开发的代码。根据接口文档中的请求方式(如GET、POST、PUT、DELETE等),我们可以使用相应的HTTP请求库来发送请求,并根据接口文档中的返回数据格式(如JSON、XML等),我们可以解析相应的返回数据。 在编代码的过程中,我们需要注意参数的校验和错误处理,确保接口的健壮性和安全性。此外,我们还需要考虑接口的性能优化和接口文档的变更管理,确保接口的稳定性和可维护性。 最后,我们可以通过接口测试工具(如Postman、Swagger等)来测试接口的功能和性能,确保接口开发的质量和正确性。 总的来说,根据接口文档接口开发c需要我们严格按照接口文档的要求进行开发,确保接口的功能和性能符合预期,同时要注重接口的健壮性和稳定性,以实现不同系统之间的数据交互和功能调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值