环境

  • 操作系统:CentOS7 (192.168.1.100)
  • 数据库:MariaDB 10.1.26
  • Web后台:PHP 5.6.31
  • Web引擎:Nginx 1.12.1
  • Zabbix:Zabbix 3.0.10
  • 部署方式:单机部署

安装操作系统 CentOS

  • 推荐 RHEL6 及以上的 x64 版本。
  • 这里最小安装 CentOS7 ,外网不可达服务器可能需要配置本地 yum 源。

安装数据库 MariaDB

安装 PHP

  • PHP-5.5 及以上版本。
  • 本地如果已存在可用的 PHP ,则可跳过此步。
  • 安装方法很多,这里使用官方源码编译:
  • 下载 php-5.6.31.tar.bz2
  • 安装

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    #解压
    tar jxf php-5.6.31.tar.bz2 -C /root/
    cd /root/php-5.6.31/
    #安装依赖包
    yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel
    #创建安装目录
    mkdir /opt/php-5.6.31/etc/ -p
    ln -s /opt/php-5.6.31 /opt/php
    #检查编译环境
    ./configure  --prefix=/opt/php \
        --with-config-file-path=/opt/php/etc --with-bz2 --with-curl \
        --enable-ftp --enable-sockets --disable-ipv6 --with-gd \
        --with-jpeg-dir=/usr/local --with-png-dir=/usr/local \
        --with-freetype-dir=/usr/local --enable-gd-native-ttf \
        --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar \
        --with-gettext --with-libxml-dir=/usr/local --with-zlib \
        --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd \
        --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
    #编译安装
    make
    make install
  • 配置

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    #复制配置文件
    cp php.ini-production /opt/php/etc/php.ini
    cp /opt/php/etc/php-fpm.conf.default /opt/php/etc/php-fpm.conf
    #修改 /opt/php/etc/php.ini 的下面选项
    max_execution_time = 300
    memory_limit = 128M
    post_max_size = 16M
    upload_max_filesize = 2M
    max_input_time = 300
    date.timezone PRC
    always_populate_raw_post_data = -1
    #php 与 mysql 同机可指定 mysql 本地套接字
    pdo_mysql.default_socket = /tmp/mysql.sock #指定数据库本地套接字地址
    mysqli.default_socket = /tmp/mysql.sock #指定数据库本地套接字地址
    #修改 /opt/php/etc/php-fpm.conf 的下面选项
    user = nobody
    group = nobody
    # php 与 nginx 同机可指定 php 套接字,供 nginx 配置使用
    #listen = 127.0.0.1:9000
    listen = /dev/shm/phpfpm.sock
    listen.owner = nobody
    listen.group = nobody
    listen.mode = 0660
  • 启动

    1
    
    /opt/php/sbin/php-fpm

安装 Nginx

  • Nginx 的常见版本。
  • 本地如果已存在可用的 Nginx ,则无需再次安装,直接在配置文件中添加配置即可。
  • 安装方式很多,这里使用官方源码编译:
  • 下载 nginx-1.12.1.tar.gz
  • 安装

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    #解压
    tar zxf nginx-1.12.1.tar.gz -C /root/
    cd /root/nginx-1.12.1/
    #安装依赖包
    yum install pcre pcre-devel openssl openssl-devel
    #创建安装目录
    mkdir /opt/nginx-1.12.1
    ln -s /opt/nginx-1.12.1 /opt/nginx
    #检查编译环境
    ./configure --prefix=/opt/nginx \
        --with-http_ssl_module --with-pcre \
        --with-http_stub_status_module
    #编译安装
    make
    make install
  • 配置

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    #在 /opt/nginx/conf/nginx.conf 中配置 php
    server {
        listen 80;
        index index.php index.html index.html;
        root html;
        location /zabbix/ {
            access_log              /var/log/nginx/zabbix-access.log main;
            index                   index.php index.html index.html;
        }
        location ~ ^/zabbix/.+\.php$ {
            access_log              /var/log/nginx/zabbix-access.log login;
            index                   index.php index.html index.html;
            expires                 -1s;
            include                 fastcgi_params;
            try_files               $uri =404;
            fastcgi_pass            unix:/dev/shm/phpfpm.sock;
            fastcgi_index           index.php;
            fastcgi_param           PATH_INFO $fastcgi_path_info;
            fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            break;
        }
    }
  • 启动

    1
    
    /opt/nginx/sbin/nginx

安装 Zabbix Server

  • 推荐 Zabbix 3.0 及以上版本。
  • 安装方式很多,这里使用官方源码编译:
  • 下载 zabbix-3.0.10.tar.gz
  • 安装

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    #解压
    tar zxf zabbix-3.0.10.tar.gz -C /root/
    cd /root/zabbix-3.0.10/
    #安装依赖包
    yum install snmp-devel curl-devel
    #创建安装目录
    mkdir /opt/zabbix-server-3.0.10
    ln -s /opt/zabbix-server-3.0.10 /opt/zabbix-server
    #检查编译环境
    ./configure --prefix=/opt/zabbix-server/ --enable-server \
    --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
    #编译安装
    make
    make install
  • 创建数据库

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    mysql -uroot -p12345678
    mysql> create database db_zbx default charset utf8;
    mysql> create user zbx@localhost identified by 'zbx_pass';
    mysql> grant all on db_zbx.* to zbx@localhost;
    mysql> grant reload on *.* to zbx@localhost;
    mysql> flush privileges;
    mysql> quit;
    mysql -uzbx -pzbx_pass db_zbx < database/mysql/schema.sql
    mysql -uzbx -pzbx_pass db_zbx < database/mysql/images.sql
    mysql -uzbx -pzbx_pass db_zbx < database/mysql/date.sql
  • 配置

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    #在 /opt/zabbix-server/etc/zabbix_server.conf 中,修改如下配置
    DBHost=localhost
    DBName=db_zbx
    DBUser=zbx
    DBPassword=zbx_pass
    #这里的数据库是 mysql 且 DBHost 配置为 localhost,zabbix 会使用 mysql.sock 连接 mysql
    DBSocket=/tmp/mysql.sock
    DBPort=3306
    AllowRoot=1
    #在 /opt/zabbix-server/etc/zabbix_agentd.conf 中,修改如下配置
    EnableRemoteCommands=1
    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=127.0.0.1
    AllowRoot=1
  • 启动

    1
    2
    
    /opt/zabbix-server/sbin/zabbix_server
    /opt/zabbix-server/sbin/zabbix_agentd

配置 zabbix 管理网站

  • 部署前端文件

    1
    
    cp -ar frontends/php /opt/nginx/html/zabbix
  • 浏览器打开 http://192.168.1.100/zabbix/

  • 根据界面提示配置数据库及相关 zabbix 信息,生成配置文件 /opt/nginx/html/zabbix/conf/zabbix.conf.php

  • 修改 /opt/nginx/html/zabbix/conf/zabbix.conf.php

    1
    2
    3
    
    #zabbix server 与 nginx、php、mysql 同机时,可注释 DB['SERVER'] 和 DB['PORT'] 项,使 php 通过 mysql.sock 与本地 MariaDB 通信
    #$DB['SERVER']   = 'localhost';
    #$DB['PORT']     = '0';
    

登陆 zabbix 管理网站

在被监控服务器 (192.168.1.101) 上安装 Zabbix Agent

  • 推荐 Zabbix 3.0 及以上版本。
  • 安装方式很多,这里使用官方源码编译:
  • 下载 zabbix-3.0.10.tar.gz (同 server)
  • 安装

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    #解压
    tar zxf zabbix-3.0.10.tar.gz -C /root/
    cd /root/zabbix-3.0.10/
    #创建安装目录
    mkdir /opt/zabbix
    #检查编译环境
    ./configure --prefix=/opt/zabbix --enable-agent
    #编译安装
    make
    make install
  • 配置

    1
    2
    3
    4
    5
    6
    
    #在 /opt/zabbix/etc/zabbix-agentd.conf 中,修改如下配置
    EnableRemoteCommands=1
    Server=192.168.1.100
    ServerActive=192.168.1.100
    Hostname=192.168.1.101
    AllowRoot=1
  • 启动

    1
    
    /opt/zabbix/sbin/zabbix_agentd

管理界面增加监控主机

  • 登陆 zabbix 管理界面 http://192.168.1.100/zabbix
  • 在 “配置-主机” 下点击 “新增主机”, 名称填写被监控服务器中 /opt/zabbix/etc/zabbix_agentd.conf 中 Hostname 项(192.168.1.101)
  • 在主机 (192.168.1.101) 下添加需要的监控项、触发器及图形,即可完成该服务器的监控。

参考