zoukankan      html  css  js  c++  java
  • 【ZABBIX】Linux下安装ZABBIX

    说明:搭建ZABBIX所需的软件列表为:RHEL6.5+Nginx+MySQL+PHP+ZABBIX。

    一、软件包

    软件名称

    版本

    下载地址

    nginx

    1.10.3

    http://nginx.org/download/nginx-1.10.3.tar.gz

    MySQL

    5.7.21

    https://dev.mysql.com/downloads/mysql/

    PHP

    7.1.3

    http://php.net/get/php-7.1.3.tar.gz/from/a/mirror

    ZABBIX

    2.4.8(Server)

    2.4.6(agent)

    http://www.zabbix.com/download2

    二、配置yum源

    1.上传文件rhel-server-6.5-x86_64-dvd.iso到/root目录下;

    2.新建目录/yum

    mkdir /yum

    3.挂载镜像文件到目录/yum

    mount -o loop  rhel-server-6.5-x86_64-dvd.iso  /yum

    4.配置repo文件

    cd /etc/yum.repos.d

    编辑rhel-source.repo文件,修改后的内容如下:

    [rhel-source]
    name=Red Hat Enterprise Linux $releasever - $basearch - Source
    baseurl=file:///yum
    enabled=1
    gpgcheck=0

    至此,yum源配置完毕!

    三、安装Nginx

    1.安装nginx相关依赖包

    yum -y install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel

    2.解压压缩包

    tar -xvf  nginx-1.10.3.tar.gz

    3.安装nginx到目录/usr/local/nginx

    cd nginx-1.10.3
    ./configure  --prefix=/usr/local/nginx   #nginx安装到此目录
    make #编译
    make insall #编译安装

    4.为后续配合PHP,故需要配置nginx.conf

    #在如下目录新建目录web_root
    cd /usr/local/nginx
    mkdir web_root

    #编辑nginx.conf以支持PHP,修改部分见如下红字。

    修改项:
    #新建一行:root /usr/local/nginx/web_root
    #修改一行:将之前的scripts修改为/usr/local/nginx/web_root
    [root@ZABBIX conf]# more nginx.conf
    
    #user  nobody;
    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;
    
        server {
            listen       80;
            server_name  localhost;
            
            ############add by guanyy#################
            root /usr/local/nginx/web_root;
            ##########################################
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.php index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            location ~ .php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/web_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    location ~* ^.+.(ico|gif|jpg|jpeg|png|html|css|htm|bmp|js|svg)$ {

                  root          /usr/local/nginx/web_root;
              }

            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    }

    5.修改完成后,保存退出

    6.启动nginx

    /usr/local/nginx/sbin/nginx

    7.新建一个测试文件index.php,测试成功后再删除

    cd /usr/local/nginx/web_root/

    [root@ZABBIX web_root]# more index.php <?php phpinfo(); ?>

    四、安装MySQL

    MySQL采用二进制方式安装!具体安装步骤见:

    http://www.cnblogs.com/xialiaoliao0911/p/7523931.html

    五、安装PHP

    1.安装PHP所需依赖包

    yum -y install libxml2 libxml2-devel  libpng  libpng-devel bzip2 bzip2-devel

    2.解压包来安装PHP

    #以nginx做Web服务器时,安装命令如下:

    #安装php到目录/usr/local/php

    ./configure --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --with-bz2 --with-curl --enable-ftp --enable-sockets 
    --disable-ipv6 
    --with-gd --with-jpeg-dir=/usr/local/jpeg 
    --with-png-dir=/usr/local/png 
    --with-freetype-dir=/usr/local/freetype 
    --enable-gd-native-ttf 
    --with-iconv-dir=/usr/local/iconv 
    --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
    
     
    make                   #编译
    make test              #测试
    make install           #安装

    #以Apache做Web服务器时,安装命令如下:

    ./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache2/bin/apxs
    make && make install

    3.复制和修改配置文件

    (1)从PHP解压后的目录复制文件到/usr/local/php/etc目录(该目录在安装时已被定义为php配置文件目录)

    cp  /root/php-7.1.3/sapi/fpm/php-fpm.conf  /usr/local/php/etc
    cp /root/php-7.1.3/php.ini-production/php.ini /usr/local/php/etc
    mv /usr/local/php/etc/php.ini-production php.ini

     说明:php.ini重命名后需要修改参数,具体如下:

    vi /usr/local/php/etc/php.ini
    post_max_size= 16M max_execution_time =300 max_input_time =300 date.timezone = Asia/shanghai

    (2)通过复制方式新建一个文件www.conf

    cp  /usr/local/php/etc/php-fpm.d/www.conf.default  www.conf

    4. 启动PHP

    /usr/local/php/sbin/php-fpm

    5.检查PHP是否安装成功,在浏览器输入如下地址,看是否可以正常访问。其中192.168.102.140是安装PHP的主机IP。

    http://192.168.102.140/index.php

    注意:如果不能访问,请关闭Linux的防火墙!

    如出现如下界面,表示PHP安装成功!

    六、安装ZABBIX

    1.安装ZABBIX依赖包

    #根据ZABBIX官方网站的链接,进行安装依赖包

    rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
    yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

    #除官网外,还需要安装的依赖包

    yum -y install zabbix-get zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql  net-snmp-devel curl-devel

    2.登录MySQL,新建ZABBIX所需的数据库、用户名,并导入sql文件

    #创建zabbix数据库
    create database zabbix;
    
    #创建zabbix用户并授权,密码为123456
    CREATE USER  'zabbix'@'%'  IDENTIFIED BY '123456';
    
    grant all on zabbix.* to 'zabbix'@'%' identified by '123456' with grant option;
    
    #刷新权限
    flush privileges;
    #导入sql文件到MySQL,执行顺序不能变
    use zabbix;
    source /root/zabbix-2.4.8/database/mysql/schema.sql
    source /root/zabbix-2.4.8/database/mysql/images.sql
    source /root/zabbix-2.4.8/database/mysql/data.sql

    3. 添加软链接

    cd /usr/lib64/mysql
    ln -s libmysqlclient.so.16.0.0 libmysqlclient.so
    ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so

    4.安装ZABBIX

    /usr/local/zabbix-2.4.8   :  zabbix安装目录

    /usr/local/mysql/bin/mysql_config   :  mysql实际安装目录

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

    5.添加系统软链接

    ln -s /usr/local/zabbix-2.4.8/sbin/*   /usr/local/sbin/ 
    ln -s /usr/local/zabbix-2.4.8/bin/*    /usr/local/bin/ 

    6.添加zabbix服务对应的端口(zabbix安装后会自动添加,但仍需检查)

    vi /etc/services
    zabbix-agent 10050/tcp            # Zabbix Agent
    zabbix-agent 10050/udp            # Zabbix Agent
    zabbix-trapper 10051/tcp          # Zabbix Trapper
    zabbix-trapper 10051/udp          # Zabbix Trapper

    7.修改zabbix配置文件

    cd /usr/local/zabbix-2.4.8/etc
    vi /usr/local/zabbix-2.4.8/etc/zabbix_server.conf
    
    DBName=zabbix                                                            #数据库名称
    DBUser=zabbix                                                            #数据库用户名
    DBPassword=123456                                                        #数据库密码
    DBDBSocket=/tmp/mysql.sock                                               #sock文件,/etc/my.cnf中有记录
    ListenIP=127.0.0.1                                                       #监听IP
    AlertscriptsPath=/usr/local/zabbix-2.4.8/share/zabbix/alertscripts       #zabbix运行脚本存放目录
    vi /usr/local/zabbix-2.4.8/etc/zabbix_agentd.conf
    Include=/usr/local/zabbix-2.4.8/etc/zabbix_agentd.conf.d/
    UnsafeUserParameters=1                                                   #启用自定义key

    8.添加开机启动脚本

    #复制相关文件到/etc/init.d目录下
    cp  /root/zabbix-2.4.8/misc/init.d/fedora/core/zabbix_server  /etc/init.d/zabbix_server
    cp  /root/zabbix-2.4.8/misc/init.d/fedora/core/zabbix_agentd  /etc/init.d/zabbix_agentd
    
    #添加执行权限
    chmod +x /etc/init.d/zabbix_agentd
    chmod +x /etc/init.d/zabbix_server
    
    #设置开机启动
    chkconfig zabbix_server on
    chkconfig zabbix_agentd on
    
    #设置软链接
    ln -s /usr/local/mysql/lib/libmysqlclient.so.20  /usr/lib/libmysqlclient.so.20

    #修改启动脚本中的zabbix目录为实际安装目录,如下红色框中。

    /etc/init.d/zabbix_server

    /etc/init.d/zabbix_agentd

     9.启动zabbix_server和zabbix_agentd

    #启动zabbix_server
    /etc/init.d/zabbix_server start
    
    #启动zabbix_agentd
    /etc/init.d/zabbix_agentd start

    10. 将zabbix源码目录frontends/php下的所有文件复制到/usr/local/nginx/web_root目录下.

    cp -r /root/zabbix-2.4.8/frontends/php/*   /usr/local/nginx/web_root

    11.为防止打开的zabbix界面没有样式,只有文字,在/usr/local/php/etc/php-fpm.d/www.conf中找到如下这行,放开注释,并添加js等。然后重启nginx和php-fpm

    #需修改行
    security.limit_extensions = .php .php3 .php4 .php5
    #修改后的结果如下
    security.limit_extensions = .php .php3 .php4 .php5 .php7 .js .css .jpg .gif .png .jpeg .html .ico .bmp

    12.在浏览器中输入http://192.168.102.140/setup就能打开ZABBIX界面

    13. 解决所有fail项后,进入下一步测试数据库连接,输入数据库的IP、数据库名称、用户名和密码。

    #解决所有fail项后的界面

    #数据库测试成功的界面

    #输入ZABBIX机器的host或IP,并起名

     

    #点击进入下一步,会显示安装概要,包括一些IP、数据库等参数的设置

     

    #点击下一步,会出现一个错误,此时需要点击界面中的“”下载配置文件“”下载配置文件,并放到界面中指定的目录下。然后点击重试。

     #检查成功后,点击Finish. 进入ZABBIX登录界面

     

    #zabbix安装后默认的用户名和密码为admin/zabbix.登录后即可进入zabbix.

    七、安装ZABBIX_AGENT

    请参见:

    http://blog.csdn.net/wn_hello/article/details/52121888

    记录MySQL用户名和密码的2个文件

    /usr/local/zabbix/etc/zabbix_server.conf
    /usr/local/nginx/web_root/conf/zabbix.conf.php

    八、常见问题解决

    1.问题描述:

     解决方法:

    (1)进入到PHP源码目录/root/php-7.1.3/ext/mysqli下,执行如下命令:

    /usr/local/php/bin/phpize
    ./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/php/bin/php-config  --with-mysqli=/usr/local/mysql/bin/mysql_config
    
    make
    make install

    说明:如果编译失败(找不到文件mysql_float_to_double.h),可参见:https://www.cnblogs.com/xiaoqian1993/p/6277771.html

    (2)编译成功后,结果如下:

    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
    Installing header files:          /usr/local/php/include/php/

    进入红色字体目录下,看是否有mysqli.so. 如果有的话,将该文件追加到/usr/local/php/lib/php.ini文件中,结果如下:

    extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/mysqli.so

    (3)重启MySQL和nginx

    2.问题描述:

    解决方法:

    找到如下文件,添加$current = -1;
    vi /usr/local/nginx/web_root/include/classes/setup/CFrontendSetup.php

    3. 问题描述:

    解决方法:

    cd /root/php-7.1.3/ext/gettext
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-gettext
    make && make install

    执行上述命令后,会生成一个gettext.so文件,将该文件追加到/usr/local/php/lib/php.ini文件中,结果如下:

    extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/gettext.so

    4. 问题描述

    解决方法:

    将文件/usr/local/zabbix/etc/zabbix_server.conf中的ListenIP=127.0.0.1注释掉!然后重启zabbix_server和zabbix_agentd

    /etc/init.d/zabbix_server restart
    /etc/init.d/zabbix_agentd restart

    5.问题描述

    解决方法:

    找到文件/usr/local/nginx/web_root/include/func.inc.php

     对412行的$val的数据类型进行转换新增一行 $val = intval($val);

    6. 问题描述:关于中文乱码的问题(方块为乱码)

    (1)首先从本地计算机中找到一个中文字体 。例如 C:WindowsFontssimfang.ttf

     

    (2)将该字体上传到/usr/local/nginx/web_root/fonts目录下

    (3)修改defines.inc.php文件中的字体为simfang

    cd /usr/local/nginx/web_root/include
    sed -i 's/DejaVuSans/simfang/g' defines.inc.php

    (4)修改后字体即可正常显示

    7. 问题描述:ZABBIX安装完成后,在浏览器打开后,没有界面样式,只以文本显示。

       解决方法: https://www.cnblogs.com/shihuc/p/6149253.html

  • 相关阅读:
    Callable的Future模式
    并发队列
    并发工具类和线程池
    安全与死锁问题
    ConcurrentHashMap底层实现
    Map集合常见面试题
    List集合框架
    类加载器
    Activiti中个人任务分配
    流程定义
  • 原文地址:https://www.cnblogs.com/xialiaoliao0911/p/8506162.html
Copyright © 2011-2022 走看看