在IT运维工作中,监控的重要性,想必不用我再多说什么了,毕竟谁都想及早发现故障,有效的监控,总比对着服务器和网络设备烧香、跪拜来得靠谱吧。
而作为一个IT外包服务公司,由于需要监控的服务器和网络设备比较多,而且分布在众多的局域网内,所以分布式的监控,肯定是非常必要的,当然也同样适用于拥有多地分公司的集团企业。
我们的做法是,在公有云租赁一台云主机,部署Zabbix Server,最初监控的设备比较少的时候,直接在客户的防火墙或者路由器上开放相应的端口,然后Zabbix Server逐一添加被监控设备就行了。
但是,随着需要监控的设备越来越多,这种方式显然跟不上节奏了,所以不得不开始部署分布式的Zabbix。
其方法就是:在内网部署Zabbix Proxy,来代表云端的Zabbix server在本地收集数据,然后将数据统一上报给云端的Zabbix server。
这种方法,有一个非常显著的优势,就是不再需要被监控的客户拥有公网固定IP,只要有普通的宽带就可以了。
还有就是,proxy 只需要一个到达Zabbix server的TCP连接即可,路由器仅需配置一条端口就可以了,防火墙的话,当然还需要一条放行规则。
Zabbix Server的安装和配置,前面已经有文章写过了,所以就不再重复了, 下面以centos系统为例,讲解一下Zabbix Proxy的安装和配置。
1、安装MySQL数据库
yum install mysql-community-server -y
如果报错 则用yum install mysql-community-server --nogpgcheck -y
启动mysql服务并设置开机自启
查看mysql初始密码
mysql -u root -p ,然后输入初始密码
修改mysql初始密码
alter user 'root'@'localhost' identified by 'password';
至此mysql安装成功。
2、部署Zabbix Proxy
步骤一 Install Zabbix repository
# rpm-Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
# yum clean all
步骤二 Install Zabbix proxy
# yum install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
步骤三 创建初始数据库
在数据库主机上运行以下代码。
# mysql -uroot -p
Password
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
等待一段时间后,导入数据库成功。
# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
步骤四 配置Zabbix proxy的数据库文件
编辑配置文件 /etc/zabbix/zabbix_proxy.conf
主要是填写云端Zabbix Server的弹性IP,以及Zabbix Proxy数据库对应的密码。
修改完毕后保存退出。
步骤五 启动zabbix-proxy服务,并设置为开机自启动。
# systemctl restart zabbix-proxy
# systemctl enable zabbix-proxy
查看zabbix-proxy服务
# systemctl status zabbix-proxy
正确情况,此时如下图所示
Zabbix-proxy部署到此成功。
3、端口映射及防火墙安全策略。
Proxy默认聆听端口是10051,由于Server在云端,所以需要将内部10051端口映射到公网,如果是防火墙的话,当然还需要匹配的安全策略,这个在之前已经写过很多教程了,就没必要重复了,有需要的朋友,可以翻看我之前写的文章。
4、在zabbix-server服务器上添加proxy和被监控的设备
被监控的内网设备,处于一个拨号上网的宽带下,没有固定的公网IP,所以选择主动模式,意思就是proxy主动向云端的server报送数据。
举例,华为防火墙监控参数配置如下图所示:
在云端的Zabbix Server上添加被监控的华为防火墙:
下面这个图片,是云端Zabbix Server通过端口映射的方式直接监控到内网的服务器,以及Proxy模式监控内网服务器的对比,从图片中可能看到,无论采购哪种方式,监控到数据是一样的。
显然,需要监控的设备分散在不同的局域网内的话,显然是分布式(即Proxy模式)更方便、更有优势,也在相当程度上,减轻了服务器的负担。