Zabbix 7部署

镜像版本IP角色
AImaLinux9.610.0.23.202Zabbix Server
Centos7.910.0.21.196Zabbix Agent
AImaLinux

从源代码安装 Zabbix 7.0.18

1. 准备工作

  • 更新系统bash
sudo yum update -y

2. 安装依赖

  • 安装 EPEL 源bash
sudo yum install -y epel-release
  • 启用mariadb
sudo dnf module enable mariadb:10.11 -y
  • 安装开发工具和库bash
sudo yum groupinstall -y "Development Tools" 
sudo yum install -y make gcc curl-devel openssl-devel libxml2-devel glibc-devel glibc-devel.i686 libstdc++-devel libstdc++-devel.i686 net-snmp-devel mariadb-devel libevent-devel c-ares-devel pcre-devel

3. 安装 MariaDB

  • 安装 MariaDBbash
sudo dnf install -y mariadb-server mariadb
  • 启动并设置开机自启bash
sudo systemctl enable --now mariadb
  • 运行安全脚本bash
sudo mysql_secure_installation

4. 创建 Zabbix 用户和组

  • 创建 Zabbix 用户和组bash
sudo groupadd --system zabbix sudo useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

5. 下载并解压 Zabbix 源码

  • 下载 Zabbix 源码bash
wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.18.tar.gz
  • 解压源码bash
tar -zxvf zabbix-7.0.18.tar.gz cd zabbix-7.0.18

6. 配置和编译 Zabbix

  • 设置 CFLAGS bash
export CFLAGS="-std=gnu99"
  • 配置 Zabbixbash
./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-ares
  • 编译并安装bash
make install

7. 配置 MariaDB

  • 登录到 MariaDBbash
mysql -u root -p
  • 创建 Zabbix 数据库和用户sql
-- 创建 zabbix 数据库,使用 utf8 字符集
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

-- 创建一个专门的 zabbix 用户,并授予其访问 zabbix 数据库的所有权限 
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Gene@2025'; 
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; 

-- 使权限生效 
FLUSH PRIVILEGES; 

-- 退出 MySQL shell 
QUIT;
  • 导入 Zabbix 数据库bash
cd ~/zabbix-7.0.18/database/mysql/ 

# 1. 首先导入 schema.sql,创建表结构 
mysql -u zabbix -p zabbix < schema.sql 

# 2. 然后导入 images.sql,插入图标等二进制数据 
mysql -u zabbix -p zabbix < images.sql 

# 3. 最后导入 data.sql,插入配置初始数据(如用户、媒体类型等) 
mysql -u zabbix -p zabbix < data.sql

8. 安装 Zabbix Web 前端

  • 安装必要软件包bash
sudo dnf install -y nginx php php-fpm php-mysqlnd php-gd php-bcmath php-mbstring php-json php-xml php-ldap php-curl
  • 配置 Web 前端文件bash
# 创建 Web 目录并复制前端文件 
sudo mkdir -p /usr/share/nginx/html/zabbix 
sudo cp -r ~/zabbix-7.0.18/ui/* /usr/share/nginx/html/zabbix/ 

# 设置正确的文件所有权 
sudo chown -R nginx:nginx /usr/share/nginx/html/zabbix
  • 配置 PHP-FPM(命令行批量修改)bash
# 批量修改 PHP-FPM 配置 
sudo sed -i 's/^\(;\)\?user = .*/user = nginx/' /etc/php-fpm.d/www.conf 
sudo sed -i 's/^\(;\)\?group = .*/group = nginx/' /etc/php-fpm.d/www.conf 
sudo sed -i 's/^\(;\)\?listen.owner = .*/listen.owner = nginx/' /etc/php-fpm.d/www.conf 
sudo sed -i 's/^\(;\)\?listen.group = .*/listen.group = nginx/' /etc/php-fpm.d/www.conf 
sudo sed -i 's/^\(;\)\?listen.mode = .*/listen.mode = 0660/' /etc/php-fpm.d/www.conf 

# 启动并启用服务 
sudo systemctl enable --now php-fpm 
sudo systemctl restart php-fpm
  • 创建 Nginx 配置文件bash
# 创建 Zabbix Nginx 配置 
sudo tee /etc/nginx/conf.d/zabbix.conf > /dev/null << 'EOF' 
server { 
    listen 80; 
    server_name $(hostname -I | awk '{print $1}'); 
    root /usr/share/nginx/html; 
    index index.php index.html index.htm; 

    location /zabbix/ { 
        try_files $uri $uri/ /zabbix/index.php?$args; 
    } 

    location ~ \.php$ { 
        try_files $uri =404; 
        fastcgi_pass unix:/run/php-fpm/www.sock; 
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        include fastcgi_params;
        fastcgi_buffer_size 128k; 
        fastcgi_buffers 4 256k;     
        fastcgi_busy_buffers_size 256k; 
    } 
   
    location ~ /\.ht {  
        deny all; 
    } 
} 
EOF 

# 测试配置并重启 Nginx 
sudo nginx -t && sudo systemctl enable --now nginx && sudo systemctl restart nginx

9. 配置 Zabbix Server

  • 编辑 Zabbix Server 配置文件
sudo cp /usr/local/src/zabbix-7.0.18/conf/zabbix_server.conf /usr/local/etc/zabbix_server.conf sudo vim /usr/local/etc/zabbix_server.conf

修改以下配置:

DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix_password
  • 创建 Zabbix Server 服务文件 创建 /etc/systemd/system/zabbix-server.service 文件,内容如下:
[Unit] 
Description=Zabbix Server 
After=network.target 

[Service] 
Type=forking 
ExecStart=/usr/local/sbin/zabbix_server -c /usr/local/etc/zabbix_server.conf ExecStop=/usr/local/sbin/zabbix_server -c /usr/local/etc/zabbix_server.conf -x 
Restart=on-failure 
User=zabbix 
Group=zabbix

 [Install] 
WantedBy=multi-user.target
  • 启动 Zabbix Serverbash
sudo systemctl daemon-reload 
sudo systemctl start zabbix-server 
sudo systemctl enable zabbix-server

10. 配置 Zabbix Agent服务,不然会报错

  • 编辑 Zabbix Agent 配置文件
sudo cp ~/zabbix-7.0.18/conf/zabbix_agentd.conf /usr/local/etc/ 
sudo vim /usr/local/etc/zabbix_agentd.conf

修改以下配置:

Server=10.0.23.202 
ServerActive=10.0.23.202
  • 创建 Zabbix Agent 服务文件 创建 /etc/systemd/system/zabbix-agent.service 文件,内容如下:
[Unit] 
Description=Zabbix 
Agent After=network.target 

[Service] 
Type=forking 
ExecStart=/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf ExecStop=/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf -x 
Restart=on-failure 
User=zabbix 
Group=zabbix 

[Install] 
WantedBy=multi-user.target
  • 启动 Zabbix Agentbash
sudo systemctl daemon-reload sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent

11. 配置防火墙和 SELinux

  • 配置防火墙bash
sudo firewall-cmd --permanent --add-service=http 
sudo firewall-cmd --permanent --add-port=10050/tcp sudo firewall-cmd --reload
  • 宽松处理 SELinux(用于测试环境)bash
sudo setsebool -P httpd_can_network_connect on 
sudo setenforce 0

一键修复所有 PHP 配置要求的命令

执行以下命令来修改 PHP 配置:

# 备份原始配置文件 
sudo cp /etc/php.ini /etc/php.ini.backup 

# 使用 sed 批量修改所有必需的参数 
sudo sed -i 's/^\(;\)\?post_max_size = .*/post_max_size = 16M/' /etc/php.ini 
sudo sed -i 's/^\(;\)\?max_execution_time = .*/max_execution_time = 300/' /etc/php.ini 
sudo sed -i 's/^\(;\)\?max_input_time = .*/max_input_time = 300/' /etc/php.ini 

# 同时设置其他推荐的 PHP 参数(用于 Zabbix) 
sudo sed -i 's/^\(;\)\?date.timezone = .*/date.timezone = Asia\/Shanghai/' /etc/php.ini 
sudo sed -i 's/^\(;\)\?max_input_vars = .*/max_input_vars = 10000/' /etc/php.ini 

# 重启 PHP-FPM 使配置生效 
sudo systemctl restart php-fpm

账号密码

Admin zabbix

Centos

1. 准备工作

  • 更新系统bash
sudo yum update -y

2. 安装依赖

  • 安装 EPEL 源bash
sudo yum install -y epel-release
  • 安装开发工具和库bash
sudo yum groupinstall -y "Development Tools" 
sudo yum install -y make gcc curl-devel openssl-devel libxml2-devel glibc-devel glibc-devel.i686 libstdc++-devel libstdc++-devel.i686 net-snmp-devel mariadb-devel libevent-devel c-ares-devel pcre-devel

3.创建 Zabbix 用户和组

  • 创建 Zabbix 用户和组bash
sudo groupadd --system zabbix 
sudo useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

4. 下载并解压 Zabbix 源码

  • 下载 Zabbix 源码bash
wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.18.tar.gz
  • 解压源码bash
tar -zxvf zabbix-7.0.18.tar.gz cd zabbix-7.0.18

5. 配置和编译 Zabbix

  • 设置 CFLAGSbash
export CFLAGS="-std=gnu99"
  • 配置 Zabbixbash
./configure --enable-agent
  • 编译并安装bash
make install

6. 配置 Zabbix Agent服务

  • 编辑 Zabbix Agent 配置文件
sudo cp ~/zabbix-7.0.18/conf/zabbix_agentd.conf /usr/local/etc/ sudo vim /usr/local/etc/zabbix_agentd.conf

修改以下配置:

Server=10.0.23.202 ServerActive=10.0.23.202
  • 创建 Zabbix Agent 服务文件 创建 /etc/systemd/system/zabbix-agent.service 文件,内容如下:
[Unit] 
Description=Zabbix Agent 
After=network.target 

[Service] 
Type=forking 
ExecStart=/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf ExecStop=/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf -x 
Restart=on-failure 
User=zabbix 
Group=zabbix 

[Install] WantedBy=multi-user.target
  • 启动 Zabbix Agentbash
sudo systemctl daemon-reload sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent

7. 配置防火墙和 SELinux

  • 配置防火墙bash
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-port=10050/tcp 
sudo firewall-cmd --reload
  • 宽松处理 SELinux(用于测试环境)bash
sudo setsebool -P httpd_can_network_connect on 
sudo setenforce 0

Leave a Comment