原理
zabbix_agent收集数据
zabbix-proxy获取zabbix_agent的数据上发给zabbix_server
zabbix_server 获取数据后展示
一、系统环境配置
[root@zabbix-proxy ~]# setenforce 0
[root@zabbix-proxy ~]# vi /etc/selinux/config
[root@zabbix-proxy ~]# reboot
[root@zabbix-proxy ~]# getenforce
Disabled
[root@zabbix-proxy ~]# systemctl stop firewalld.service
[root@zabbix-proxy ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@zabbix-proxy ~]# firewall-cmd --state
not running
二、安装数据库
[root@zabbix-proxy ~]# yum install -y mariadb-server
[root@zabbix-proxy ~]# rpm -qa mariadb
mariadb-5.5.64-1.el7.x86_64
[root@zabbix-proxy ~]# systemctl start mariadb
[root@zabbix-proxy ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@zabbix-proxy ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, 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; # 创建zabbix数据库(中文编码格式)
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix'; # 创建zabbix_proxy用户并把zabbix_proxy库的所有权限给他密码是zabbix
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user,host from mysql.user;
+--------+--------------+
| user | host |
+--------+--------------+
| zabbix | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | zabbix-proxy |
| root | zabbix-proxy |
+--------+--------------+
7 rows in set (0.00 sec)
MariaDB [(none)]> delete from mysql.user where user=' ';
Query OK, 2 rows affected (0.00 sec)
MariaDB [(none)]> select user,host from mysql.user;
+--------+--------------+
| user | host |
+--------+--------------+
| zabbix | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
| root | zabbix-proxy |
+--------+--------------+
5 rows in set (0.00 sec)
MariaDB [(none)]> flush privileges; # 重新加载权限表
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix_proxy |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]> quit
Bye
对于 Zabbix proxy,导入初始的数据库 schema
[root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p -h xx.xx.xx.xx zabbix_proxy
Enter password:
需要创建以下目录,否则会报以下错误
[root@zabbix-proxy ~]# tailf /var/log/zabbix/zabbix_proxy.log
11959:20200124:211227.407 housekeeper [deleted 0 records in 0.000324 sec, idle for 1 hour(s)]
11956:20200124:211227.408 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11966:20200124:211326.446 cannot stat SNMP trapper file "/var/log/snmptrap/snmptrap.log": [2] No such file or directory
[root@zabbix-proxy var]# cd /var/log
[root@zabbix-proxy log]# mkdir snmptrap
[root@zabbix-proxy snmptrap]# vi /var/log/snmptrap/snmptrap.log
文件内容空白即可
三、安装zabbix proxy
[root@zabbix-proxy ~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-proxy-mysql-4.0.9-3.el7.x86_64.rpm
[root@zabbix-proxy ~]# yum install -y zabbix-proxy-mysql-4.0.9-3.el7.x86_64.rpm
[root@zabbix-proxy ~]# rpm -qa zabbix-proxy-mysql
zabbix-proxy-mysql-4.0.9-3.el7.x86_64
## 启动zabbix-proxy
[root@zabbix-proxy ~]# systemctl start zabbix-proxy
## 设置zabbix-proxy开机自启动
[root@zabbix-proxy ~]# systemctl enable zabbix-proxy.service
## 查看 zabbix-proxy是否启动
[root@zabbix-proxy ~]# netstat -anpt | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 11951/zabbix_proxy
tcp6 0 0 :::10051 :::* LISTEN 11951/zabbix_proxy
编辑zabbix_proxy配置文件
[root@zabbix-proxy ~]#/vi /etc/zabbix/zabbix_proxy.conf
[root@zabbix-proxy ~]# grep ^[a-Z] /etc/zabbix/zabbix_proxy.conf
Server=xx.xx.xx.xx
Hostname=Zabbix proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
ConfigFrequency=180
DataSenderFrequency=60
StartTrappers=10
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
StartSNMPTrapper=1
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
通过查看zabbix_proxy.log日志,确认zabbix_proxy端是否正常运行
[root@zabbix-proxy ~]# tailf /var/log/zabbix/zabbix_proxy.log
11956:20200124:213028.580 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:213328.860 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:213629.231 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:213929.531 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:214229.946 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:214530.370 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:214830.641 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:215130.983 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:215431.281 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:215731.707 received configuration data from server at "xx.xx.xx.xx", datalen 3516
11956:20200124:220031.894 received configuration data from server at "xx.xx.xx.xx", datalen 3516
登录zabbix server端,通过查看zabbix_server.log日志,确认zabbix_server端是否正常运行
[root@zabbix ~]# tailf /var/log/zabbix/zabbix_server.log
14119:20200124:210624.215 sending configuration data to proxy "Zabbix proxy" at "xx.xx.xx.xx", datalen 3516
14119:20200124:210924.321 sending configuration data to proxy "Zabbix proxy" at "xx.xx.xx.xx", datalen 3516
14122:20200124:211224.449 sending configuration data to proxy "Zabbix proxy" at "xx.xx.xx.xx", datalen 3516
14123:20200124:211524.589 sending configuration data to proxy "Zabbix proxy" at "xx.xx.xx.xx", datalen 3516
14121:20200124:211824.770 sending configuration data to proxy "Zabbix proxy" at "xx.xx.xx.xx", datalen 3516
14119:20200124:212124.891 sending configuration data to proxy "Zabbix proxy" at "xx.xx.xx.xx", datalen 3516
14101:20200124:212350.152 executing housekeeper
14101:20200124:212350.163 housekeeper [deleted 0 hist/trends, 0 items/triggers, 0 events, 0 problems, 0 sessions, 0 alarms, 0 audit items in 0.002016 sec, idle for 1 hour(s)]
14120:20200124:212425.035 sending configuration data to proxy "Zabbix proxy" at "xx.xx.xx.xx", datalen 3516
14120:20200124:212725.297 sending configuration data to proxy "Zabbix proxy" at "xx.xx.xx.xx", datalen 3516
报错参考
报错1
安装 Zabbix proxy(yum install zabbix-proxy-mysql-4.0.9-3.el7.x86_64)并使用 MySQL 数据库 时出现以下报错
Error: Package: zabbix-proxy-mysql-4.0.9-3.el7.x86_64 (/zabbix-proxy-mysql-4.0.9-3.el7.x86_64)
Requires: fping
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
解决方法
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
yum -y install epel-release-7-12.noarch.rpm
报错2
[root@zabbix-proxy ~]# tailf /var/log/zabbix/zabbix_proxy.log
11958:20200124:210443.960 cannot send proxy data to server at “xx.xx.xx.xx”: proxy “Zabbix proxy” not found
解决方法
需要在web界面进行如下agent代理程序的配置
报错3
[root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p -h xx.xx.xx.xx zabbix
Enter password:
ERROR 1044 (42000): Access denied for user ‘zabbix’@’%’ to database ‘zabbix’
解决方法
改成:
[root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p -h xx.xx.xx.xx zabbix_proxy