• zabbix server源码安装


    一.准备工作

    yum -y install net-snmp-devel php-bcmath php-ctype php-xml php-xmlreader php-xmlwriter php-session php-net-socket php-mbsting php-gettext php-ldap   #依赖关系 

    1.创建zabbix用户

    groupadd zabbix
    useradd -g zabbix -M -s /sbin/nologin zabbix
    

    2.调整服务器时间

    监控端和被监控端的时间应同步

    yum install -y rdate
    rdate -s  time-b.nist.gov
    
    yum install ntp.x86_64 -y
    ntpdate cn.pool.ntp.org
    clock -w

    以上时间同步方法二选一

      

    二.zabbix server安装

    1.安装

    wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.7/zabbix-3.2.7.tar.gz/download -P /download
    wget https://www.zabbix.com/downloads/3.2.0/zabbix_agents_3.2.0.linux2_6.amd64.tar.gz -P /download
    cd /download
    tar -zxvf zabbix-3.2.7.tar.gz
    cd zabbix-3.2.7
    ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --enable-java
    make && make install 

    2.创建zabbix数据库

    mysql -uroot -p123456 -hlocalhost
    create user 'zabbix'@'localhost' identified by 'aixocm';
    create database zabbix character set utf8;
    grant all on zabbix.* to zabbix@'%' identified by 'aixocm';
    flush privileges;

    3.顺序导入zabbix数据  

    cd /download/zabbix-3.2.7
    mysql -uroot -paixocm -h localhost zabbix <database/mysql/schema.sql 
    mysql -uroot -paixocm -h localhost zabbix <database/mysql/images.sql 
    mysql -uroot -paixocm -h localhost zabbix <database/mysql/data.sql 

    4.修改php.ini

    vi /usr/local/php/etc/php.ini

    zabbix要求php下列参数为以下值

    post_max_size 16M
    max_execution_time 300
    max_input_time = 300
    date.timezone = Asia/Shanghai
    always_populate_raw_post_data = -1 

    5.拷贝zabbix前端文件至nginx站点目录

    cp -rf /download/zabbix-3.2.7/frontends/php/ /www/
    
    mv /www/php /www/zabbix

    6.修改nginx配置nginx.conf

    vi /usr/local/nginx/conf/nginx.conf

    user  deamon;
    worker_processes  8;  #指定了要开启的进程数,每进程占用10M~12M的内存,建议和CPU的核心数量一样多的进程就行了。
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx/nginx.pid;
    #Specifies the value for maximum file descriptors that can be opened by this process.
    #events 用来指定Nginx工作模式以及连接数上限
    events {
        use epoll;  #使用epoll高效模式,适用于Linux,Unix使用kqueue
        worker_connections  100000; #定义Ningx没个进程最大的连接数。默认为1024,受到文件句柄的约束。
    }
    worker_rlimit_nofile 100000; #打开的文件句柄数量最高为10万
    
    
    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  /var/log/nginx/access.log  main;
        sendfile        on;
        #tcp_nopush     on;
        #keepalive_timeout  0;
        keepalive_timeout  65;
        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k; #客户端请求头部的缓冲区大小,一般一个请求头的大小不会超过1k
        large_client_header_buffers 4 32k; #客户请求头缓冲大小 nginx默认会用client_header_buffer_size这个buffer来读取header值
        client_max_body_size 8m; #设定通过nginx上传文件的大小
    
    
        gzip              on; #该指令用于开启或关闭gzip模块(on/off)
        gzip_min_length   1k; #设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取
        gzip_buffers      4 16k; #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流
        gzip_http_version 1.0; #识别http的协议版本
        gzip_comp_level   2;   #gzip压缩比,1压缩比最小处理速度最快
            #匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的
        gzip_types        text/plain application/x-javascript text/css application/xml text/javascript;
        gzip_vary         on; #和http头有关系,加个vary头,给代理服务器用的
    
        charset      utf-8;  #字符集为utf-8
    
        access_log   off;    # 日常日志关闭
        log_not_found off;   # 日常日志关闭
    
    #fastcgi_temp_path  /etc/nginx/tmp;    
    #fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=MYAPP:100m inactive=60m;
    #fastcgi_cache_key " request_method request_uri";
    
        fastcgi_connect_timeout 300; #指定连接到后端FastCGI的超时时间。
        fastcgi_send_timeout 300; #向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。
        fastcgi_read_timeout 300; #接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间。
        fastcgi_buffer_size 254k; #指定读取FastCGI应答第一部分需要用多大的缓冲区
        fastcgi_buffers 16 256k; #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答。
        fastcgi_busy_buffers_size 512k; #这个指令我也不知道是做什么用,只知道默认值是fastcgi_buffers的两倍。
        fastcgi_temp_file_write_size 512k; #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍。
    
    
        server {
            listen       80 ; #监听端口号
                    #域名为
            server_name  localhost;
            # 指定网站的目录
                    root         /www/;
                    # localtion模块指定网站首页名称
            location / {
                index index.php index.html index.htm;
                if (!-e $request_filename) {
                    return 444;
                }
            }
            location ~ .php$ {
                root           /www;
                #fastcgi_cache MYAPP;
                #fastcgi_cache_valid 200 60m;
                fastcgi_pass   unix:/tmp/php-cgi.sock;
                fastcgi_index  index.php;
                fastcgi_cache_valid 200 60m;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
            location /zabbix{
                alias /www/zabbix;
            }
                    #指定对网页图片格式进行缓存max表示10年,也可以是30d(天)
            location ~ .(swf|js|css|xml|gif|jpg|jpeg|png|bmp)$ {
                error_log    off;
                access_log   off;
                            #expires      30d;
                expires      max;
            }
    }
    }
    nginx.conf

    7.重启php-fpm和nginx

    ps -ef |grep fpm |awk '{print $2}'| xargs kill -9
    /usr/local/php/sbin/php-fpm
    
    /usr/local/nginx/sbin/nginx -s stop
    /usr/local/nginx/sbin/nginx    

    命令路径太复杂,将命令放入/usr/bin中  

    cp /usr/local/php/sbin/php-fpm /usr/bin
    cp /usr/local/nginx/sbin/nginx /usr/bin

    三.登陆web进行zabbix配置

    浏览器url:

    192.168.119.130/zabbix/setup.php

    上述ip为server端ip地址  

    zabbix配置包括:必要条件检测、配置DB连接、zabbix服务器详细信息、安装前汇总、安装

    作者在必要条件检测未通过,原因是PHP ldap未安装。可以通过phpize编译安装php扩展模块

    yum install openldap openldap-devel
    cd /download/tmp/php-5.6.31/ext/ldap/
    /usr/local/php/bin/phpize
    ./configure --with-ldap --with-php-config=/usr/local/php/bin/php-config
    make && make install
    
    #将编译后生成的so文件复制到php.ini配置文件指定的extension_dir中:
    cp /download/tmp/php-5.6.31/ext/ldap/modules/ldap.so /usr/lib64/php/modules/
    #修改php配置:
    extension_dir = "/usr/lib64/php/modules/"
    extension=ldap.so

      

    四.修改zabbix配置

    vim /usr/local/etc/zabbix_server.conf

    DBName=zabbix #数据库名称
    DBUser=zabbix #数据库用户名
    DBPassword=aixocm #数据库密码
    ListenIP=192.168.119.130 #数据库ip地址
    AlertScriptsPath=${datadir}/zabbix/alertscripts #zabbix运行脚本存放目录
    

      

    cp /www/zabbix/conf/zabbix.conf.php.example /www/zabbix/conf/zabbix.conf.php
    

      

    <?php
    // Zabbix GUI configuration file.
    global $DB;
    
    $DB['TYPE']     = 'MYSQL';
    $DB['SERVER']   = '192.168.119.130';
    $DB['PORT']     = '0';
    $DB['DATABASE'] = 'zabbix';
    $DB['USER']     = 'zabbix';
    $DB['PASSWORD'] = 'aixocm';
    
    // Schema name. Used for IBM DB2 and PostgreSQL.
    $DB['SCHEMA'] = '';
    
    $ZBX_SERVER      = '192.168.119.130';
    $ZBX_SERVER_PORT = '10051';
    $ZBX_SERVER_NAME = 'zabbix';
    
    $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
    zabbix.conf.php

    解决zabbix中文乱码问题:

    vim /www/zabbix/include/defines.inc.php

    define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name

    从windows中拷贝楷体常规simkai.ttf到zabbix的字体目录/www/zabbix/fonts中(注意字体文件名大小写,simkai.ttf  或 SIMKAI.TTF,上述配置中的大小写应与文件大小写一致)

    五.启动服务

    /usr/local/sbin/zabbix_server
    /usr/local/sbin/zabbix_agentd 
    

      

       

    #############安装时遇到的错误

    Unable to create the configuration file.
    点击下载配置文件链接下载
    cp /download/zabbix.conf.php /www/zabbix/conf

    ############数据库

    The frontend does not match Zabbix database
    [问题原因] Zabbix的数据库版本不对或者没有导入三个sql文件到zabbix库中

    ############zabbix_server启动报错

    /usr/local/sbin/zabbix_server 
    /usr/local/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or director

    修改php.ini      ------>    always_populate_raw_post_data = -1,若仍然启动不成功,应该是库里缺少该模块

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

    #############

    zabbix界面一直处于loading状态并且其它选项无反应,加载不完全     ------>https://www.zhihu.com/question/26625030/answer/63251942

    php页面显示源码  ---->    http://www.bubuko.com/infodetail-826808.html

    #############

    zabbix server is not running,the information dispalyed may not be current

    修改/www/zabbix/conf/zabbix.conf.php文件

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

    $ZBX_SERVER      = '192.168.119.130';

    #############

      #checking for javac... no
      #configure: error: Unable to find "javac" executable in path,没装java-jdk

    #解决

    windows下载页面:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 
    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
        mkdir /usr/local/java
        tar zxvf jdk-8u20-linux-x64.tar.gz -C /usr/local/java/
        echo "JAVA_HOME=/usr/local/java/jdk1.8.0_20
        JRE_HOME=/usr/local/java/jdk1.8.0_20/jre
        PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin
        CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
        export JAVA_HOME JRE_HOME PATH CLASSPATH" >> /etc/profile
        source /etc/profile
        java -version
    

      

      

      

  • 相关阅读:
    hive中如何查询除了其中某个字段剩余所有字段
    查找出不同环境下同一张表的数据差异
    pycharm中导入包失败的解决办法
    hive如何获取当前时间
    python-匿名函数
    Tensorflow报错:OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.
    Tensorflow中Tensor对象的常用方法(持续更新)
    Numpy中的广播机制,数组的广播机制(Broadcasting)
    重装conda
    matplotlib作图一例
  • 原文地址:https://www.cnblogs.com/xiami-xm/p/7299126.html
Copyright © 2020-2023  润新知