使用 Zabbix-proxy 监控 Centos7
简介
Zabbix
是由 Alexei Vladishev
开发的一种网络监视、管理系统,基于 Server-Client
架构。
可用于监视各种网络服务、服务器和网络机器等状态,
添加 zabbix
监控主要用到 zabbix
的主动模式或被动模式;
主动模式分为 agent
的主动和 proxy
的主动,主动和被动都是针对 zabbix
的 agent
和 proxy
来说的;
所谓主动,就是 agent
或 proxy
主动向服务器请求监控项并报告监控数据,被动则是 agent
和 proxy
监听端口等待服务器来取相应的监控项和监控数据。
本文将介绍如何使用 zabbix
的 proxy
的主动模式添加主机的方法。
proxy
的主动模式是在 server
端控制的,server
在收到 proxy
的注册时,可以选择其监控的模式,建议使用主动模式。
好处有两点:
proxy
主动收集数据,减轻 server
端压力。
proxy
不需要映射端口,只需要 proxy
能够连接 server
端即可,增加安全性。
zabbix proxy
主动模式图示
环境准备
zabbix-server
(本文不介绍zabbix-server
的部署)
主机名:zabbix-server
IP
:10.18.193.10
zabbix-proxy
主机名:dev-of-runfa-20
IP
:10.18.193.20
zabbix-agent
主机名:dev-of-runfa-25
IP
:10.18.193.25
前置条件
关闭防火墙或开放对应端口
关闭selinux
开始部署
在 zabbix-proxy
端部署并配置数据库
此处为了方便,直接使用 yum
安装 mariadb
,在这之前最好先安装 epel
源
此处创建了 zabbix
库,zabbix
用户,密码也是 zabbix
[root@dev-of-runfa-20 ~]# yum -y install epel-*
[root@dev-of-runfa-20 ~]# yum -y install mariadb-server.x86_64
[root@dev-of-runfa-20 ~]# systemctl start mariadb.service
[root@dev-of-runfa-20 ~]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@dev-of-runfa-20 ~]# mysql -uroot
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit;
Bye
在 zabbix-proxy
端部署并配置启动 zabbix-proxy
使用官方 zabbix
来安装 zabbix-proxy
[root@dev-of-runfa-20 ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@dev-of-runfa-20 ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base epel extras remi remi-safe updates zabbix zabbix-non-supported
Cleaning up list of fastest mirrors
[root@dev-of-runfa-20 ~]# yum -y install zabbix-proxy-mysql
[root@dev-of-runfa-20 ~]# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -pzabbix zabbix
[root@dev-of-runfa-20 ~]# vim /etc/zabbix/zabbix_proxy.conf
Server=10.18.193.10
#zabbix-server 端的对外 IP 地址
ServerPort=10051
#zabbix-server 端的对外服务端口
Hostname=proxy
#这个很重要,可以理解为 proxy 的识别码之类的
DBHost=localhost
#数据库,使用本地,也可以使用 ip
DBName=zabbix
#数据库名
DBUser=zabbix
#连接数据库的用户
DBPassword=zabbix
#连接数据库的密码
ConfigFrequency=300
#同步配置文件的时间
DataSenderFrequency=30
#proxy 端向 server 端发送数据的时间,单位是秒
[root@dev-of-runfa-20 ~]# systemctl start zabbix-proxy.service
[root@dev-of-runfa-20 ~]# systemctl status zabbix-proxy.service
● zabbix-proxy.service - Zabbix Proxy
Loaded: loaded (/usr/lib/systemd/system/zabbix-proxy.service; disabled; vendor preset: disabled)
Active: active (running) since 五 2019-06-14 23:45:08 CST; 7s ago
Process: 26646 ExecStart=/usr/sbin/zabbix_proxy -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 26648 (zabbix_proxy)
CGroup: /system.slice/zabbix-proxy.service
├─26648 /usr/sbin/zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf
├─26653 /usr/sbin/zabbix_proxy: configuration syncer [synced config 0 bytes in 0.001654 sec, idle 300 sec]
├─26654 /usr/sbin/zabbix_proxy: heartbeat sender [sending heartbeat message failed in 0.010068 sec, idle 60 sec]
├─26655 /usr/sbin/zabbix_proxy: data sender [sent 0 values in 0.001370 sec, idle 1 sec]
├─26656 /usr/sbin/zabbix_proxy: housekeeper [startup idle for 30 minutes]
├─26657 /usr/sbin/zabbix_proxy: http poller #1 [got 0 values in 0.000692 sec, idle 5 sec]
├─26658 /usr/sbin/zabbix_proxy: discoverer #1 [processed 0 rules in 0.001117 sec, idle 60 sec]
├─26659 /usr/sbin/zabbix_proxy: history syncer #1 [processed 0 values in 0.000025 sec, idle 1 sec]
├─26660 /usr/sbin/zabbix_proxy: history syncer #2 [processed 0 values in 0.000023 sec, idle 1 sec]
├─26661 /usr/sbin/zabbix_proxy: history syncer #3 [processed 0 values in 0.000054 sec, idle 1 sec]
├─26662 /usr/sbin/zabbix_proxy: history syncer #4 [processed 0 values in 0.000024 sec, idle 1 sec]
├─26663 /usr/sbin/zabbix_proxy: self-monitoring [processed data in 0.000041 sec, idle 1 sec]
├─26665 /usr/sbin/zabbix_proxy: task manager [processed 0 task(s) in 0.000802 sec, idle 5 sec]
├─26666 /usr/sbin/zabbix_proxy: poller #1 [got 0 values in 0.000014 sec, idle 5 sec]
├─26667 /usr/sbin/zabbix_proxy: poller #2 [got 0 values in 0.000026 sec, idle 5 sec]
├─26668 /usr/sbin/zabbix_proxy: poller #3 [got 0 values in 0.000017 sec, idle 5 sec]
├─26669 /usr/sbin/zabbix_proxy: poller #4 [got 0 values in 0.000026 sec, idle 5 sec]
├─26670 /usr/sbin/zabbix_proxy: poller #5 [got 0 values in 0.000036 sec, idle 5 sec]
├─26671 /usr/sbin/zabbix_proxy: unreachable poller #1 [got 0 values in 0.000017 sec, idle 5 sec]
├─26672 /usr/sbin/zabbix_proxy: trapper #1 [processed data in 0.000000 sec, waiting for connection]
├─26673 /usr/sbin/zabbix_proxy: trapper #2 [processed data in 0.000000 sec, waiting for connection]
├─26674 /usr/sbin/zabbix_proxy: trapper #3 [processed data in 0.000000 sec, waiting for connection]
├─26675 /usr/sbin/zabbix_proxy: trapper #4 [processed data in 0.000000 sec, waiting for connection]
├─26676 /usr/sbin/zabbix_proxy: trapper #5 [processed data in 0.000000 sec, waiting for connection]
└─26677 /usr/sbin/zabbix_proxy: icmp pinger #1 [got 0 values in 0.000024 sec, idle 5 sec]
6月 14 23:45:08 dev-of-runfa-20 systemd[1]: Starting Zabbix Proxy...
6月 14 23:45:08 dev-of-runfa-20 systemd[1]: Started Zabbix Proxy.
在 zabbix-agent
端部署并配置启动 zabbix-agent
使用官方 zabbix
来安装 zabbix-agent
[root@dev-of-runfa-25 ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@dev-of-runfa-25 ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base epel extras remi remi-safe updates zabbix zabbix-non-supported
Cleaning up list of fastest mirrors
[root@dev-of-runfa-25 ~]# yum -y install zabbix-agent
[root@dev-of-runfa-25 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=10.18.193.20
#zabbix-proxy IP 地址
ServerActive=10.18.193.20
#zabbix-proxy IP 地址
Hostname=10.18.193.25
#zabbix-agent IP 地址或主机名,这里的信息将在 zabbix-server 自动添加主机的时候显示
[root@dev-of-runfa-25 ~]# systemctl start zabbix-agent.service
[root@dev-of-runfa-25 ~]# systemctl status zabbix-agent.service
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
Active: active (running) since 五 2019-06-14 23:55:51 CST; 5s ago
Process: 31294 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 31296 (zabbix_agentd)
CGroup: /system.slice/zabbix-agent.service
├─31296 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
├─31297 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
├─31298 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
├─31299 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
├─31300 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
└─31301 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
6月 14 23:55:51 dev-of-runfa-25 systemd[1]: Starting Zabbix Agent...
6月 14 23:55:51 dev-of-runfa-25 systemd[1]: PID file /run/zabbix/zabbix_agentd.pid not readable (yet?) after start.
6月 14 23:55:51 dev-of-runfa-25 systemd[1]: Started Zabbix Agent.
在 zabbix-server web
界面配置
配置好之后将能使 zabbix-server
能监控 zabbix-proxy
所代理的 zabbix-agent
添加了 agent
代理程序后,你可以在 配置-主机 看到 zabbix-server
已经把 zabbix-agent
主机自动添加了
此时你只需要给这台主机添加合适的 监控模板 就可以了