段落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
在管理页面,点击创建代理