zoukankan      html  css  js  c++  java
  • zabbix3.4.2的安装及配置

    zabbix3.4.2的安装及配置是建立在lnmp环境搭建的基础上,前面的博文已详尽介绍了lnmp环境的安装,可移步参考。

    一、安装依赖库

    #yum install -y net-snmp net-snmp-devel curl curl-devel mariadb-devel libevent libevent-devel pcre-devel libxml2-devel libcurl-deve

    # yum -y  install mariadb-server

    二、下载源码包,顺带着也安装一下zabbix-get

    #wget -O zabbix-3.4.2.tar.gz http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.2/zabbix-3.4.2.tar.gz/download

    #wget http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-get-3.4.4-2.el6.x86_64.rpm

    #yum install -y zabbix-get-3.4.4-2.el6.x86_64.rpm

    里面有几种数据库,但是我们用mysql,所以进入mysql数据库创建脚本目录,可以看到有schema.sql、images.sql、data.sql这三个文件 ,进入准备好的mysql数据库,输入密码,进入MySQL控制台,创建数据库zabbix,并且数据库编码使用utf8,允许账户zabbix能从本机连接到数据库zabbix,刷新系统授权表

    #cd /usr/local/src/zabbix-3.4.2/database/mysql

    #mysql -uroot -p

    mysql> create database if not exists zabbix default character set utf8 collate utf8_general_ci;
    grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';

    flush privileges;

     
    为了安全考虑zabbix只使用普通用户运行,假如你当前用户叫sa,那么你运行他,他便使用sa身份运行。但是如果你在root环境下运行zabbix,那么zabbix将会主动使用zabbix用户来运行。但是如果你的系统没有名叫zabbix的用户,你需要创建一个用户,如下:

    #groupadd zabbix

    #useradd -g zabbix zabbix -s /sbin/nologin
    # cd /usr/local && chown -R zabbix:zabbix zabbix

    mysql -uzabbix -pzabbix;

    zabbix server与proxy需要数据库,agent不需要。尤其要注意的是proxy只需要导入一个sql文件,而server一共要导入3个sql文件。我当时在搭建proxy的时候导入了3个sql,导致出现报错。后来才发现proxy只需要导入一个表结构即可。进入数据库,准备导库,注意:请按照以上顺序进行导入,否则会出错,导入zabbix数据表结构:

    #mysql> use zabbix;

    mysql> source /usr/local/src/zabbix-3.4.2/database/mysql/schema.sql;

    mysql> source /usr/local/src/zabbix-3.4.2/database/mysql/data.sql;

    mysql> source /usr/local/src/zabbix-3.4.2/database/mysql/images.sql;

    mysql> quit

    退出
    #exit 

    也可以或者这样导入

    #mysql -uzabbix -pzabbix -hlocalhost zabbix < /usr/local/src/zabbix-3.4.2/database/mysql/schema.sql

    mysql -uzabbix -pzabbix -hlocalhost zabbix < /usr/local/src/zabbix-3.4.2/database/mysql/images.sql

    mysql -uzabbix -pzabbix -hlocalhost zabbix < /usr/local/src/zabbix-3.4.2/database/mysql/data.sql

    三、 编译安装zabbix

    #yum install zabbix-server-mysql zabbix-web-mysql -y

    #cd /usr/local/src/zabbix-3.4.2

    #./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-mysql=/usr/bin/mysql_config --enable-proxy

    如果出现报错,安装报错提示的依赖包,再次运行上面的编译命令,直到没有报错(如下面截图):
    这里写图片描述
    然后运行:

    #make && make install

    四、zabbix相关配

    创建日志目录文件:

    # mkdir /usr/local/zabbix/logs
    # chown zabbix:zabbix logs

     可以查看启动日志:

    # tail -100f /usr/local/zabbix/logs/zabbix_server.log

    常见启动错误:

    ./zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

    解决:

    # ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib64/

    修改agent配置文件:

    #cd /usr/local/zabbix/etc/

    #mv zabbix_agentd.conf zabbix_agentd.conf.bak

    # cat zabbix_agentd.conf.bak | grep -v "#" | grep -v "^$" > zabbix_agentd.conf

    #vim zabbix_agentd.conf

    LogFile=/usr/local/zabbix/logs/zabbix_agentd.log

    Server=127.0.0.1

    ServerActive=127.0.0.1   # 主动向zabbix server发送监控内容

    Hostname=Zabbix server

     #配置zabbix 服务器

    #cd /usr/local/zabbix/etc/

    #cp zabbix_server.conf  zabbix_server.conf.bak

     #vim /etc/zabbix/zabbix_server.conf

     DBName=zabbix

     DBUser=root

    DBPassword=zabbix

    DBPort=3306

    echo "/usr/local/mysql/lib" >> /etc/ld.so.conf

    ldconfig

    /usr/local/zabbix/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

    /usr/local/zabbix/sbin/zabbix_agentd

     #配置zabbix web

    vim /usr/local/nginx/conf.d/zabbix.conf

    server {

    listen 80;

    server_name localhost;

     access_log /usr/local/nginx/zabbix/localhost/access.log main;

    index index.php index.html index.html;

    root /home/data/zabbix;

      location / {

     try_files $uri $uri/ /index.php?$args;

     }

      location ~ .*.(php)?$ {

     expires -1s;

    try_files $uri =404;

    fastcgi_split_path_info ^(.+.php)(/.+)$;

    include fastcgi_params;

     fastcgi_param PATH_INFO $fastcgi_path_info;

     fastcgi_index index.php;

     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    fastcgi_pass 127.0.0.1:9000;

     }

     }

     cp /home/data/zabbix/zabbix/conf/zabbix.conf.php.example /home/data/zabbix/zabbix/conf/zabbix.conf.php

     vim /home/data/zabbix/zabbix/conf/zabbix.conf.php

     <?php

     // Zabbix GUI configuration file.

     global $DB;

      $DB['TYPE'] = 'MYSQL';

    $DB['SERVER'] = 'localhost';

     $DB['PORT'] = '0';

    $DB['DATABASE'] = 'zabbix';

    $DB['USER'] = 'root';

    $DB['PASSWORD'] = 'xxxxx';

    // Schema name. Used for IBM DB2 and PostgreSQL.

    $DB['SCHEMA'] = '';

    $ZBX_SERVER = 'localhost';

    $ZBX_SERVER_PORT = '10051';

    $ZBX_SERVER_NAME = 'zabbix-server';

     $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

    #绑定hosts之后,打开浏览器访问

    修改server端配置文件:

    备份原配置文件,然后去掉注释:

    [root@console etc]# mv zabbix_server.conf zabbix_server.conf.bak
    [root@console etc]# cat zabbix_server.conf.bak | grep -v "#" | grep -v "^$" > zabbix_server.conf

    最终改后的配置文件内容如下:

    #mv zabbix_server.conf zabbix_server.conf.bak
    # cat zabbix_server.conf LogFile=/usr/local/zabbix/logs/zabbix_server.log DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix # 注意mysql服务器上的mysql.sock文件路径,一般zabbix server和mysql在同一台就改为/tmp/mysql.sock,否则不修改 DBSocket=/tmp/mysql.sock Timeout=4 LogSlowQueries=3000
    AlertScriptsPath=/usr/local/zabbix/alertscripts

    创建自定义脚本目录,设置权限,目录下的脚本,可以被zabbix调用

    #mkdir /usr/local/zabbix/alertscripts

    #chown zabbix.zabbix -R /usr/local/zabbix

    更改php.ini文件

    #sed -i 's/post_max_size = 8M/post_max_size = 32M/g' /usr/local/php/etc/php.ini

    #sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /usr/local/php/etc/php.ini

    #sed -i 's/;date.timezone =/date.timezone =PRC/' /usr/local/php/etc/php.ini

    #sed -i 's/max_execution_time = 30/max_execution_time = 600/g' /usr/local/php/etc/php.ini

    #sed -i 's/max_input_time = 60/max_input_time = 600/g' /usr/local/php/etc/php.ini

    #sed -i 's/memory_limit = 128M/memory_limit = 256M/g' /usr/local/php/etc/php.ini

    #vim /usr/local/php/etc/php.ini

    cgi.fix_pathinfo=1

    重启php-fpm

    #/etc/init.d/php-fpm restart

    进入源码目录,复制启动脚本

    #cd /usr/local/src/zabbix-3.4.2/misc/

    #cp init.d/tru64/zabbix_server /etc/init.d/

    #cp init.d/tru64/zabbix_agentd /etc/init.d/

    #chmod +x /etc/init.d/zabbix_*

    #vim /etc/init.d/zabbix_agentd

    DAEMON=/usr/local/zabbix/sbin/zabbix_agentd

    vim /etc/init.d/zabbix_server

    DAEMON=/usr/local/zabbix/sbin/zabbix_server

    由于zabbix_server 服务不支持 chkconfig,使用下列方法自启动
    vim /etc/init.d/zabbix_server
    在#!/bin/sh下面一行添加

    #chkconfig: 345 95 95 ##这里在配置文件里面行首“#”表示注释

    #description: Zabbix_Server ##这里再配置文件里面行首“#”表示注释

    vim /etc/init.d/zabbix_agentd
    在#!/bin/sh下面一行添加

    #chkconfig: 345 95 95 ##这里是在配置文件里面行首“#”表示注释,

    #description: Zabbix_agentd ##这里再配置问价里面行首“#”表示注释

    设置开机自启:

    添加开机启动脚本

    cp /usr/local/src/zabbix-2.2.6/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server #服务端

    cp /usr/local/src/zabbix-2.2.6/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd #客户端

    chmod +x /etc/rc.d/init.d/zabbix_server #添加脚本执行权限

    chmod +x /etc/rc.d/init.d/zabbix_agentd #添加脚本执行权限

    chkconfig zabbix_server on #添加开机启动

    chkconfig zabbix_agentd on #添加开机启动

    #chkconfig zabbix_server on
    #chkconfig zabbix_agentd on

    vim /etc/ld.so.conf
    在后面加一行:/usr/local/mysql/lib/

    重新加载:

    #ldconfig
    #/etc/init.d/zabbix_server start
    #/etc/init.d/zabbix_agentd start
    #netstat -ntpl|grep zabbix
    tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      21188/zabbix_agentd
    tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      21140/zabbix_server

    必须要看到10050和10051端口都起来

    复制php页面,并设置权限

    #cp -rf /usr/local/zabbix-3.4.2/frontends/php/ /usr/local/zabbix/php
    #chown www.www -R /usr/local/zabbix/php/

    配置虚拟主机
    请相应修改你的配置文件路径

    编辑nginx配置文件

    server {

           listen       80;

           server_name  localhost;

            access_log /data/logs/nginx/nginxaccess.log ;

            index index.php index.html index.html;

            root /data/site/huotouyihao;

           location / {

            try_files $uri $uri/ /index.php?$args;

           }

           location ~ .*.(php)?$

           {

           expires -1s;

           try_files $uri =404;

           fastcgi_split_path_info ^(.+.php)(/.+)$;

           include fastcgi_params;

           fastcgi_param PATH_INFO $fastcgi_path_info;

           fastcgi_index index.php;

           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

            fastcgi_pass 127.0.0.1:9000;

           }

     #gzip on;

        server {

            listen       80;

            server_name  localhost;

            access_log  /data/logs/nginx/nginxaccess.log;

            index index.phpindex.html;

            location / {

            try_files $uri$uri/ /index.php?$args;

            }

            location ~ .php${

            root html;

            fastcgi_pass127.0.0.1:9000;

            fastcgi_indexindex.php;

            includefastcgi_params;

            fastcgi_paramSCRIPT_FILENAME /usr/local/nginx/html(注意前面目录是用户自定义的数据目录)$fastcgi_script_name;

            }

            error_page   500 502 503 504  /50x.html;

            location =/50x.html {

                root   html;

            }

    server {
            listen       80;
            server_name monitor.ttlsa.com;
            access_log  /data/logs/nginx/monitor.ttlsa.com.access.log  main;
     
            index index.html index.php index.html;
            root /data/site/monitor.ttlsa.com;
     
            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;
            }
    }


    vim /usr/local/nginx/conf/nginx.conf

    # cat /usr/local/nginx/conf/nginx.conf
    server {
            listen   80;
            server_name localhost;
            root /usr/local/zabbix/php;
            index index.php index.html index.htm;
    
            location / {
                if (!-e $request_filename) {
                    rewrite  ^(.*)$  /index.php/$1  last;
                    break;
                }
            }
    
            location ~ .php {
                    fastcgi_pass   127.0.0.1:9000;
                    fastcgi_index  index.php;
                    include        fastcgi_params;
                    set $real_script_name $fastcgi_script_name;
                    if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
                       set $real_script_name $1;
                       set $path_info $2;
                    }
    
                    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name
    ;
                    fastcgi_param SCRIPT_NAME $real_script_name;
                    fastcgi_param PATH_INFO $path_info;
            }
    
    }

    重新加载nginx

    /etc/init.d/nginx restart

    停止zabbix server

    # killall -9 zabbix_server

    编辑php配置文件,开启中文

    #vim /usr/local/zabbix/php/include/locales.inc.php
    'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => true],
    #/etc/init.d/php-fpm restart
    拷贝前端文件

    接下来就是进入zabbix的web界面了,这时候需要把前端文件copy到nginx的HTML目录下

    1 mkdir /usr/local/nginx/html/zabbix
    2 cd /usr/local/src/zabbix-3.4.2/frontends/php/
    3 cp * /usr/local/nginx/html/zabbix/

    进入web界面:http://ip/zabbix/

    下面是安装过程遇到的问题

    提示不满足zabbix的先决条件

    根据提示去更改php.ini的相关数值,参考上面的先决条件

    在这个过程可能会涉及到php模块的安装,可以参考php扩展模块的安装方法安装就能完成

     

    到网页访问,开始安装:(访问之前检查下防火墙,selinux)
    这里写图片描述
    这里写图片描述

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里就有问题了,报了一个小错。解决办法:

    #ln -s /var/lib/mysql/mysql.sock /tmp/
    #vim /usr/local/php/etc/php.ini
    Mysql.default_socket = /var/lib/mysql/mysql.sock

    这里写图片描述

    #/etc/init.d/php-fpm restart

    在退回一步,然后再接着下一步就可以了
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这就安装成功了!
    如果想将语言调成中文也可以:
    这里写图片描述

    至此就大功告成了!

    附一些可能出现的错误以后慢慢补充:
    这里写图片描述
    解决办法:

    打开/usr/local/php/etc/php.ini文件把always_populate_raw_post_data = -1这一行注释打开,
    保存重启php-fpm

    后续会继续补充其他可能报错

    关于作者:博主思想敏锐,涉猎甚广,英语学士,法律硕士,熟悉c,web,js,java, php,目前主要从事linux服务器运维及计算机硬件维护。
  • 相关阅读:
    java序列化和反序列化使用总结
    什么是N+1查询?
    Oracle insert /*+ APPEND */原理解析
    Oracle redo与undo
    MongoDB(三)-- 执行JS、界面工具
    几种Bean的复制方法性能比较
    Kafka(三)-- Kafka主要参数
    Kafka(二)-- 安装配置
    Kafka(一)-- 初体验
    Nginx(十二)-- Nginx+keepalived实现高可用
  • 原文地址:https://www.cnblogs.com/Anwar/p/9761235.html
Copyright © 2011-2022 走看看