一、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.页面配置
-
通过代理找到和代理处于同一网段需要监控的主机
-
选择监控模板