在 Zabbix 前端注册 Zabbix 代理
在 Zabbix 前端注册代理:
转到:管理 -> 代理
点击创建代理
输入代理名称。
必须与代理配置文件中Hostname参数中输入的名称相同
选择代理模式:
- Active - 代理将连接到 Zabbix 服务器并请求配置数据
- 被动 - Zabbix 服务器连接到代理
选择应由代理监控的主机。
单击添加按钮。
安装 Zabbix 代理
首先,我们需要导入 zabbix GPG 密钥并将 Zabbix 存储库添加到我们的服务器:
[jack@onitroad ~]# rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX [jack@onitroad ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
下一步是使用以下命令安装我们的代理:
[jack@onitroad ~]# yum install zabbix-proxy-mysql
启动/启用 Zabbix 代理
安装和配置完成后,使用以下命令在系统启动时启用并重启Zabbix Proxy服务
[jack@onitroad ~]# systemctl enable zabbix-proxy [jack@onitroad ~]# systemctl start zabbix-proxy
注意:如果我们在启动 zabbix-proxy 守护进程时遇到问题,并且收到此错误“zabbix-proxy.service 的作业失败,因为超出了配置的资源限制。
请参阅“systemctl status zabbix-proxy.service”和“journalctl -xe”有关详细信息”,我们需要使用 audit2allow 命令设置 Selinux 角色:
使用以下命令安装 policycoreutils-python 包:
# yum install policycoreutils-python
使用以下命令创建 Selinux 规则并启用它:
[jack@onitroad ~]# cat /var/log/audit/audit.log | grep zabbix_proxy | grep denied | audit2allow -M zabbix_proxy [jack@onitroad ~]# semodule -i zabbix_proxy.pp
使用以下命令启用zabbix代理使用网络:
[jack@onitroad ~]# setsebool -P zabbix_can_network=1
最后启动Zabbix代理服务:
[jack@onitroad ~]# systemctl start zabbix-proxy
或者你可以使用这个 Selinux 角色,在 CentOS 7.3 上测试过:
[jack@onitroad ~]# vi zabbix_proxy.te module zabbix_proxy 1.0; require { type zabbix_t; type zabbix_port_t; class process setrlimit; class tcp_socket name_connect; } #============= zabbix_t ============== allow zabbix_t self:process setrlimit; #!!!! This avc is allowed in the current policy allow zabbix_t zabbix_port_t:tcp_socket name_connect;
[jack@onitroad ~]# checkmodule -m -M zabbix_proxy.te -o zabbix_proxy.mod [jack@onitroad ~]# semodule_package -m zabbix_proxy.mod -o zabbix_proxy.pp [jack@onitroad ~]# semodule -i zabbix_proxy.pp
配置 Zabbix 代理
打开 zabbix_proxy.conf 文件并更改以下参数:
[jack@onitroad ~]# vi /etc/zabbix/zabbix_proxy.conf Server=<IP of your zabbix server> Hostname=<Name of your proxy> DBName=<Name of your proxy database> DBUser=<Name of your proxy user> DBPassword=<Password of your proxy user>
执行以下命令启用 Zabbix 服务器和 Zabbix 代理之间的连接:
[jack@onitroad ~]# firewall-cmd --permanent --add-port=10050/tcp [jack@onitroad ~]# firewall-cmd --permanent --add-port=10051/tcp [jack@onitroad ~]# firewall-cmd --reload
Zabbix 代理可以代表 Zabbix 服务器收集性能和可用性数据。
这样,代理可以自己承担一些收集数据的负载并卸载 Zabbix 服务器。
此外,使用代理是实现集中式和分布式监控的最简单方法,当所有代理和代理向一台 Zabbix 服务器报告并且所有数据都集中收集时。
Zabbix 代理可用于:
- 监控远程位置
- 监控通信不可靠的位置
- 监控数千台设备时卸载 Zabbix 服务器
- 简化分布式监控的维护
在本文中,我们将介绍如何使用 Mariadb/MySQL 数据库在 CentOS 7/RHEL 7 服务器上安装和配置 Zabbix 代理。
为了安装代理,我们需要用户超级管理员权限。
创建 Zabbix 代理数据库
首先我们需要安装 MariaDB
[jack@onitroad ~]# yum install mariadb-server
使用以下命令在启动时启用/重新启动 MariaDB 服务器:
[jack@onitroad ~]# systemctl enable mariadb && systemctl start mariadb
不要忘记使用 mysql_secure_installtion 为 root 设置密码,看看这个教程:Securing MySQL server/Mariadb with mysql_secure_installation
现在我们需要创建zabbix代理数据库并授予zabbix代理用户访问权限
[jack@onitroad ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 25 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin; MariaDB [(none)]> grant all privileges on zabbix_proxy.* to jack@onitroad identified by "Password"; MariaDB [(none)]> flush privileges;
然后导入初始模式。
确保为 zabbix-proxy-mysql-3.4.X 插入正确的版本
[jack@onitroad ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.4.X/schema.sql.gz | mysql -u zabbixuser zabbix_proxy -p