其实最快的方法就是弄 Docker,所以这是快速版搭建
我在公司做的是网络监控,主要是不同运营商的节点对不同省份地区的进行监测,评价网络质量主要是时延和丢包率,但我们不可能用 Ping -t 一直测,我也不知以前的同事为什么可以把用于服务器监控的 Zabbix 改造成只监测网络,所以我就把目前公司这个网络质量监测为基础,我的大学毕业论文就是写这个相关的。
背景
随着业务量的增多,根据领导或其他部门的同事的需求,我们也会对新的运营商出口搭建一个节点,主要是利用 Zabbix 的 “简单检查” 的功能,可以用 Zabbix-Proxy 对远程 IP 进行实时 ICMP 监测,当然这个 Zabbix 就自带这个模板,比较麻烦的在于怎么部署 Zabbix-Proxy,其实搭多了步骤也很清晰:
- Linux环境(主要用 CentOS)
- 部署 mariadb-server、添加 Zabbix-repo 源
- 修改配置文件
- 开启服务
前置
记得关掉 Selinux,防火墙要配好,可以连通 server 的IP,需要放行好 10050:10051 端口
搭建
本文以 3.x 为例,4.x 步骤一致,只是第一步就选对什么版本而已。配置基本照抄官方文档即可
打开 Zabbix 的官网,直接打开 Download 页
部署版本源
# rpm -Uvh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
# yum clean all
安装数据库、Zabbix-proxy
数据库我这边默认使用 MySQL,zabbix-agent 我也会顺便搭建,但不想监测节点健康的话可以跳过
# yum install mariadb-server zabbix-proxy
添加数据库
Zabbix-proxy 其实是无前端的 Zabbix-server,数据库架构要与 Zabbix-server 架构一致才能一起工作
# mysql -uroot -p
password # 其实一般用 yum 安装是没有密码的
mysql> create database zabbix character set utf8 collate utf8_bin; # 建立 zabbix 数据库
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password'; # 给 zabbix 数据库赋权,账号为 zabbix,密码为 password
mysql> flush privileges; #刷新权限
mysql> quit;
导入 proxy 的 SQL 文件到数据库
用 zcat 命令解压并输出内容,利用管道导入到 zabbix 数据库
zcat /usr/share/doc/zabbix-proxy*/schema.sql.gz | mysql -u zabbix -p zabbix
改一波配置
前面都搭建好的话,那我们只需更改 proxy 的配置文件就好了。以下的关键点,善用 vim 的 "/" 的搜索功能
[root@izwzz ~]# cat /etc/zabbix/zabbix_proxy.conf | grep "^[^#]"
Server=103.x.x.x # server 的 IP 地址
Hostname=aliyun88-sz # 该 proxy 的名称,该名称在 server 前端添加名字就要输入这个
EnableRemoteCommands=1 # 是否开启远程命令(看业务)
DBName=zabbix # 数据库名
DBUser=zabbix # 数据库的用户名
DBPassword=password # 数据库的密码
开启服务测试
我局的OK了,直接开启相应的服务。正式要使用的时候一定要记得 enable,否则服务器重启后服务不会自己起来
systemctl start mariadb
systemctl start zabbix-proxy
在 Server 前端添加主动式的 Zabbix-proxy
回到 Zabbix-proxy 的前端页面,点击 [管理] - [agent代理程序]
,再点击右上角创建代理,填写以下内容,其中 agent代理程序名称一定是配置文件的 Hostname 才行
(图片是用论文的图片,我懒得上前端了)
选择程序模式,我们一般是使用主动式,因为:
- 主动式:Proxy 自己发送数据到 Server 服务器,适合内网穿透,分担 Server 压力,在监测内网交换机非常有用
- 被动式:Server 自己去请求 Proxy 获取数据,需要有公网资源,消耗 Server 的网络资源
排障
如果那么长时间都没数据,那肯定配置有误,我这边先把我遇到的错误总结一下吧。
首先一定得打开日志文件:/var/log/zabbix/zabbix_proxy.log
- 如果看到
Permission denied
,那肯定是 SELinux 没关,请百度 - 如果看到
host x.x.x.x unreached
,那就是到达不了 Server 的 IP,需要检查防火墙或节点的安全组 - 很久没监测数据,只需重启 zabbix-proxy 进程就能获取数据了
总结
所以同事们快自己学会搭呀,别天天让我搭啊!!!!
发表评论