#zabbix5#在CentOS8安装Zabbix5-Proxy

2020-07-1310:05:10
评论
2,310 8571字

在10分钟内在CentOS 8 / RHEL 8上安装Zabbix-Proxy!

在本教程中,我们将逐步学习如何在CentOS 8 / RHEL 8上安装,优化和配置Zabbix Proxy 5.0。

Zabbix proxy 是一项服务,可以代表 Zabbix server. 从终端设备收集性能和可用性数据。

您可以使用代理来监视防火墙后面的远程位置或通信不可靠的位置,并可以在大型环境中卸载Zabbix服务器。

#zabbix5#在CentOS8安装Zabbix5-Proxy

足够多的谈话可以做一些工作! 我们将在CentOS 8 / RHEL 8上安装最新版本的Zabbix proxy,并进行关键的优化,以使您的代理性能更好。

内容
步骤1:将SELinux设置为宽松模式
步骤2:配置防火墙
步骤3:在CentOS / RHEL上安装Zabbix proxy
步骤4:配置数据库
步骤5:Zabbix代理配置
步骤6:启动并启用Zabbix proxy服务
步骤7:在Zabbix前端中注册Zabbix proxy
步骤8:将Zabbix中的主机配置为由代理服务器监视
步骤7:在Zabbix proxy上配置PSK加密(可选)
步骤8:优化代理服务器(可选)
步骤9:优化MySQL数据库(可选)
步骤10:如何管理Proxy和MySQL服务
步骤11:了解主动与被动Zabbix proxy 模块
步骤12:了解常见的Zabbix proxy 错误

这些天将更新图像,以反映新的Zabbix 5.0导航菜单,即使菜单名称相同,但位置也不同。

步骤1:将SELinux设置为宽松模式

除非您知道如何解决其问题,否则建议将SELinux设置为宽松模式:

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

步骤2:配置防火墙

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent
firewall-cmd --reload

步骤3:在CentOS / RHEL上安装Zabbix proxy

在开始安装代理之前,请记住您的Zabbix proxy 版本必须与server 版本匹配!

您可以使用命令“ zabbix_server -V”检查Zabbix服务器版本:

root@zabbix-server-centos:~$ zabbix_server -V
zabbix_server (Zabbix) 5.0

为了避免错误“nothing provides libssh2.so.1()(64bit) needed by zabbix-proxy-mysql”,请确保使用命令(ZBX-17081)安装了“ libssh2”库:

dnf -y install https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/Packages/libssh-devel-0.9.0-4.el8.x86_64.rpm

设置Zabbix 5.0 LTS .rpm软件包并使用MySQL安装代理服务器:

Zabbix 5.0 LTS version (支持到2025年5月31日)

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
dnf clean all
dnf -y install zabbix-proxy-mysql zabbix-agent

您可以在官方网站上找到有关Zabbix生命周期和发布政策的更多信息。

步骤4:配置数据库

在此安装中,我将使用密码rootDBpass作为根数据库密码,并使用zabbixDBpass作为Zabbix数据库密码。 考虑到安全原因,请考虑更改密码。

a. 安装并启动MariaDB

dnf -y install mariadb-server && systemctl start mariadb && systemctl enable mariadb

b. 重置数据库的根密码

通过更改MySQL根目录的默认密码来保护MySQL:

mysql_secure_installation
Enter current password for root (enter for none): Press the Enter
Set root password? [Y/n]: Y
New password: <Enter root DB password>
Re-enter new password: <Repeat root DB password>
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

c. 建立数据库

mysql -uroot -p'rootDBpass' -e "create database zabbix_proxy character set utf8 collate utf8_bin;"
mysql -uroot -p'rootDBpass' -e "grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbixDBpass';"

d. 导入初始数据库架构

为了避免MySQL错误“ERROR 1118 (42000) at line 1278: Row size too large (> 8126).” 临时禁用严格模式(ZBX-16465):

mysql -uroot -p'rootDBpass' zabbix_proxy -e "set global innodb_strict_mode='OFF';"

代理服务器的导入数据库架构(最多持续5分钟):

zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz |  mysql -uzabbix -p'zabbixDBpass' zabbix_proxy

启用严格模式:

mysql -uroot -p'rootDBpass' zabbix_proxy -e "set global innodb_strict_mode='ON';"

步骤5:Zabbix代理配置

在我的设置中,我将代理命名为Zabbix proxy 01,并将其配置为与IP地址为10.7.44.235的Zabbix通信–请相应地更改它们以匹配您的环境。

使用以下命令打开文件zabbix_proxy.conf:“ vim /etc/zabbix/zabbix_proxy.conf”,并在文件的任何位置以这种格式添加数据库密码和配置频率:

DBPassword=zabbixDBpass
ConfigFrequency=100

“ ConfigFrequency”参数定义代理以秒为单位从Zabbix服务器检索配置数据的频率。 您可以在官方文档中阅读有关代理配置参数的更多信息。

不要关闭文件! 现在,您需要将当前的“服务器”,“主机名”,“ DBName”和“ DB用户”参数值更改为如下所示:

Server=10.7.44.235
Hostname=Zabbix proxy 01
DBName=zabbix_proxy
DBUser=zabbix

保存并退出文件(ESC , 后连续输入ZZ)。

步骤6:启动并启用Zabbix代理服务

重新启动代理服务并将其设置为在启动时启动:

sudo systemctl restart zabbix-proxy
sudo systemctl enable zabbix-proxy

步骤7:在Zabbix前端中注册Zabbix代理

现在您的代理服务器正在运行,您需要使用“管理”部分下的“代理”选项在Zabbix前端中注册它。 单击右侧的“创建代理”按钮,然后将“代理名称”设置为 Zabbix proxy 01,将“代理模式”设置为“活动”。

请注意,要使代理以活动模式工作,“Proxy name ”必须与“ zabbix_proxy.conf”文件中的“hostname”参数相同。

#zabbix5#在CentOS8安装Zabbix5-Proxy
注册Zabbix Proxy

在将代理添加到前端后,将立即通知您从未见过该代理。

#zabbix5#在CentOS8安装Zabbix5-Proxy

但是,如果您等待100秒,则“Last seen (age)”状态将显示秒,而不是“Never”,这表示代理正在与服务器通信。

#zabbix5#在CentOS8安装Zabbix5-Proxy

为什么是100秒? 还记得我们在“ zabbix_proxy.conf”文件中的“ ConfigFrequency”参数下放置的内容吗? 无论您放在哪里,代理都需要多长时间才能与Zabbix服务器联系以检索配置数据。 仅当代理处于活动模式时,此规则才适用。

请注意,如果代理服务器通信正常,则“Last seen (age)”状态不应超过6秒。

建议使用主动代理mod,因为它可以在防火墙后面工作,但是如果您需要将代理设置为被动模式,则可以查看“了解主动vs被动Zabbix代理mod”部分。

步骤8:将Zabbix中的主机配置为由代理服务器监视

代理正在运行,并且正在与Zabbix服务器通信,但是它没有收集任何数据,因为我们没有做最后的关键步骤! 我们需要在Zabbix中配置主机以由代理服务器监视。

让我们一起做吧,转到“配置”部分下的“主机”选项,然后选择需要由代理监视的主机。

#zabbix5#在CentOS8安装Zabbix5-Proxy

选择主机后,单击“批量更新”按钮,然后在“主机”选项下,在“受代理监视”下拉列表中选择我们新添加的代理,最后单击“更新”按钮,如下图所示。

#zabbix5#在CentOS8安装Zabbix5-Proxy

恭喜!
您已在CentOS / RHEL上成功安装并配置了Zabbix代理!
无需更改其他任何内容,因为其他步骤是可选的。

继续了解更多信息:
在代理服务器上配置加密(PSK)
优化代理服务器和MySQL数据库
如何管理代理和MySQL服务
了解主动与被动代理mod
了解常见的代理错误

步骤7:在Zabbix代理上配置PSK加密(可选)

Zabbix使用传输层安全性(TLS)协议v.1.2支持Zabbix服务器与代理之间的加密通信。 您可以使用基于证书和基于预共享密钥的加密(PSK),但是在本教程中,我们将配置后者。

a. 在代理服务器上生成PSK密钥

使用openssl命令生成256位(32字节)PSK密钥:

$ openssl rand -hex 32
 382eb0250c365cc207cc4980cdb1bb1814c19d882b7fddcda00281311a8fb955

使用命令“ vim /etc/zabbix/zabbix_proxy.psk”创建并打开文件“ zabbix_proxy.psk”,然后将新生成的密钥复制并粘贴到其中。

保存并退出文件(ctrl + x,然后是y并输入)并设置正确的文件许可权:

sudo chown zabbix:zabbix /etc/zabbix/zabbix_proxy.psk
sudo chmod 644 /etc/zabbix/zabbix_proxy.psk

b. 配置Zabbix代理以支持PSK加密

使用以下命令打开zabbix_proxy.conf文件:“vim /etc/zabbix/zabbix_proxy.conf”,并将此配置添加到文件中的任何位置:

TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_proxy.psk
TLSPSKIdentity=ZBX-PSK-01

保存并退出文件(ctrl + x,然后是y并输入)。 请记住,“ TLSPSKIdentity”可以是任何东西,因此出于安全原因,请设置其他内容-请勿使用我的!
更改配置文件后,请不要忘记重新启动代理服务器:

sudo systemctl restart zabbix-proxy

c. 在Zabbix前端的代理上启用PSK加密

Zabbix代理与服务器之间的通信尚未加密,因为我们已在代理端启用PSK加密,但未在服务器端启用。

我们需要在服务器端启用加密,因此请转到Web前端,然后在“管理”部分下的“代理”选项上选择您的代理。 接下来,在“加密”选项卡上的“来自代理的连接”选项下设置PSK,然后复制并粘贴在代理上配置的“ PSK身份”和“ PSK”(密钥)。 如果您丢失了生成的PSK密钥,请在代理服务器上使用命令“ cat /etc/zabbix/zabbix_proxy.psk”对其进行检查。

完成配置后,单击“更新”按钮,如下图所示。

#zabbix5#在CentOS8安装Zabbix5-Proxy

如果您已正确完成所有操作,则应看到类似以下内容的内容:

#zabbix5#在CentOS8安装Zabbix5-Proxy

步骤8:优化代理服务器(可选)

如果您要监视少量设备,请不要担心此优化,但是如果您打算监视大量设备,请继续执行此步骤。

使用以下命令打开zabbix_proxy.conf文件:“ vim /etc/zabbix/zabbix_proxy.conf”,并将此配置添加到文件中的任何位置:

StartPollers=500
StartPollersUnreachable=50
StartPingers=50
StartTrappers=150
StartDiscoverers=150
StartHTTPPollers=5
CacheSize=8G
HistoryCacheSize=64M
HistoryIndexCacheSize=32M
StartDBSyncers=30

保存并退出文件(ctrl + x,然后是y并输入)。

这不是一个完美的配置,请记住您可以对其进行更多优化。 假设如果您不使用ICMP检查,则将“ StartPingers”参数设置为1,或者,如果您不使用活动代理,则将“ StartTrappers”设置为1,依此类推。 您可以在官方文档中找到有关代理配置文件中支持的参数的更多信息。

如果您尝试启动代理服务器,您将在日志“ /var/log/zabbix/zabbix_proxy.log”中收到错误“[Z3001] connection to database 'zabbix_proxy' failed: [1040] Too many connections”。 使用比MySQL无法处理的代理进程更多的代理进程。 我们需要增加允许的最大同时客户端连接数,并优化MySQL-因此,请继续进行下一步。

步骤9:优化MySQL数据库(可选)

a. 创建自定义MySQL配置文件

使用“ vim /etc/my.cnf.d/10_my_tweaks.cnf”创建文件“ 10_my_tweaks.cnf”并粘贴以下配置:

[mysqld]
max_connections                = 1000
innodb_buffer_pool_size        = 4G

innodb-log-file-size           = 128M
innodb-log-buffer-size         = 128M
innodb-file-per-table          = 1
innodb_buffer_pool_instances   = 8
innodb_old_blocks_time         = 1000
innodb_stats_on_metadata       = off
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-flush-log-at-trx-commit = 2

tmp-table-size                 = 96M
max-heap-table-size            = 96M
open_files_limit               = 65535
max_connect_errors             = 100
connect_timeout                = 60
wait_timeout                   = 28800


symbolic-links                 = 0
key_buffer_size                = 64M
table_open_cache               = 512
sort_buffer_size               = 32M
net_buffer_length              = 16K
read_buffer_size = 32M
read_rnd_buffer_size = 1024K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
query_cache_size = 512M
query_cache_limit = 4M
sync_binlog=500
table_cache = 64M
slow_query_log = on
long_query_time = 3
max_allowed_packet = 16M
read_buffer = 16M

保存并退出文件(ctrl + x,然后是y并输入)并设置正确的文件许可权:

sudo chown mysql:mysql /etc/my.cnf.d/10_my_tweaks.cnf
sudo chmod 644 /etc/my.cnf.d/10_my_tweaks.cnf

要记住两件事!

配置参数max_connections必须大于所有代理进程的总数加50。您可以使用以下命令自动检查Zabbix进程的数量,并在该数量上增加50:

root@centos:~ $  egrep "^Start.+=[0-9]"  /etc/zabbix/zabbix_proxy.conf  |  awk -F "=" '{s+=$2} END {print s+50}'
 280

第二个最重要的参数是innodb_buffer_pool_size,它确定MySQL可以为缓存InnoDB表和索引数据获得多少内存。 如果仅在服务器上安装数据库,则应将该参数设置为系统内存的70%。

但是,在这种情况下,我们与代理共享服务器,因此您应该将innodb_buffer_pool_size设置为系统总内存的50%。 那将是4G,因为我的CentOS服务器具有8G RAM。

我的内存没有任何问题,但是如果您的代理服务器由于内存不足而崩溃,请减少“ innodb_buffer_pool_size”并重新启动MySQL服务器。

b. 重新启动代理服务器和MySQL服务

停止和启动服务的顺序如下:

sudo systemctl stop zabbix-proxy
sudo systemctl stop mysql
sudo systemctl start mysql
sudo systemctl start zabbix-proxy

步骤10:如何管理Proxy和MySQL服务

有时您需要检查或重新启动Zabbix代理或MySQL服务-使用以下命令来执行此操作。

# Proxy Server
sudo systemctl <status/restart/start/stop> zabbix-proxy
# MySQL Server
sudo systemctl <status/restart/start/stop> mysql
 

步骤11:了解主动与被动Zabbix代理模块

在活动模式下使用代理时,它将连接到Zabbix服务器以检索配置并发送数据。 这是一项出色的功能,使活动代理服务器可以在防火墙后面工作。

并且,如果您在被动模式下使用代理,Zabbix服务器将启动与代理的连接以发送配置并从代理检索数据。

#zabbix5#在CentOS8安装Zabbix5-Proxy

之前,在本教程中,我们已经将代理服务器配置为以活动模式工作。 让我向您展示如何配置代理以在被动模式下工作。

使用以下命令打开文件zabbix_proxy.conf:“vim /etc/zabbix/zabbix_proxy.conf”,然后打开被动模式,并通过在文件中的任意位置添加该地址来定义Zabbix服务器IP地址(更改“服务器”参数以匹配您的Zabbix 服务器):

ProxyMode=1
Server=10.7.44.235

保存并退出文件(ctrl + x,然后是y并输入)。 使用命令“ sudo systemctl restart zabbix-proxy”重新启动代理服务器。

现在,您需要使用“管理”部分下的“代理”选项在Zabbix前端中添加代理。 单击右侧的“创建代理”按钮,然后将“代理名称”设置为所需的任何名称,并将“代理模式”设置为“被动”。 完成配置后,在“接口”下定义代理服务器的IP地址,然后单击“添加”按钮。

#zabbix5#在CentOS8安装Zabbix5-Proxy

步骤12:了解常见的Zabbix代理错误

项目中没有数据,因为Zabbix代理时间与Zabbix服务器时间不同
从4.0版本开始,如果代理时间不同于Zabbix服务器时间,则Zabbix服务器将不再调整值时间戳。由于可以进行服务器代理通信,但项目中没有数据,因此易于检测到此问题。

调整Zabbix服务器和代理以使用同一时间服务器(NTP)或手动设置时间。

代理与服务器之间的通信不起作用
Zabbix代理使用端口10051与Zabbix服务器通信,因此请确保您允许来自网络中端口10051的流量。

请注意,Zabbix正在使用压缩与代理进行通信。压缩可以大大降低网络流量,因此可以提高性能。

但是,这可能会在安装了安全设备(IDS / IPS或NGFW)的环境中引起一些问题,因为如果它们检测到网络流中的压缩,则它们可能会丢弃网络数据包。为避免该问题,请确保安全设备上的应用程序定义是最新的,如果有任何问题,请与设备供应商联系。

检查代理服务器上的日志
如果您遇到代理问题,则可以使用以下命令检查日志的最后500行:

tail -500 /var/log/zabbix/zabbix_proxy.log

Over , 下一期 将编写 “Zabbix警报:设置Zabbix电子邮件通知和升级”

豌豆日志
  • 本文由 发表于 2020-07-1310:05:10
  • 转载请务必保留本文链接:https://pealog.com/219.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: