# Zabbix 服务端与 Agent 安装 ## 场景 要给一批服务器和交换机上监控,能看 CPU/内存/磁盘,出问题发邮件或钉钉。 ## 前置条件 - 一台 Linux 做服务端(2C4G 起步,磁盘 100G) - 一个数据库(MySQL/PostgreSQL,Zabbix 自带模板) - 能发邮件或用 Webhook 推告警 ## 配置 ```bash # 1. 装数据库 dnf install -y mysql-server systemctl enable --now mysqld mysql -e "CREATE DATABASE zabbix CHARACTER SET utf8mb4;" mysql -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '强密码';" mysql -e "GRANT ALL ON zabbix.* TO 'zabbix'@'localhost';" # 2. 装 Zabbix 源和组件 rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent # 3. 导入表结构 zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \ mysql --default-character-set=utf8mb4 -uzabbix -p zabbix # 4. 配数据库密码 sed -i 's/^# DBPassword=.*/DBPassword=强密码/' /etc/zabbix/zabbix_server.conf # 5. 启动 systemctl enable --now zabbix-server zabbix-agent httpd php-fpm ``` 浏览器打开 `http://IP/zabbix`,默认 `Admin` / `zabbix`。 ## 验证 ```bash systemctl status zabbix-server tail -f /var/log/zabbix/zabbix_server.log zabbix_server -V ``` 网页能登录、`Reports → System information` 里没有红色报错。 ## 回滚 ```bash systemctl disable --now zabbix-server zabbix-agent httpd php-fpm dnf remove -y zabbix-server-mysql zabbix-web-mysql ``` ## 坑 - **PHP 时区没配**,网页打开报 `Timezone for PHP is not set`,改 `php.ini` 的 `date.timezone`。 - 导入 SQL 用错字符集,中文界面变问号。 - 数据库密码里有特殊字符,`sed` 替换会出错,直接手改配置文件。 - 服务端和 agent 版本差太多会连不上。 - 默认模板的阈值不一定适合你,先观察一周再调。 - 监控端口 10051/10050 要放行,agent 默认只听 127.0.0.1 之外的地址。