zabbix 安装(源码方式)

  1. 基础环境
    强烈建议linux采用centos7.0及以上,对应的数据库为mysql,并和应用部署于同一台服务器。且mysql应安装5.7以上(默认使用innodb作为引擎)。如果安装centos6.7版本,会出现gcc版本较低导致不能编译高版本的mysql,而gcc升级为4.8会很耗时。
    zabbix rpm包下载地址:http://repo.zabbix.com/zabbix
    mysql版本目前需使用5.7,目前暂不支持8.0版本,即时安装成功后也会报错。
    php版本目前需使用5.6,暂不支持7.2版本(代码改版较大,会出现报错)
Linux版本:        Centos 7.0
Nginx版本:        1.14.0
Mysql版本:        mysql-boost-5.7.22
PHP版本:          5.6.36
Zabbix版本:       zabbix 3.4.9
  1. 前置条件

    在部署之前,系统SE服务、firewall服务最好均关闭。且一些基础的依赖包最好提前安装好,依赖包的安装源可以配置为阿里云或网易源,这里采用阿里云的源,具体配置方法参考:https://opsx.alibaba.com/mirror?lang=zh-cn

# Linux SE 服务关闭
[root@localhost ~]# vi /etc/selinux/config
SELINUX=disabled

# Linux Firewall 服务关闭
[root@localhost ~]# service iptables stop
[root@localhost ~]# chkconfig iptables off

# 安装依赖包
# 采用yum来安装依赖包,需要提前配置好yum源,置方法参考:https://opsx.alibaba.com/mirror
[root@localhost ~]# yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel cmake gcc* ncurses-devel mysql-devel net-snmp-devel freetype-devel libevent-devel
  1. 安装Nginx
    这里使用Nginx主要做HTTP代理服务。
    下述命令主要包含了创建用户,下载、配置、编译、安装Nginx,并创建对应的软链接在local目录下。如果以下链接不能下载Nginx,可将其在本地浏览器中下载好再上传到远程服务器。configure后主要参数说明:
    --with-http_stub_status_module:支持nginx状态查询
    --with-http_ssl_module:支持https
    --with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持
    --with-pcre:为了支持rewrite重写功能,必须制定pcre
[root@localhost ~]# useradd nginx -s /sbin/nologin -M
[root@localhost ~]# cd /app/soft && tar zxf nginx-1.14.0.tar.gz && cd nginx-1.14.0  
[root@localhost ~]# ./configure --prefix=/usr/local/product/nginx-1.14.0 --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre 
[root@localhost ~]# make && make install  
[root@localhost ~]# ln -s /usr/local/product/nginx-1.14.0 /usr/local/nginx  
  1. 安装PHP
    下述命令主要包含了PHP的下载、配置、编译、安装,配置软链接到local目录下,拷贝php配置参数到相关目录。
[root@localhost soft]# cd /app/soft && tar -zxvf php-5.6.36.tar.gz && cd php-5.6.36
[root@localhost soft]# ./configure --prefix=/usr/local/product/php-5.6.36 --with-config-file-path=/usr/local/product/php-5.6.36/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 --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath 
[root@localhost soft]# make && make install  
[root@localhost soft]# ln -s /usr/local/product/php-5.6.36 /usr/local/php 
[root@localhost soft]# cp php.ini-production /usr/local/php/etc/php.ini
[root@localhost soft]# cd /usr/local/php/etc/ && cp php-fpm.conf.default php-fpm.conf

# 修改php.ini参数(zabbix环境要求):
[root@localhost etc]# vi /usr/local/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 
mysqli.default_socket = /var/lib/mysql/mysql.sock
---------------------------------
  1. 安装MySQL
    如果本机原来装有低版本的mysql,则建议卸载后再安装新版本的mysql,或者参照网络教程,采取多版本共存的方式。另也可以采用MariaDB,对mysql数据库全面兼容。
[root@localhost soft]# groupadd mysql && useradd -r -g mysql -d /data -s /sbin/nologin mysql
[root@localhost soft]# chown -R mysql.mysql /data
[root@localhost soft]# cd /app/soft && tar -zxf mysql-boost-5.7.22.tar.gz && cd mysql-5.7.22

[root@localhost soft]# cmake . \
    -DCMAKE_INSTALL_PREFIX=/usr/local/product/mysql-5.7.22 \
    -DMYSQL_DATADIR=/data/mysql \
    -DDOWNLOAD_BOOST=1 \
    -DWITH_BOOST=/app/soft/mysql-5.7.22/boost \
    -DSYSCONFDIR=/etc \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DMYSQL_TCP_PORT=3306 \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_EXTRA_CHARSETS=all 
[root@localhost soft]# make && make install
[root@localhost soft]# ln -s /usr/local/product/mysql-5.7.22 /usr/local/mysql
[root@localhost soft]# cp /app/soft/mysql-5.7.22/support-files/mysql.server /etc/init.d/mysqld
[root@localhost soft]# chmod +x /etc/init.d/mysqld
[root@localhost soft]# mkdir /var/lib/mysql/ && chown -R mysql.mysql /var/lib/mysql
[root@localhost soft]# vi /etc/my.cnf
---------------------------
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
[mysql]
socket=/var/lib/mysql/mysql.sock
---------------------------

# 初始化数据库
[root@localhost soft]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql/
[root@localhost soft]# service mysqld start
[root@localhost soft]# /usr/local/mysql/bin/mysql -u root -p'临时密码'

mysql> alter user 'root'@'localhost' identified by "sql9981nan";

# 创建zabbix数据库及用户
# 5.7版本
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
# 8.0版本
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by "zabbix";
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' with grant option;
  1. 安装zabbix server
    在官网下载页面:https://www.zabbix.com/download,找到Zabbix Sources,下载最新LTS版本Zabbix 3.0 LTS 或者一般最新版本,目前为3.4.9。完成后上传至安装目录,如:/app/soft。
[root@localhost soft]# cd /app/soft && tar zxf zabbix-3.4.9.tar.gz && cd zabbix-3.4.9
[root@localhost soft]# ./configure \
    --prefix=/usr/local/zabbix/ \
    --enable-server \
    --enable-agent \
    --with-mysql \
    --with-net-snmp \
    --with-libcurl \
    --with-libxml2 \
    --enable-java
[root@localhost soft]# make && make install 

# 添加zabbix用户;导入数据库建库、配置文件(注意一定要按顺序导入,且当用于安装proxy时,仅需导入第一个即可。)

[root@localhost zabbix]# useradd zabbix -s /sbin/nologin -M  
[root@localhost zabbix]# mysql -uroot -psql9981nan zabbix < database/mysql/schema.sql  
[root@localhost zabbix]# mysql -uroot -psql9981nan zabbix < database/mysql/images.sql
[root@localhost zabbix]# mysql -uroot -psql9981nan zabbix < database/mysql/data.sql


# 执行数据库分区
# 参见“zabbix_性能调优”中mysql分区环节
  1. 管理网站配置
    配置Nginx运行环境,创建对应的目录;拷贝zabbix安装包内的php文件到对应目录;创建配置参数文件zabbix.conf并添加下述内容。
[root@localhost zabbix]# mkdir -p /app/web/qtopay.zabbix.site 
[root@localhost zabbix]# mkdir -p /app/log/zabbix 
[root@localhost zabbix]# cp -rp frontends/php/* /app/web/qtopay.zabbix.site/

[root@localhost ~]# cd /usr/local/nginx/conf
[root@localhost ~]# mkdir vhost && cd vhost
[root@localhost ~]# vi zabbix.conf 

server {
    listen 80;
    server_name qtopay.zabbix.site;
    access_log /app/log/zabbix/qtopay.zabbix.site.access.log main;
    index index.html index.php index.html;
    root /app/web/qtopay.zabbix.site;

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

    location ~ ^(.+.php)(.*)$ {  
        fastcgi_split_path_info ^(.+.php)(.*)$;  
        include fastcgi.conf;  
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;  
        fastcgi_param PATH_INFO $fastcgi_path_info;  
    }
}
  • 在Nginx安装目录(/usr/local/nginx/)的conf目录下找到nginx.conf文件,并修改其中的部分参数,可参照下述部分进行修改。
[root@localhost conf]# cat nginx.conf

user  nginx;  
worker_processes  1;  

#error_log  logs/error.log;  
#error_log  logs/error.log  notice;  
#error_log  logs/error.log  info;  

#pid        logs/nginx.pid;  

events {  
    worker_connections  1024;  
}  

    http {
        include       mime.types;  
        default_type  application/octet-stream;  

        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  
                    '$status $body_bytes_sent "$http_referer" '  
                    '"$http_user_agent" "$http_x_forwarded_for"';  
 
    access_log  logs/access.log  main;  

    sendfile        on;  
    #tcp_nopush     on;  
  
    #keepalive_timeout  0;  
    keepalive_timeout  65;  

    #gzip  on;  
    include vhost/*.conf;  

    ……  
    }
  • 编辑zabbix_server.conf配置文件,修改如下参数:
[root@localhost ~]# vi /usr/local/zabbix*/etc/zabbix_server.conf 

LogFile=/app/log/zabbix/zabbix_server.log
LogFileSize=10
PidFile=/app/log/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
  • 启动各个模块,并添加至启动项
[root@localhost ~]# /usr/local/nginx/sbin/nginx
[root@localhost ~]# /usr/local/php/sbin/php-fpm
[root@localhost ~]# /usr/local/zabbix*/sbin/zabbix_server

[root@localhost ~]# echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local 
[root@localhost ~]# echo "/usr/local/php/sbin/php-fpm" >>/etc/rc.local 
[root@localhost ~]# echo "/etc/init.d/mysqld start" >>/etc/rc.local
[root@localhost ~]# echo "/usr/local/zabbix*/sbin/zabbix_server" >>/etc/rc.local
  • 配置环境变量
[root@localhost ~]# vi ~/.bash_profile
---------------------
export MYSQL_HOME="/usr/local/mysql"
export ZABBIX_HOME="/usr/local/zabbix"
export ZABBIX_CFG="/usr/local/zabbix/etc"
export ZABBIX_ALERT="/usr/local/zabbix/share/zabbix"
export PHP_HOME="/usr/local/php"

PATH=$PATH:$HOME/bin:${MYSQL_HOME}/bin:${ZABBIX_HOME}/bin:${ZABBIX_HOME}/sbin:/${PHP_HOME}/sbin:${PHP_HOME}/bin

export PATH
---------------------
  1. web端初始化配置
    使用域名访问时注意添加本地hosts文件,或在域名中配置解析。如对应的访问地址为:qtopay.zabbix.site
    web界面初始化配置非常简洁,一路默认值next即可,唯一需要注意有一个步骤会提示下载配置文件zabbix.conf.php,然后保存至指定目录,按提示下载并上传至指定目录,并注意修改文件的属主为nginx:nginx。
    初次使用时,默认zabbix管理员登陆账户及密码为:Admin/zabbix
  2. 常见问题
  • 中文显示问题
    zabbix默认登陆界面是英文显示,zabbix-3.0.6之后的版本可以直接在用户资料界面设置语言为中文。但此时在部分图形展示界面还会出现乱码问题,按照如下操作即可解决。
    在本地字体目录(C:\Windows\Fonts)找到“simkai.ttf”(楷体,或其他支持中文的字体亦可。)并将字体上传至服务器指定目录下:/app/web/qtopay.zabbix.site/fonts,完成后执行下述命令:
    编辑文件defines.inc.php,将其中“DejaVuSans”字体修改为“simkai”
[root@zabbix ~]# vi /app/web/zabbix.qtopay.com/include/defines.inc.php 

// define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
// define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'simkai');
  • 创建分区表,提高性能
    mysql创建分区表后,需记得将housekeeper关闭。
# 导入存储过程脚本
mysql -uzabbix -pzabbix zabbix < partition_call.sql
mysql -uzabbix -pzabbix zabbix < partition_all.sql

# 定时任务调用存储过程脚本
1 1 * * * /usr/local/mysql/bin/mysql -uzabbix -pzabbix zabbix -e "CALL partition_maintenance_all('zabbix');" >> /app/logs/mysql_partition.log
  • php报错问题解决
    采用5.6版本的php,在进行web页面初始化时,会出现报错信息always_populate_raw_post_data option must be set to -1,这个报错信息可参考文档末端的“参考1”中的解决方案进行解决即可。以下内容添加$current = -1;即可
vi /app/web/zf.zabbix.site/include/classes/setup/CFrontendSetup.php
----------------
public function checkPhpAlwaysPopulateRawPostData() {
        $current = ini_get('always_populate_raw_post_data');
        $current = -1;
----------------

你可能感兴趣的:(zabbix 安装(源码方式))