搭建zabbix
Zabbix 跑起来不难,搭建难的搭建是你装完第一遍之后,还想装第二遍。搭建我前后搭过七八套 Zabbix,搭建从 4.0 到 6.4,搭建踩的搭建坑基本都集中在数据库、SELinux 和 PHP 配置这三块。搭建下面这份记录以 Rocky Linux 9 + MySQL 8 + Zabbix 6.4 为例,搭建步骤是搭建干净的,但我会把容易翻车的搭建地方标出来。 新装的搭建机器别急着装包,先把 SELinux 关掉或者设成 permissive。搭建Zabbix 的搭建 Web 前端和 agent 在 enforcing 模式下经常被拦,日志里报 permission denied,搭建你查半天以为是搭建权限问题,其实是 SELinux 在作祟。改 防火墙这边,Zabbix server 要开 10051,Web 前端要开 80 或 443,agent 要开 10050。生产环境别图省事直接 MySQL 8 的默认字符集是 utf8mb4,这个不用改。但 Zabbix 要求 建库建用户这步很多人复制粘贴就过了,但密码策略在 MySQL 8 里变严格了。如果报密码太简单,要么换复杂密码,要么临时 导入初始数据的时候注意顺序:先 官方仓库直接装最省心。Rocky 9 上先装 改 PHP 那边, 先启 zabbix-server,再启 httpd 和 php-fpm。用 浏览器访问 MySQL 8 的 caching_sha2_password 认证插件,Zabbix 6.4 之前的版本不支持。如果 server 日志报认证失败,把用户改成 还有 agent 的 搭完这一套,监控本机基本够用了。要监控别的机器,装 agent 就行,配置比 server 简单得多。真正花时间的是后面调模板、配触发器,那又是另一个故事了。先把系统环境收拾干净
/etc/selinux/config,把 SELINUX=enforcing 改成 permissive,然后 setenforce 0 立即生效。systemctl stop firewalld,用 firewall-cmd --permanent --add-port=10051/tcp 这种写法,重载后生效。数据库不是装完就行
log_bin_trust_function_creators=1,否则导入 schema 时会报错,提示你无法创建函数。在 /etc/my.cnf 的 [mysqld] 段加上这一行,重启 MySQL。set global validate_password.policy=0。我一般直接给个带大小写和符号的密码,省事。 CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix@2024'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES;
schema.sql,再 images.sql,最后 data.sql。这三个文件在源码包的 database/mysql/ 目录下。data.sql 导入慢,几万条记录,别以为卡死了。Zabbix server 和前端分开装
zabbix-release-6.4-1.el9.noarch.rpm,然后 dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent。这一条命令把该装的都装了。/etc/zabbix/zabbix_server.conf,重点就三行:DBHost=localhost、DBName=zabbix、DBUser=zabbix、DBPassword=你的密码。别漏了 DBPassword,默认是注释掉的。/etc/php-fpm.d/zabbix.conf 里把 date.timezone 设成 Asia/Shanghai。不设的话前端会报时区错误,页面能打开但图表时间全乱。启动顺序和验证
systemctl enable --now zabbix-server zabbix-agent httpd php-fpm 一次搞定。然后 tail -f /var/log/zabbix/zabbix_server.log,看到 “server #0 started” 才算真正跑起来。http://你的IP/zabbix,默认账号 Admin,密码 zabbix。进去第一件事改密码,第二件事检查 “Reports → System information”,看 server 是否在运行。如果显示 “Zabbix server is not running”,八成是 SELinux 或者数据库连不上,回去查日志。几个我踩过的坑
mysql_native_password:ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';。6.4 之后原生支持了,但老版本升级上来的容易忘这茬。Server 配置项,填的是 Zabbix server 的 IP,不是 agent 自己的 IP。这个搞反了,agent 日志里会一直报 “no active checks on server”,但服务状态是 active,新手很容易懵。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-