Zabbix

来自 ArchWiki

Zabbix 是一个功能齐全的监控解决方案,适用于大型网络。它可以使用不同的方法发现各种网络设备,检查机器状态和应用程序,发送预定义的警报消息,并可视化复杂的数据关联。

服务器设置

安装

服务器安装

安装 zabbix-server 软件包。 这包括与 MariaDB 或 PostgreSQL 一起使用的必要脚本。

数据库安装

安装 mariadb 软件包或 postgresql 软件包。

前端安装

安装 zabbix-frontend-php 软件包。 您应该选择一个支持 PHP 的 Web 服务器,例如:

您也可以选择在 Category:Web server 中找到的服务器之一。

配置

将 Zabbix Web 应用程序目录符号链接到您的 http 文档根目录,例如:

$ ln -s /usr/share/webapps/zabbix /srv/http/zabbix

要使 Apache 开箱即用,您需要启用 PHP 集成

/etc/php/php.ini 中调整以下变量

extension=bcmath
extension=gd
extension=sockets
extension=mysqli
extension=gettext
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = "UTC"
提示: 如果使用 php-fpm and mod_proxy_fcgi,您可能需要 重启 php-fpm.service

数据库初始化

MariaDB

在此示例中,我们在 localhost 上为用户 zabbix 创建一个名为 zabbix 的 MariaDB 数据库,密码为 test,然后导入数据库模板。 此连接稍后将由 Zabbix 服务器和 Web 应用程序使用。

注意: 在生产系统中,密码应更改为更安全的密码。

如果您的 MariaDB 安装使用带有密码的 root 帐户,请使用以下命令

$ mariadb -u root -p -e "create database zabbix character set utf8 collate utf8_bin"
$ mariadb -u root -p -e "grant all on zabbix.* to zabbix@localhost identified by 'test'"

如果您的 MariaDB 安装使用没有密码的 root 帐户,请使用以下命令

# mariadb -e "create database zabbix character set utf8 collate utf8_bin"
# mariadb -e "grant all on zabbix.* to zabbix@localhost identified by 'test'"

使用以下命令导入数据库模板

$ mariadb -u zabbix -p -D zabbix < /usr/share/zabbix-server/mysql/schema.sql
$ mariadb -u zabbix -p -D zabbix < /usr/share/zabbix-server/mysql/images.sql
$ mariadb -u zabbix -p -D zabbix < /usr/share/zabbix-server/mysql/data.sql

PostgreSQL

对于 PostgreSQL,这些命令将为用户 zabbix 创建一个数据库 zabbix,这是 zabbix_server.conf 中的默认设置,然后导入架构和初始数据

$ createuser zabbix
$ createdb zabbix -O zabbix
$ cat /usr/share/zabbix-server/postgresql/{schema,images,data}.sql | psql -U zabbix -d zabbix

数据库配置

现在使用数据库设置编辑 /etc/zabbix/zabbix_server.conf

/etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=test
LogType=system

ICMP/ping 发现

要在 Zabbix 中使用 ICMP 发现(例如 ping),安装 fping 软件包。

启动

如果您使用的是 MariaDB,启用启动 zabbix-server-mysql.service 单元;如果您使用的是 PostgreSQL,则 启用启动 zabbix-server-pgsql.service 单元。

通过本地 Web 服务器访问 Zabbix,例如:https://127.0.0.1/zabbix/,然后启动安装向导。

默认用户名是 Admin,密码是 zabbix

请参阅附录以获取官方文档的链接,其中解释了使用它的所有后续步骤。

Agent 设置

安装

为每个监控目标安装 zabbix-agent,包括安装了 zabbix-server 的监控服务器。zabbix-server 不再包含 zabbix-agent

配置

只需编辑 zabbix_agentd.conf 并将 server 变量替换为您的监控服务器的 IP。 只有来自此/这些 IP 的服务器才被允许访问 agent。

/etc/zabbix/zabbix_agentd.conf
Server=<IP of Zabbix server>
 ServerActive=<IP of Zabbix server>

此外,请确保您正在监控的设备上的端口 10050 未被阻止且已正确转发。

启动

启用启动 zabbix-agent.service 单元。

技巧和提示

调试 Zabbix agent

在客户端,您可以像这样检查项目的状态

$ zabbix_agentd -t hdd.smart[sda,Temperature_Celsius]

在服务器/监控端,尝试这个

$ zabbix_get -s host -k hdd.smart[sda,Temperature_Celsius]

监控 Arch Linux 系统更新

这里是如何使用自定义 UserParameter 监控您的 Arch Linux 客户端上可用的系统更新的方法

/etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
/etc/zabbix/zabbix_agentd.conf.d/archlinuxupdates.conf
UserParameter=archlinuxupdates,checkupdates | wc -l

您必须重启 zabbix-agentd 以应用新配置。 您稍后在 Web 前端中使用的项目的关键字是 archlinuxupdates。 它返回一个整数,表示可用更新的数量。

故障排除

错误 “指定的键过长;最大键长度为 767 字节”

导入数据库时,您可能会收到此错误消息。 为了解决这个问题,您必须更改 MariaDB 数据库的代码页配置:MariaDB#Using UTF8MB4

由于 MariaDB 数据库版本不受支持,无法启动 Zabbix 服务器

数据库版本很容易超过允许的最大版本。 要绕过此限制,请将以下内容添加到配置文件中

/etc/zabbix/zabbix_server.conf
AllowUnsupportedDBVersions=1

参见