Debian 11 环境下,Zabbix-Proxy 安装配置向导 2022-6-19

段落1、需求

将内网的虚机统一用一台zabbix-proxy接入管理

段落2、环境

安装zabbix-proxy的环境是 Debian 11

安装的数据库是 MariaDB

段落3、安装 MariaDB 数据库

我们首先需要安装的是 MariaDB数据库,用来临时存放服务器检测的数据。安装方式,其实比较简单,不需要最新版本的MariaDB,只需要安装apt里面的版本即可。

root@ZabbixProxy:~# apt update
root@ZabbixProxy:~# apt install wget
root@ZabbixProxy:~# apt install mariadb-server mariadb-client
root@ZabbixProxy:~# systemctl status mariadb
root@ZabbixProxy:~# mysql_secure_installation  #安全加固

Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

root@ZabbixProxy:~# systemctl enable mariadb

特别注意,你自己设置的数据库root的密码,不要转头就忘记了,务必记下来

段落4、创建一个zabbix-proxy用的数据库实例

数据库实例的名称,我这里就用zabbix,对应的数据库普通用户也叫做zabbix,数据库普通用户zabbix的密码最好跟数据库root密码不要写一样的。

root@ZabbixProxy:~# mysql -uroot -p
这里输入是数据库root用户的密码
MariaDB> create database zabbix character set utf8 collate utf8_bin;
MariaDB> create user zabbix@localhost identified by '这里是zabbix用户的密码';
MariaDB> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB> flush privileges;
MariaDB> quit;

段落5、安装zabbix-proxy

zabbix-proxy架构示意,它有点像一个接入网关的作用

安装的zabbix-proxy版本,必须跟zabbix-server版本一致。

检查zabbix-server的版本

root@ZabbixServer:~# zabbix_server -V

确认好版本是 4.0 LTS/5.0 LTS/ 6.0 LTS,到底是哪个之后,去zabbix官网,下载对应版本及OS系统的Zabbix repository的deb文件

我这里生产环境是4.0 LTS的,这个生产环境建设的早,所以版本旧,你们根据你们zabbix-server的实际版本,进行下载

root@ZabbixProxy:~# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-4+debian11_all.deb
root@ZabbixProxy:~# dpkg -i zabbix-release_4.0-4+debian11_all.deb
root@ZabbixProxy:~# apt update
root@ZabbixProxy:~# apt-get install zabbix-proxy-mysql
root@ZabbixProxy:~# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uzabbix -p zabbix   # 导入相关数据表结构
// 这里输入的是,刚刚的,数据库 用户zabbix的密码

导入表结构的时候,有一个小报错,如下

ERROR 1118 (42000) at line 1278: Row size too large (> 8126). 
Changing some columns to TEXT or BLOB may help. 
In current row format, BLOB prefix of 0 bytes is stored inline.

主要来自 innodb_strict_mode 参数的影响,这里重新登录数据库,删除zabbix数据库,修改对应的SQL文件,重新导入即可

root@ZabbixProxy:~# mysql -uroot -p
这里输入是数据库root用户的密码
MariaDB> drop database zabbix;
MariaDB> create database zabbix character set utf8 collate utf8_bin;
MariaDB> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB> flush privileges;
MariaDB> quit;

修改数据库的SQL文件

root@ZabbixProxy:~# cd /usr/share/doc/zabbix-proxy-mysql
root@ZabbixProxy:~# gzip -d schema.sql.gz
root@ZabbixProxy:~# vi schema.sql
新增一行到文件开头 SET SESSION innodb_strict_mode=OFF;
root@ZabbixProxy:~# cat schema.sql | mysql -uzabbix -p zabbix
// 这里输入的是,数据库用户zabbix的密码

完美的成功导入全部表结构,无报错。可以登录进zabbix库,查看一下导入的表。

段落6、修改一下zabbix-proxy的配置文件参数

配置文件的路径 /etc/zabbix/zabbix_proxy.conf

Server=127.0.0.1  --> 需要修改到你的Zabbix-Server地址
Hostname=Zabbix proxy  --> 需要指定一个名称zabbixproxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix       --> 需要指定你刚刚配置的数据库实例名称,我这里是zabbix
DBUser=zabbix       --> 需要指定你刚刚配置的数据库普通用户名,我这里是zabbix
DBPassword=passforuserzabbix --> 需要指定你刚刚配置的数据库普通用户对应的密码
ConfigFrequency=300     --> 需要指定时间间隔-获取配置-秒
DataSenderFrequency=30  --> 需要指定时间间隔-上传数据-秒
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000

修改完成配置文件,重启一下zabbix-proxy

root@ZabbixProxy:~# systemctl restart zabbix-proxy
root@ZabbixProxy:~# systemctl enable zabbix-proxy

段落7、登录zabbix-server的WEB页面,注册刚刚配置的zabbix-proxy

在管理页面,点击创建代理

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注