Zabbix的安装(Docker容器安装和编译安装)

1.Docker 容器化安装

  1. 下载镜像,需要采取一些特殊手段进行:

    # 这是网站:https://hub.docker.com/r/zabbix/zabbix-server-mysql
    docker pull zabbix/zabbix-server-mysql
    
    # 这是网站:https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql
    docker pull zabbix/zabbix-web-nginx-mysql
    
    # 在准备一个mysql镜像
    docker pull mysql
    # 这里我选择一个 mysql8.0-debian⁠ 的版本
    docker pull mysql8.0:debian
    
  2. 上传镜像

    docker load -i mysql-8.0.tar
    docker load -i zbx-server-mysql-7.0.9.tar
    docker load -i zbx-web-ngx-mysql-7.0.9.tar
    
    • mysql-8.0.tar:这是 数据库服务镜像 ,Zabbix 服务器将会连接到这个数据库以存储和查询监控数据
    • zbx-server-mysql-7.0.9.tar:这是 Zabbix 服务器 的镜像,并且它已经与 MySQL 数据库 配合使用,专门用于与 MySQL 后端连接和管理监控数据。
    • zbx-web-ngx-mysql-7.0.9.tar:这是 Zabbix Web 前端 ,使用了 Nginx 作为反向代理服务器,MySQL 作为后端数据库。它提供了一个 Web 界面来管理 Zabbix,显示监控数据、配置和报警等。
  3. 编写docker-compose.yml进行运行:

    mkdir zabbix
    vim docker-compose.yml
    # 将一下内容输入到文件中
    #version: "3.8"
    services:
      db:
        image: mysql:8.0-debian
        container_name: zbx_db
        networks:
          - zabbix
        restart: always
        volumes:
          - ./zbx_db/:/var/lib/mysql/
        environment:
          MYSQL_ROOT_PASSWORD: "Root123"
          MYSQL_DATABASE: "zabbix"
          MYSQL_USER: "zabbix"
          MYSQL_PASSWORD: "pwd"
        command:
          - --character-set-server=utf8
          - --collation-server=utf8_bin
          - --default-authentication-plugin=mysql_native_password
    
      zbx_server:
        image: zabbix/zabbix-server-mysql:7.0.9-ubuntu
        container_name: zabbix-server-mysql-7.0
        networks:
          - zabbix
        restart: always
        ports:
          - 10051:10051
        depends_on:
          - db
        environment:
          DB_SERVER_HOST: "db"
          MYSQL_ROOT_PASSWORD: "Root123"
          MYSQL_DATABASE: "zabbix"
          MYSQL_USER: "zabbix"
          MYSQL_PASSWORD: "pwd"
    
      zbx_web:
        image: zabbix/zabbix-web-nginx-mysql:7.0.9-ubuntu
        container_name: zabbix-web-nginx-mysql
        networks:
          - zabbix
        restart: always
        ports:
          - 80:8080
        depends_on:
          - db
          - zbx_server
        environment:
          ZBX_SERVER_HOST: "zbx_server"
          DB_SERVER_HOST: "db"
          MYSQL_ROOT_PASSWORD: "Root123"
          MYSQL_DATABASE: "zabbix"
          MYSQL_USER: "zabbix"
          MYSQL_PASSWORD: "pwd"
    
    networks:
      zabbix:
        driver: bridge
        ipam:
          config:
            - subnet: 172.200.0.0/16
              ip_range: 172.200.1.0/24
              gateway: 172.200.1.1
    
  4. 使用 docker-compose 启动容器

    docker-compose up --build -d
    
  5. 检查容器是否启动

    docker ps
    # 输出:
    a235290c6927   zabbix/zabbix-web-nginx-mysql:7.0.9-ubuntu   "docker-entrypoint.sh"    23 minutes ago   Up 23 minutes (healthy)   8443/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp   zabbix-web-nginx-mysql
    
    05643d182a53   zabbix/zabbix-server-mysql:7.0.9-ubuntu      "/usr/bin/docker-ent…"   23 minutes ago   Up 23 minutes             0.0.0.0:10051->10051/tcp, :::10051->10051/tcp     zabbix-server-mysql-7.0
    
    f4d04652ade0   mysql:8.0-debian                             "docker-entrypoint.s…"   23 minutes ago   Up 23 minutes             3306/tcp, 33060/tcp                               zbx_db
    
    # 如何看到则启动成功
    
  6. 访问 Zabbix Web 前端

    # 浏览器输入
    http://<服务器IP地址>:8080
    
    # Zabbix 的用户名和密码:
    用户名:Admin
    密码:zabbix
    

2.Docker 编译安装

  1. 清理 YUM 缓存(目前使用的Kylin系统)

    yum clean all
    rm -rf /var/cache/yum
    yum makecache
    
  2. 安装 Zabbix 编译安装的依赖

    yum install -y --skip-broken gcc gcc-c++ make cmake pcre-devel unixODBC unixODBC-devel httpd fping curl-devel net-snmp net-snmp-devel OpenIPMI-devel ipmitool snmpd libxml2 libxml2-devel bzip2-devel curl-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel libicu-devel libmcrypt-devel libzip-devel libssl-devel libpng-devel libjpeg-devel libxslt-devel openldap-devel
    
  3. 接下来安装php,但是在安装之前需要安装SQLite,yum安装也可以,但是有可能版本会低,所以建议编译安装,目前我的这个机器yum安装的是低于这个版本的,所以我选择编译安装,如果是高版本则选择跳过这个步骤即可

    # 目前我使用的是Kylin V10 SP3的机器,缺的依赖有些多,所以这里在补充一些,与上面的有些冲突,不过不碍事儿
    yum install -y gcc libxml2-devel bzip2-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel libicu-devel libmcrypt-devel libcurl-devel aspell-devel autoconf bison re2c libtool libxslt-devel libzip-devel openldap-devel php-ldap openldap openldap-devel
    
    # 下载源码包
    wget https://www.sqlite.org/2025/sqlite-autoconf-3490100.tar.gz
    
    # 解压并进入目录
    tar -xzf sqlite-autoconf-3490100.tar.gz
    cd sqlite-autoconf-3490100
    
    # 编译安装
    ./configure --prefix=/usr/local/sqlite3
    make -j$(nproc)
    make install
    
    # 手动指定SQLite路径可以避免其他软件编译安装找不到
    echo "export PKG_CONFIG_PATH=/usr/local/sqlite3/lib/pkgconfig:$PKG_CONFIG_PATH" >> /etc/profile
    echo "export LD_LIBRARY_PATH=/usr/local/sqlite3/lib:$LD_LIBRARY_PATH" >> /etc/profile
    source /etc/profile
    
    # 返回上层目录
    cd ..
    
  4. 这里还需要一些依赖,可能是我使用Kylin V10的原因依赖缺的比较多 oniguruma、oniguruma-devel、libxslt、libxslt-devel软件包,可以使用yum安装,如果已经安装则跳过该步骤即可

    # 安装依赖软件包
    yum install -y oniguruma oniguruma-devel libxslt libxslt-devel
    
    # 检查 pkg-config 是否能找到 oniguruma:
    pkg-config --modversion oniguruma
    
    # 检查 pkg-config 是否能找到 libxslt,正确输出版本号(≥1.1.0),说明安装成功。
    pkg-config --modversion libxslt
    
    # 做一个lib库的软连接和添加环境变量
    ln -s /usr/lib64/libldap-2.4.so.2 /usr/lib/libldap.so
    ln -s /usr/lib64/libldap_r-2.4.so.2 /usr/lib/libldap_r.so
    echo "export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH" >> /etc/profile
    source /etc/profile
    
  5. 编译安装php,因为zabbix7.0LTS需要PHP8.0版本以上才行,目前yum源中没有需要编译安装

    # 下载php的源码包,这是当前事件最新的2025/3/29
    wget https://www.php.net/distributions/php-8.0.0.tar.gz
    
    # 解压源码包
    tar -xzvf php-8.0.0.tar.gz
    
    # 进入解压后的源码目录
    cd php-8.0.0
    
    # 创建安装目录
    mkdir -p /application/php8.0.0
    
  6. 开始配置编译选项,前面的依赖都以解决的话,就可以进行配置编译选项了,如果有报错安装相应的软件包即可,别慌~~

    # 配置编译选项
    ./configure  \
    --prefix=/application/php8.0.0/ \
    --with-config-file-path=/application/php8.0.0/lib \
    --with-fpm-user=nginx \
    --with-fpm-group=nginx \
    --enable-fpm \
    --enable-opcache \
    --disable-debug \
    --disable-rpath \
    --enable-shared \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --enable-mysqlnd-compression-support \
    --with-zlib \
    --enable-xml \
    --disable-rpath \
    --enable-bcmath \
    --enable-shmop \
    --enable-sysvsem \
    --with-curl \
    --enable-mbregex \
    --enable-mbstring \
    --enable-intl \
    --enable-ftp \
    --enable-gd \
    --enable-gd-jis-conv \
    --with-jpeg   \
    --with-freetype  \
    --with-openssl \
    --with-mhash \
    --enable-pcntl \
    --enable-sockets \
    --with-zip \
    --enable-soap \
    --with-gettext \
    --disable-fileinfo \
    --with-pear \
    --with-ldap=shared \
    --without-gdbm 
    
    # 选项解释:
    --prefix=/application/php8.0.0/: 安装路径,表示将 PHP 安装到 /usr/local/php。
    --with-config-file-path=/application/php8.0.0/lib: 配置文件路径,通常是 PHP 配置文件(如 php.ini)所在的目录。这里一定要指定正确,要不修改起来很麻烦
    --enable...: 启用组件
    --with...: 选择安装组件
    # 其他参数:根据需要启用或禁用 PHP 扩展。
    
  7. 检查是否配置编译选项成功

    # 编译安装之后会看到如下信息则表示安装成功:
    +--------------------------------------------------------------------+
    | License:                                                           |
    | This software is subject to the PHP License, available in this     |
    | distribution in the file LICENSE. By continuing this installation  |
    | process, you are bound by the terms of this license agreement.     |
    | If you do not agree with the terms of this license, you must abort |
    | the installation process at this point.                            |
    +--------------------------------------------------------------------+
    
    Thank you for using PHP.
    
  8. 编译 PHP并安装

    # 这条命令将 liblber 和 libldap 的库路径添加到 LDFLAGS 环境变量中。
    export LDFLAGS="-L/usr/lib64 -llber -lldap"
    
    # 编译安装正式开始
    make -j$(nproc) && make install
    
    # 弹出以下信息表示安装成功:
    [PEAR] Archive_Tar    - installed: 1.4.9
    [PEAR] Console_Getopt - installed: 1.4.3
    [PEAR] Structures_Graph- installed: 1.1.1
    [PEAR] XML_Util       - installed: 1.4.5
    warning: pear/PEAR dependency package "pear/Archive_Tar" installed version 1.4.9 is not the recommended version 1.4.4
    [PEAR] PEAR           - installed: 1.10.12
    Wrote PEAR system config file at: /application/php8.0.0/etc/pear.conf
    You may want to add: /application/php8.0.0/lib/php to your php.ini include_path
    /root/php-8.0.0/build/shtool install -c ext/phar/phar.phar /application/php8.0.0/bin/phar.phar
    ln -s -f phar.phar /application/php8.0.0/bin/phar
    Installing PDO headers:           /application/php8.0.0/include/php/ext/pdo/
    
  9. 检查安装版本

    /application/php8.0.0/bin/php -v
    
    # 输出一下信息表示安装成功
    PHP 8.0.0 (cli) (built: Mar 30 2025 15:31:52) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    
  10. 配置 PHP 和 PHP-FPM

    cp ~/php-8.0.0/php.ini-development /application/php8.0.0/lib/php.ini
    chmod 644 /application/php8.0.0/lib/php.ini
    ln -sf /application/php8.0.0/lib/php.ini /etc/php-fpm.d/php.ini
    
    sed -i 's#^max_input_time = #max_input_time = 300#g' /etc/php-fpm.d/php.ini
    sed -i 's#^post_max_size = #post_max_size = 16M#g' /etc/php-fpm.d/php.ini
    sed -i 's#^max_execution_time = #max_execution_time = 300#g' /etc/php-fpm.d/php.ini
    sed -i 's#^;extension=ldap#extension=ldap#g' /etc/php-fpm.d/php.ini
    
    # 复制 PHP-FPM 配置文件
    cp /application/php8.0.0/etc/php-fpm.conf.default /application/php8.0.0/etc/php-fpm.conf
    
  11. 配置php的命令到环境变量

    echo "export PATH=$PATH:/application/php8.0.0/bin:/application/php8.0.0/sbin" >> /etc/profile
    source /etc/profile
    
  12. 创建 php-fpm.service 文件,让systemctl管理php-fpm服务

    vim /etc/systemd/system/php-fpm.service
    
    # 写入以下内容
    [Unit]
    Description=PHP FastCGI Process Manager
    After=network.target
    
    [Service]
    Type=simple
    Environment="PATH=/application/php8.0.0/bin:/usr/local/bin:/usr/bin:/bin"
    Environment="LD_LIBRARY_PATH=/usr/local/sqlite3/lib:/root/sqlite-autoconf-3490100"
    ExecStart=/application/php8.0.0/sbin/php-fpm --fpm-config /application/php8.0.0/etc/php-fpm.conf
    ExecReload=/bin/kill -USR2 $MAINPID
    PIDFile=/application/php8.0.0/var/run/php-fpm.pid
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    # 解释参数
    ExecStart=/usr/local/php/sbin/php-fpm:以后台模式启动 php-fpm,让 systemd 进行管理。想让前台模式启动的话添加
    --nodaemonize 参数即可,例如 ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize
    
    ExecReload=/bin/kill -USR2 $MAINPID:当 systemctl reload php-fpm 时,会向 php-fpm 发送 USR2 信号,使其平滑重启。
    
    Restart=always:如果 php-fpm 崩溃,会自动重启。
    
    LimitNOFILE=100000:提高文件句柄数,避免高并发时因文件打开数受限而导致问题。
    
  13. 复制一份php-fpm的配置文件

    cp /application/php8.0.0/etc/php-fpm.d/www.conf.default /application/php8.0.0/etc/php-fpm.d/www.conf
    ln -s /application/php8.0.0/etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf
    
  14. 重新加载systemd并启用php-fpm

    # 重新加载 systemd 配置
    systemctl daemon-reload
    
    # 设置 php-fpm 开机自启
    systemctl enable php-fpm
    
    # 启动 php-fpm
    systemctl start php-fpm
    
    # 检查运行状态
    systemctl status php-fpm
    
  15. 安装nginx

    yum install -y nginx
    
  16. 更改php配置文件

    # 查看配置文件
    cat /etc/php-fpm.d/www.conf | egrep -v "^;|^$|^ "
    
    # 修改用户名和用户组
    sed -i 's#^user = nobody#user = nginx#g' /etc/php-fpm.d/www.conf
    sed -i 's#^group = nobody#group = nginx#g' /etc/php-fpm.d/www.conf
    
    
    # 检查是否更改成功
    cat /etc/php-fpm.d/www.conf | grep "^group ="
    
    # 是否是nginx
    user = nginx
    group = nginx
    
  17. 启动php服务并设置开机自启

    systemctl enable php-fpm
    systemctl start php-fpm
    systemctl status php-fpm
    # 查看是否已经running
    
  18. 安装mysql8.4.4LTS长期支持版数据库

    # 进入mysql的网站,注意这里需要登陆账号密码才能下载
    https://dev.mysql.com/downloads/mysql/
    

    image

  19. 上传到机器中并解压

    # 上传的话自己想办法哈,scp也可以,像xshell拖动也可以
    mkdir -p ~/mysql-8.4.4
    tar xvf mysql-8.4.4-1.el8.x86_64.rpm-bundle.tar -C ~/mysql-8.4.4
    cd ~/mysql-8.4.4
    
    # 全部的安装包:
    mysql-community-client-8.4.4-1.el8.x86_64.rpm
    mysql-community-client-debuginfo-8.4.4-1.el8.x86_64.rpm
    mysql-community-client-plugins-8.4.4-1.el8.x86_64.rpm
    mysql-community-client-plugins-debuginfo-8.4.4-1.el8.x86_64.rpm
    mysql-community-common-8.4.4-1.el8.x86_64.rpm
    mysql-community-debuginfo-8.4.4-1.el8.x86_64.rpm
    mysql-community-debugsource-8.4.4-1.el8.x86_64.rpm
    mysql-community-devel-8.4.4-1.el8.x86_64.rpm
    mysql-community-icu-data-files-8.4.4-1.el8.x86_64.rpm
    mysql-community-libs-8.4.4-1.el8.x86_64.rpm
    mysql-community-libs-compat-8.4.4-1.el8.x86_64.rpm
    mysql-community-libs-compat-debuginfo-8.4.4-1.el8.x86_64.rpm
    mysql-community-libs-debuginfo-8.4.4-1.el8.x86_64.rpm
    mysql-community-server-8.4.4-1.el8.x86_64.rpm
    mysql-community-server-debug-8.4.4-1.el8.x86_64.rpm
    mysql-community-server-debug-debuginfo-8.4.4-1.el8.x86_64.rpm
    mysql-community-server-debuginfo-8.4.4-1.el8.x86_64.rpm
    mysql-community-test-8.4.4-1.el8.x86_64.rpm
    mysql-community-test-debuginfo-8.4.4-1.el8.x86_64.rpm
    
  20. 安装rpm包(其实可以不全部下载,但是这里为了方便就全部下载了,但是要严格安装顺序才能全部安装)

    # 安装基础组件
    sudo rpm -ivh mysql-community-common-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-icu-data-files-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-libs-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-libs-compat-8.4.4-1.el8.x86_64.rpm
    
    # 安装安装客户端相关
    sudo rpm -ivh mysql-community-client-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-client-plugins-8.4.4-1.el8.x86_64.rpm
    
    # 安装调试信息(如果需要调试)
    sudo rpm -ivh mysql-community-client-debuginfo-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-client-plugins-debuginfo-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-libs-debuginfo-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-libs-compat-debuginfo-8.4.4-1.el8.x86_64.rpm
    
    # 安装服务器相关包
    sudo rpm -ivh mysql-community-server-8.4.4-1.el8.x86_64.rpm
    
    # 安装服务器调试包(可选)
    sudo rpm -ivh mysql-community-server-debug-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-server-debug-debuginfo-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-server-debuginfo-8.4.4-1.el8.x86_64.rpm
    
    # 安装测试包(可选)
    sudo rpm -ivh mysql-community-test-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-test-debuginfo-8.4.4-1.el8.x86_64.rpm
    
    # 安装剩余包
    sudo rpm -ivh mysql-community-debugsource-8.4.4-1.el8.x86_64.rpm
    sudo rpm -ivh mysql-community-devel-8.4.4-1.el8.x86_64.rpm
    
  21. 启动数据库,设置开机自启并查看状态

systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
# 看到running即安装成功
  1. 查看root临时密码

    grep 'temporary password' /var/log/mysqld.log
    
    #显示内容为:
    2025-03-29T11:00:55.961479Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: A*bn&qW<g8uu
    
    A*bn&qW<g8uu ---> 这个就是临时密码
    
  2. 登陆mysql数据库

    mysql -uroot -p [临时密码]
    
  3. 关闭密码复杂性检查

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'Wjsw1234!';
    SET GLOBAL validate_password.policy = 0;  -- 禁用密码策略
    SET GLOBAL validate_password.length = 6;  -- 设置密码长度要求为5个字符
    SET GLOBAL validate_password.mixed_case_count = 0;  -- 禁用大小写字母混合检查
    SHOW VARIABLES LIKE 'validate_password%';
    
  4. 重新修改密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'wjsw11223344';
    FLUSH PRIVILEGES;
    
  5. 创建 Zabbix 数据库

    CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
    CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
    GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
    FLUSH PRIVILEGES;
    
    # 检查是否创建成功
    show databases;
    select user,host from mysql.user;
    
    # 退出
    EXIT;
    
  6. 检查mysql数据库服务状态

    ss -lntup | grep mysql
    ps -ef | grep mysql
    
  7. zabbix_server安装

    cd ~
    wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.11.tar.gz
    tar xf zabbix-7.0.11.tar.gz
    cd zabbix-7.0.11
    mkdir -p /application/zabbix_server7.0.11
    
  8. 编译安装

    yum install -y libevent libevent-devel
    
    ./configure --prefix=/application/zabbix_server7.0.11 --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc  && make && make install
    
    # 参数说明
    --prefix #编译安装路径
    --enable-server #启动server端
    --enable-agent #启动agent端
    --with-mysql #编译连接mysql相关依赖包
    --with-net-snmp #启动snmp相关,用于snmp监控设备
    --with-libcurl #启动curl相关
    --with-libxml2 #启动xml相关
    --with-unixodbc #启动odbc相关用于监控数据库
    --enable-java #启动java-agent 用于监控java类
    
    # 如果报错应该是mysql的devel的库没有安装,请检查是否安装
    which mysql_config
    
    # 没有安装则进入刚才压缩的mysql目录进行安装
    rpm -ivh mysql-community-devel-8.4.4-1.el8.x86_64.rpm --force --nodeps
    
    # 这里报错基本就是依赖库没有安装,缺少什么依赖库安装什么依赖即可,并添加至环境变量即可
    
  9. 更改 Zabbix 配置文件内容

    cd /application/zabbix_server7.0.11/etc
    sed -i 's/# DBPassword=/DBPassword=zabbix/g' zabbix_server.conf
    sed -i 's/# DBHost=localhost/DBHost=localhost/g' zabbix_server.conf
    
  10. 检查是否成功修改

    cat zabbix_server.conf | egrep -v "^#|^$"
    
    LogFile=/tmp/zabbix_server.log
    DBHost=localhost  #---->这里
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix #---->这里
    Timeout=4
    LogSlowQueries=3000
    StatsAllowedIP=127.0.0.1
    EnableGlobalScripts=0
    
  11. 创建 Zabbix 用户

    groupadd --system zabbix
    useradd --system -g zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
    
  12. 添加 Zabbix 所需要的数据到数据库

    echo "log_bin_trust_function_creators = 1" >> /etc/my.cnf
    systemctl restart mysqld
    
    mysql -uzabbix -pzabbix zabbix < ~/zabbix-7.0.11/database/mysql/schema.sql
    mysql -uzabbix -pzabbix zabbix < ~/zabbix-7.0.11/database/mysql/images.sql
    mysql -uzabbix -pzabbix zabbix < ~/zabbix-7.0.11/database/mysql/data.sql
    
    • 这里还有一个警告可以忽略,因为mysql在提醒你警告你别再命令行使用密码来登录数据库传数据

      mysql: [Warning] Using a password on the command line interface can be insecure.
      
    • 如果之间添加zabbix没有权限,所以要赋予权限,如果没有赋予权限的话会导致失败,失败信息如下:

    这里会报一个错误,错误原因是MySQL 开启了 binlog(二进制日志),但 zabbix 账号没有 SUPER 权限。Zabbix 数据库的 SQL 文件中包含存储函数(Stored Function),而创建存储函数时,MySQL 需要 SUPER 权限或启用 log_bin_trust_function_creators 选项。

  13. 启动 Zabbix并查看能否运行

    # 进入命令文件目录
    cd /application/zabbix_server7.0.11/sbin
    
    # 启动zabbix
    ./zabbix_server -c ../etc/zabbix_server.conf
    
    # 查看日志
    tail -200f /tmp/zabbix_server.log
    
  14. 另外开一个窗口检查端口信息

    netstat -lntup|grep 10051
    
    # 类似于这样的信息
    tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      77119/./zabbix_serv
    
  15. 检查完成之后杀死关于 Zabbix 的进程

    ps -aux | grep zabbix | awk '{print $2}' | xargs kill -9
    
    # kill: 向 124710 发送信号失败: 没有那个进程:这个是成功的
    
  16. 配置systemd文件来使用systemctl命令管理zabbix_server进程

    vim /usr/lib/systemd/system/zabbix_server.service
    
    # 将一下内容添加到文件中:
    [Unit]
    Description=Zabbix Server
    After=syslog.target
    After=network.target
    
    [Service]
    Environment="CONFFILE=/application/zabbix_server7.0.11/etc/zabbix_server.conf"
    EnvironmentFile=-/etc/zabbix_server.conf
    Type=forking
    Restart=on-failure
    PIDFile=/tmp/zabbix_server.pid
    KillMode=control-group
    ExecStart=/application/zabbix_server7.0.11/sbin/zabbix_server -c $CONFFILE
    ExecStop=/bin/kill -SIGTERM $MAINPID
    RestartSec=10s
    User=zabbix
    Group=zabbix
     
    [Install]
    WantedBy=multi-user.target
    
  17. 重新载入服务配置文件

    systemctl daemon-reload
    
  18. 启动 Zabbix 服务

    systemctl restart zabbix_server
    systemctl enable zabbix_server
    systemctl status zabbix_server
    
  19. 复制zabbix编译目录下的ui目录到/zabbix/目录下

    cp -a ~/zabbix-7.0.11/ui /application/zabbix_server7.0.11
    
  20. 编辑nginx配置文件

    vim /etc/nginx/conf.d/firewalld.zabbix.cn.conf 
    
    # 将以下内容写入文件中:
    server {
       #监听端口
       listen 80;
       #配置虚拟主机域名
       server_name firewalld.zabbix.cn;  -------> 写自己的域名
       #设置网站的根目录。所有请求的静态文件(如图片、CSS 文件、JavaScript 文件等)都将从该目录中查找
       root /application/zabbix_server7.0.11/ui;
       #设置客户端缓存
       client_body_buffer_size 100k;
       #自定义错误日志位置
       error_log /var/log/nginx/zabbix-error.log notice;
       #自定义连接日志位置
       access_log /var/log/nginx/zabbix-access.log main;
    
       #当访问根路径 / 时,Nginx 会默认尝试加载 index.php 文件
       location / {
          index index.php;
       }
       
       location ~ .*\.php$ {
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
          fastcgi_read_timeout 300;
       }
    }
    
  21. 检查并修改配置文件,并启动

    # 修改
    sed -i 's#^;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /application/php8.0.0/etc/php-fpm.conf
    sed -i 's#^;error_log = log/php-fpm.log#error_log = log/php-fpm.log#g' /application/php8.0.0/etc/php-fpm.conf
    
    nginx -t
    systemctl enable nginx
    systemctl start nginx
    systemctl status nginx
    
    php-fpm -t
    systemctl enable php-fpm
    systemctl restart php-fpm
    systemctl status php-fpm
    
    systemctl enable zabbix
    systemctl restart zabbix
    systemctl status zabbix
    
    systemctl enable mysqld
    systemctl restart mysqld
    systemctl status mysqld
    
  22. 来到zabbix的最后一个安装页面的时候,提示没有配置文件,下载即可,然后导入到/application/zabbix_server7.0.11/ui目录

    /application/zabbix_server7.0.11/ui/conf ---> 导入到这个目录中
    
    # 这样的目录结构
    [root@binary-kylin /application/zabbix_server7.0.11/ui/conf]$ ll
    总用量 12
    drwxr-xr-x 2 ren  ren     6  3月 27 14:23 certs
    -rw-r--r-- 1 ren  ren   946  3月 24 16:44 maintenance.inc.php
    -rw------- 1 root root 1738  3月 30 18:42 zabbix.conf.php
    -rw-r--r-- 1 ren  ren  1722  3月 24 16:44 zabbix.conf.php.example
    
  23. 将页面下载好的文件赋予权限,ui赋予属组属主

    chmod 600 zabbix.conf.php
    chown -R nginx.nginx ui
    
  24. 赋予权限之后再来一遍第42的步骤就可以了

  25. 访问即可 http://firewalld.zabbix.cn


posted @ 2025-03-31 10:21  小时候老白啦  阅读(157)  评论(0)    收藏  举报