#四。分布式监控
在生产环境中,为了实现区域灾难恢复,我们将服务器放在不同的区域,如果一个zabbix
如果服务器监控,延迟会很高,因为中国的网络由很多运营商运营,包括中国联通、中国移动、中国电信、教育等。玩游戏的同学要知道,他们家是中国联通的网络。你会去电信服务器吗?不,因为延迟太高了。为什么延迟高?因为运营商之间的导出带宽有限,为什么会有限制?因为成本不同,如果你和便宜的运营商跑宽带,和贵的运营商玩,没人会高兴。有同学说我用了游戏加速器,为什么延迟变低了?使用游戏加速器相当于每个人都是从一扇门进出的时候找到一个窗口,这个窗口是你自己用的,但是别人也找到这个窗口会怎么样呢?所以即使使用了游戏加速器,在上网高峰期延迟依然很高,但也没有那么拥挤。说了为什么延迟高,我们再来看另一个问题。这种把服务器放在不同地区也会造成zabbix。
服务器也会承受很大的压力,所以为了避免这种情况,我们的解决方案是分发权限,找一台机器在不同的区域充当代理,本地的监控工作由代理来做,代理完成采集工作后交给zabbix。
服务器,zabbix服务器正在以统一的方式将接收到的数据呈现给web。
其实这个例子很简单,就是你开了很多分公司,如果你单独管理这些分公司的员工,你是无法全面管理的,所以我们的方法是在每个分公司都找一个负责人,他来管理本地员工,你来管理负责人。如果有任何问题,他们应该向你报告。这样你才能顺利控制整个局面。
架构图
因此,这种分布式监控架构中的流程如下
1 zabbix服务器向代理发出指令
2bbix-proxy向被监控主机发送指令。
3被监控的机器向zabbix-proxy报告数据。
4bbix代理被移交给zabbix服务器。
5 zabbix-服务器将显示数据
这样,只要一条线路畅通,延迟的问题就可以解决。至于保证一条线路畅通的手段,就看你们公司了。有钱可以接专线,没钱可以用VPN。如果实在不行,可以直接去广域网。
#实验拓扑图
在这个架构中,我们至少需要三台机器。他们的角色是
zabbix-服务器:192.168.98.200
zabbix-代理人:192.168.98.205
被监控主机:192.168.98.xxx
#实验步骤
部署服务器监控平台(略)
部署代理平台
被监控的机器安装zabbix代理(省略)
# 4.1.部署zabbix代理代理平台
# 4.1.1.安装zabbix代理平台
#设置yum source[root @ proxy ~]# cat/etc/yum . repo . d/zabbix . repo。
2[root@proxy ~]# createrepo zabbix/(此路径为存放软件包的路径)step3[root@proxy ~]# vim /etc/yum.repos.d/server.repo [server-app]name=server-appenable=1gpgcheck=0baseurl=file:///mnt/AppStream[server-os]name=server-osenable=1gpgcheck=0baseurl=file:///mnt/BaseOS[zabbix]name=zabbixenabled=1gpgcheck=0baseurl=file:///root/zabbixstep4[root@proxy ~]# dnf -y install mariadb-server mariadb zabbix-proxy-mysql zabbix-agent#############################################################mariadb设置#启动服务[root@proxy ~]# systemctl enable mariadbCreated symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.[root@proxy ~]# systemctl start mariadb[root@proxy ~]# mysqladmin -u root password '123456'#创建数据库 zabbix_proxy及管理用户[root@proxy ~]# mysql -u root -pMariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by '123456';Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> exitBye#导入数据[root@proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz |mysql -u zabbix -p123456 zabbix_proxy# 4.1.2、修改proxy配置文件
[root@proxy ~]# egrep "^(Server|Hostname|DBPass)" /etc/zabbix/zabbix_proxy.conf Server=192.168.98.200 #将数据汇报给谁Hostname=zabbix_proxy #自己的名字DBPassword=123456 #数据库密码
# 4.1.3、关于proxy的监控问题
由于proxy既是监控也是被监控机,所以本机的agent的服务器地址可以设置本机或者server地址,这里建议设置server地址。因为这样zabbix
server能够直接监控到本机的状态
[root@proxy ~]# egrep "^(Server|Hostname)" /etc/zabbix/zabbix_agentd.conf Server=192.168.98.200ServerActive=192.168.98.200Hostname=proxy
# 4.1.4、启动服务
[root@proxy ~]# systemctl enable zabbix-proxy zabbix-agentCreated symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.[root@proxy ~]# systemctl start zabbix-proxy zabbix-agent
查看一下日志显示的内容,以及确认下端口是否打开
[root@proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log34539:20200215:133633.989 proxy #13 started [history syncer #2]34547:20200215:133633.990 proxy #21 started [poller #4]34548:20200215:133633.996 proxy #22 started [poller #5]34546:20200215:133633.998 proxy #20 started [poller #3]34551:20200215:133634.000 proxy #25 started [preprocessing manager #1]34550:20200215:133634.003 proxy #24 started [icmp pinger #1]34549:20200215:133634.003 proxy #23 started [unreachable poller #1]34552:20200215:133635.011 proxy #26 started [preprocessing worker #1]34554:20200215:133635.014 proxy #28 started [preprocessing worker #3]34553:20200215:133635.019 proxy #27 started [preprocessing worker #2]34534:20200215:133641.038 cannot send proxy data to server at "192.168.98.200": proxy "zabbix_proxy" not found34534:20200215:133642.041 cannot send proxy data to server at "192.168.98.200": proxy "zabbix_proxy" not found34534:20200215:133643.044 cannot send proxy data to server at "192.168.98.200": proxy "zabbix_proxy" not found34534:20200215:133644.046 cannot send proxy data to server at "192.168.98.200": proxy "zabbix_proxy" not found34534:20200215:133645.049 cannot send proxy data to server at "192.168.98.200": proxy "zabbix_proxy" not found[root@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:10050 0.0.0.0:* LISTEN 33953/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 33960/zabbix_proxy tcp6 0 0 :::10050 :::* LISTEN 33953/zabbix_agentd tcp6 0 0 :::10051 :::* LISTEN 33960/zabbix_proxy tcp6 0 0 :::3306 :::* LISTEN 33219/mysqld
通过查看日志,我们发现日志当中好像有报错,这个我们一会再说,通过查看端口可以发现zabbix_proxy与zabbix_server使用的端口是一样的,所以这两个角色不能配置在一台主机上
# 总结
什么是分布式监控
分布式监控的优势
分布式监控的流程
如何部署分布式监控
重点:分布式监控的优势,分布式监控的搭建流程
难点:在分布式监控中多了一个proxy的角色,各位在配置的时候搞清楚是针对哪个角色进行的操作
3分钟了解计算机发展历史-组团学
