zabbix分布式
Zabbix proxy 使用场景:
监控远程区域设备 监控本地网络不稳定区域
监控上千设备时,减轻 zabbix server 的负荷
简化分布式监控的维护。
当监控的服务器成千上万时,普通监控的Server压力会很大,所以就有了分布式监控来分担Server压力,即添加代理服务器,功能与Server差不多,代理服务器统一收集agent监控数据返回给Server进行处理。
zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可zabbix proxy 数据库必须和 server 分开,否则数据会被破坏
zabbix proxy 收集到数据之后,首先将数据缓存在本地,然后在一定的时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer和ProxyOfflineBuffer决定
实验准备
设备1、2搭建环境搭建在之前博客,此处不在搭建
主机 | ip |
---|---|
设备1 zabbix-server | 192.168.70.10 |
设备3 zabbix-proxy | 192.168.70.30 |
设备2 zabbix-agent | 192.168.70.20 |
设备3
[root@localhost ~]# ls
anaconda-ks.cfg sysconfigure.sh
[root@localhost ~]# bash sysconfigure.sh 执行脚本配置环境
安装matiadb-server
[root@localhost ~]# yum -y install mariadb-server
启动mariadb
[root@localhost ~]# systemctl start mariadb
启动开机自启
[root@localhost ~]# systemctl enable mariadb
进入数据库
[root@localhost ~]# mysql
创建zabbix_proxy库,并且给与utf8可识别汉语
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql授权 zabbix_proxy 用户可访问 zabbix_proxy库内所有表
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by '123456';
Query OK, 0 rows affected (0.00 sec)
查看库
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix_proxy |
+--------------------+
5 rows in set (0.00 sec)
查看用户
MariaDB [(none)]> select user,host from mysql.user;
+--------------+--------------+
| user | host |
+--------------+--------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| zabbix_proxy | localhost |
| | zabbix-proxy |
| root | zabbix-proxy |
+--------------+--------------+
7 rows in set (0.00 sec)
修改主机名
[root@localhost ~]# hostnamectl set-hostname zabbix-proxy
[root@localhost ~]# exit
网络源
[root@zabbix-proxy ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@zabbix-proxy ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-
清除缓存
[root@zabbix-proxy ~]# yum clean all
[root@zabbix-proxy ~]# yum makecache
清华大学链接下载软件 zabbix-proxy-mysql-5.0.22-1.el7.x86_64.rpm
[root@zabbix-proxy ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/
7/x86_64/zabbix-proxy-mysql-5.0.22-1.el7.x86_64.rpm
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15.130|:443... 已连接。
错误: 无法验证 mirrors.tuna.tsinghua.edu.cn 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书:
颁发的证书已经过期。
要以不安全的方式连接至 mirrors.tuna.tsinghua.edu.cn,使用“--no-check-certificate”。
[root@zabbix-proxy ~]# wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/
zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-proxy-mysql-5.0.22-1.el7.x86_64.rpm
安装
[root@zabbix-proxy ~]# rpm -hvi zabbix-proxy-mysql-5.0.22-1.el7.x86_64.rpm
查看各个路径
[root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql
/etc/logrotate.d/zabbix-proxy
/etc/zabbix/zabbix_proxy.conf
/usr/lib/systemd/system/zabbix-proxy.service
/usr/lib/tmpfiles.d/zabbix-proxy.conf
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-5.0.22
/usr/share/doc/zabbix-proxy-mysql-5.0.22/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-5.0.22/COPYING
/usr/share/doc/zabbix-proxy-mysql-5.0.22/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-5.0.22/NEWS
/usr/share/doc/zabbix-proxy-mysql-5.0.22/README
/usr/share/doc/zabbix-proxy-mysql-5.0.22/schema.sql.gz
/usr/share/man/man8/zabbix_proxy.8.gz
/var/log/zabbix
/var/run/zabbix
导入初始数据表与架构表
[root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.22/schema.sql.gz | mysql -uzabbix_proxy -p123456 zabbix_proxy
修改配置文件
[root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
……
30 Server=192.168.70.10 #指定zabbix server地 址
49 Hostname=Zabbix-proxy #指定本机名称(自定 义),用于zabbix server区分每一个proxy节点
173 DBName=zabbix_proxy #指定数据库名(与数据库 创建的库名保持一致)
188 DBUser=zabbix_proxy #指定连接数据库用户名 (与数据库授权用户名称保持一致)
196 DBPassword=123456 #指定用户密码
开启
[root@zabbix-proxy ~]# systemctl start zabbix-proxy.service
重启
[root@zabbix-proxy ~]# systemctl restart zabbix-proxy.service
开机自启
[root@zabbix-proxy ~]# systemctl enable zabbix-proxy.service
查看网络端口
[root@zabbix-proxy ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 16504/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6647/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 8010/master
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 27384/zabbix_proxy
tcp6 0 0 :::22 :::* LISTEN 6647/sshd
tcp6 0 0 ::1:25 :::* LISTEN 8010/master
tcp6 0 0 :::10051 :::* LISTEN 27384/zabbix_proxy
重启
[root@zabbix-proxy ~]# systemctl restart zabbix-proxy.service
192.168.70.20 设备
修改配置文件
[root@host-20 ~]# vim /etc/zabbix/zabbix_agentd.conf
……
119 Server=192.168.70.30 #指定zabbix proxy 地址
ServerActive=127.0.0.1 本机自己
171 Hostname=192.168.70.20 #指定本机名称(自定 义),用于zabbix proxy区分每一个agent节点
重启
[root@host-20 ~]# systemctl restart zabbix-agent.service
查看网络端口
[root@host-20 ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6802/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6672/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6883/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 12480/zabbix_agentd
tcp6 0 0 :::22 :::* LISTEN 6672/sshd
tcp6 0 0 ::1:25 :::* LISTEN 6883/master
tcp6 0 0 :::10050 :::* LISTEN 12480/zabbix_agentd
[root@host-20 ~]# systemctl restart zabbix-agent.service
进入界面在 管理——>agent代理程序
配置——>主机——>
模板选择 更新
主机处 再次更新
配置——>主机 标红的地方显示表示正常
此处ZBX不亮则 从 zabbix-server zabbix-proxy zbbix-agent 一次重启一次。如果无效则删除模板再次选择 更新 主机更新尝试。
解决方案参考文献
https://blog.csdn.net/weixin_30776545/article/details/99486652
https://blog.csdn.net/weixin_44234846/article/details/99621182?utm_term=zabbix%E7%9A%84ZBX%E6%B2%A1%E4%BA%AE&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-2-99621182-null-null&spm=3001.4430
zabbix分布式搭建文章
https://www.cnblogs.com/ywb-articles/p/11826613.html
这里是引用