Zabbix分布式

一、zabbix分布式

1.概述

Zabbix通过Zabbix proxies为IT基础设施提供有效和可用的分布式监控
代理(proxies)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器

2.proxy特性

当选择使用或不使用proxy时,必须考虑以下几个注意事项:

#注意:自动数据库创建功能仅适用于SQLite。其他数据库需要手动设置.
Proxy
轻量级(Lightweight) Yes
图形界面(GUI) No
独立工作(Works independently) Yes
易于维护(Easy maintenance) Yes
自动生成数据库(Automatic DB creation)1 Yes
本地管理(Local administration) No
准备嵌入式硬件 (Ready for embedded hardware) Yes
单向TCP连接(One way TCP connections) Yes
集中配置(Centralised configuration) Yes
生成通知(Generates notifications) No

3.zabbix porxy代理概述

zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.

此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。

zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可。

proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定。
  • 如图所示:(机房中的agent数据发送至proxy,proxy发送数据至zabbix-server)

4.注意事项

注意:
1.zabbix proxy 数据库必须和 server 分开,否则数据会被破坏。
2.从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于 CacheUpdateFrequency 的原因而无法快速更新。因此,proxy收集发送Zabbix server数据可能会被忽略。

5.zabbix proxy使用场景

1.远程监控设备
2.监控网络不稳定的区域
3.当zabbix监控大型架构的时候
4.为了分布式

6.zabbix proxy功能

zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。有关proxy功能的概述,如下表:
功能 proxy支持(yes/no)
项目(Items)
Zabbix agent checks Yes
Zabbix agent checks (active) Yes 1
Simple checks Yes
Trapper items Yes
SNMP checks Yes
SNMP traps Yes
IPMI checks Yes
JMX checks Yes
日志文件监控(Log file monitoring) Yes
内部检查(Internal checks) Yes
SSH checks Yes
Telnet checks Yes
外部检查(External checks) Yes
内置web监控(Built-in web monitoring) Yes
网络发现(Network discovery) Yes
自动发现(Low-level discovery) Yes
触发器计算(Calculating triggers) No
处理事件(Processing events) No
发送报警(Sending alerts) No
远程命令(Remote commands) No

四、zabbix分布式实践

1.环境准备

主机 IP 身份
zabbix 10.0.0.63 zabbix-server
db02 10.0.0.52 zabbix-proxy
db01 10.0.0.51 zabbix-agent

2.安装部署zabbix-proxy

[root@db02 ~]# yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-proxy-mysql-4.0.1-1.el7.x86_64.rpm

3.安装zabbix的数据库

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

MariaDB [(none)]> create database zabbix_proxy;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix_proxy.* to proxy@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)

4.导入zabbix_proxy初始化数据

#查看数据文件
[root@db02 ~]# rpm -ql zabbix-proxy-mysql
/usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz

#导入数据
[root@db02 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-4.0.1/schema.sql.gz | /usr/local/mysql/bin/mysql -uroot -p zabbix_proxy
Enter password:

#查看导入后的数据
[root@db02 ~]# mysql
MariaDB [(none)]> show databases;
MariaDB [zabbix_proxy]> show tables;

5.配置zabbix-proxy

[root@db02 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_proxy.conf 
[root@db02 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_proxy.conf 
ProxyMode=0			# 开启主动模式
Server=10.0.0.63	# 配置zabbix-server的ip
ServerPort=10051	# zabbix-server端口
Hostname=db02		# 自身主机名
ListenPort=10051	# proxy端监听端口
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=proxy
DBPassword=123

6.启动

[root@db23 ~]# systemctl start zabbix-proxy.service

7.配置zabbix-agent

[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.52			# 指定的ip为proxy代理的ip
ServerActive=172.16.1.52

[root@web01 ~]# systemctl restart zabbix-agent.service

8.页面配置

  • 添加代理


  • 创建主机

  • 通过代理找到和代理处于同一网段需要监控的主机

  • 选择监控模板

  • 最后结果

posted @ 2020-09-16 21:39  元气少女郭德纲!!  阅读(1052)  评论(0编辑  收藏  举报