Zabbix
本文档旨在帮助在 Alpine Linux 操作系统上安装 Zabbix 服务器软件和 Zabbix agent。有关如何配置和使用 Zabbix 的说明以及许多有用的教程,请访问 https://www.zabbix.com。
安装 Lighttpd 和 PHP
基本安装
要首先安装其他软件包,请激活 community 软件包仓库 并更新软件包索引
安装所需的软件包
# apk add lighttpd php82 fcgi php82-cgi
配置 Lighttpd
编辑 lighttpd.conf (/etc/lighttpd/lighttpd.conf) 并取消注释以下行
内容 /etc/lighttpd/lighttpd.conf
编辑 mod_fastcgi.conf (/etc/lighttpd/mod_fastcgi.conf),查找并更改 /usr/bin/php-cgi 为 /usr/bin/php-cgi82。
内容 /etc/lighttpd/mod_fastcgi.conf
启动 lighttpd
服务并将其添加到默认运行级别
# rc-service lighttpd start # rc-update add lighttpd default
对于 Zabbix,您将必须安装以下两个额外的软件包,否则 Zabbix 将无法运行。 1. php82-mbstring 2. php82-pgsql
要安装这两个软件包
apk add php82-mbstring php82-pgsql
配置 PostgreSQL
安装 PostgreSQL
apk add postgresql postgresql-client
现在配置 PostgreSQL
rc-service postgresql setup rc-service postgresql start rc-update add postgresql
安装 Postgres 并运行 rc-service postgresql setup 后,我收到了一个错误
initdb: error: could not access directory "/var/lib/postgresql/16/data": Permission denied mv: can't rename '/var/lib/postgresql/16/data/postgresql.conf': No such file or directory mv: can't rename '/var/lib/postgresql/16/data/pg_hba.conf': No such file or directory mv: can't rename '/var/lib/postgresql/16/data/pg_ident.conf': No such file or directory $: sudo ls -l /var/lib/postgresql/ total 4 drwxr-x--- 3 root root 4096 Mar 19 11:27 16
我必须更改 /var/lib/postgresql/16 的所有权
sudo chown postgres:postgres /var/lib/postgresql/16
安装 Zabbix
apk add zabbix zabbix-pgsql zabbix-webif zabbix-setup
现在我们需要设置 zabbix 数据库。在下面的示例中,将“*********”替换为真实密码
psql -U postgres postgres=# create user zabbix with password '*********'; postgres=# create database zabbix owner zabbix; postgres=# \q cd /usr/share/zabbix/database/postgresql cat schema.sql | psql -U zabbix zabbix cat images.sql | psql -U zabbix zabbix cat data.sql | psql -U zabbix zabbix
为 Zabbix web-frontend 文件创建软链接
rm /var/www/localhost/htdocs -R ln -s /usr/share/webapps/zabbix /var/www/localhost/htdocs
编辑 PHP 配置以满足一些 zabbix 要求。编辑 /etc/php82/php.ini 并至少配置以下值
max_execution_time = 600 expose_php = Off date.timezone = <insert your timezone here> post_max_size = 32M upload_max_filesize = 16M max_input_time = 600 memory_limit = 256M
同时注释掉 (doc_root & user_dir),方法是在它们前面加上 #。
在 /etc/zabbix/zabbix_server.conf 中配置以下条目,其中 DBPassword 是为上面的数据库选择的密码
DBName=zabbix # Database user DBUser=zabbix # Database password # Comment this line if no password used DBPassword=********* FpingLocation=/usr/sbin/fping
启动 Zabbix 服务器
rc-update add zabbix-server rc-service zabbix-server start
修复 conf 目录的权限。
chown -R lighttpd /usr/share/webapps/zabbix/conf
现在您应该可以浏览到 Zabbix 前端:http://yourservername/。
或
现在您应该可以浏览到 Zabbix 设置前端:http://yourserverip/instal.php。
按照设置说明配置 Zabbix,提供上面使用的数据库信息。
设置完成后,使用以下信息登录:登录名:Admin 密码:zabbix。(如 https://www.zabbix.com/documentation/current/en/manual/installation 中所述)
最后,Zabbix 需要特殊权限才能使用 fping 二进制文件。
chmod u+s /usr/sbin/fping
在受监控服务器上安装 Zabbix Agent
Zabbix 可以监控几乎任何操作系统,包括 Alpine Linux 主机。完成以下步骤以在 Alpine Linux 上安装 Zabbix agent。
确保 readproc 组存在(自 alpine-baselayout-2.0_rc1-r1 起添加了支持),方法是将以下行添加到 /etc/group
readproc:x:30:zabbix
安装 agent 软件包
apk add zabbix-agent
编辑 /etc/zabbix/zabbix_agentd.conf 文件并至少配置以下选项
Server=<ip or hostname of zabbix server> Hostname=<ip or hostname of zabbix agent> ListenPort=10050
启动 zabbix-agent
rc-update add zabbix-agentd rc-service zabbix-agentd start
如果您想在远程机器上使用 SNMP agent 进行监控,则必须在 zabbix 服务器上添加这些软件包
apk add net-snmp net-snmp-tools
并在远程机器上添加这些软件包
apk add net-snmp
可选:添加主机、检查和通知的速成课程
注意: 这是可选的,因为它不是 Alpine Linux 特有的,但我想添加一些关于如何在未安装 agent 的服务器上执行简单检查并在状态更改时收到通知的说明。
管理 -> 媒介类型 -> 电子邮件
- 设置服务器、helo、电子邮件发件人地址
管理 -> 用户
- 设置每个将收到通知的用户,确保他们已添加媒介类型“电子邮件”及其地址
配置 -> 主机 -> 创建主机
- 在 Linux 服务器主机组中
- 定义 dns 名称、ip、通过 IP 连接
- 如果机器是仅使用 SNMP 监控的简单网络设备,请将其添加到 Template_SNMPv2_Device,即可完成。
配置 -> 模板 -> 创建模板
- 给它一个名称(Template_Alpine_Linux_Infra_HTTP)
- 在模板组中
配置 -> 模板 -> Template_Alpine_Linux_Infra_HTTP -> 项目
- 创建项目
- 主机:Template_Alpine_Linux_Infra_HTTP
- 描述:HTTP 基本检查
- 类型:简单检查
- 键:http,80
配置 -> 模板 -> Template_Alpine_Linux_Infra_HTTP -> 触发器
- 创建触发器
- 名称:“HTTP 触发器”
- 表达式:{Template_Alpine_Linux_Infra_HTTP:http,80.last(0)}#1
- 严重性:高
配置 -> 动作 ->
- 创建动作
- 名称:电子邮件通知
- 事件源:触发器
- 默认主题:在开头添加“{HOST.DNS}:”
- 默认消息:在开头添加“{HOST.DNS}:”
- 条件:使主机必须来自“Linux 服务器”主机组,并且 Template_Alpine_Linux_Infra_HTTP:HTTP 触发器”不是 1
- 向受影响的用户发送电子邮件