zoukankan      html  css  js  c++  java
  • zabbix安装、部署、lnmp(一)

    最近入手zabbix,准备好好的研究,好好的弄。
     
    环境准备:
    mysql:5.6.29
    PHP:5.6.12
    Nginx:1.8.0
    zabbix:3.2.6
    操作系统:Centos6
    用户:普通用户lile
    所有的安装包:http://pan.baidu.com/s/1hsmpr96 (百度网盘)
     
    一、搭建lnmp
     
    1:编译安装mysql
    1)安装依赖包     
    yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel
     
    注:在这里可以先创建一个download,用来准们存放需要的软件
           创建一个/usr/local/lnmp 专门用来存放解压的软件 
    mkdir download
    mkdir /usr/local/lnmp
    2)下载源码安装包     
    wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.11.tar.gz
     
    3)解压源码包      
    tar -zxvf mysql-5.6.29.tar.gz -C /usr/local/lnmp
    cd /usr/local/lnmp/mysql-5.6.29
    cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=gbk,gb2312 -DENABLED_LOCAL_INFILE=1
    make
    make install

    -DDEFAULT_CHARSET=utf8 设置默认的字符集   
    -DDEFAULT_COLLATION=utf8_general_ci 默认字符校对
    -DWITH_EXTRA_CHARSETS=gbk,gb2312 扩展字符支持
    -DENABLED_LOCAL_INFILE:启用加载本地数据    mysql5.6系列采用cmake构建安装
    cmake -L:可以查看编译选项
     
    4)创建配置文件和数据目录
     
    创建配置文件目录和编辑配置文件:
    sudo mkdir /usr/local/mysql/etc
     
    配置文件 vim /usr/local/mysql/etc/my.cnf:
    [mysqld]
    port=3306
    datadir=/mysql_data/data
    socket=/mysql_data/mysql.sock
    user=mysql
    
    [mysqld_safe]
    log-error=/mysql_data/mysql_err.log
    pid-file=/mysql_data/mysql.pid
    创建mysql的数据目录
    sudo mkdir /mysql_data
    sudo mkdir /mysql_data/data
    sudo chown -R mysql.mysql /mysql_data /usr/local/mysql -R
    5)初始化数据库
    sudo /usr/local/mysql/scripts/mysql_install_db --defaults-file=/usr/local/mysql/etc/my.cnf --user=mysql --basedir=/usr/local/mysql
    --basedir:安装的路径,全路径,解决相对路径出错的问题
     
    6)启动mysql    
    sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf &
     
    7)登录mysql
    报错:
     
    解决办法:
    ln -s /mysql_data/mysql.sock /tmp/mysql.sock
    然后就可以了。
     
    2:编译安装php
     
    1)安装php扩展包,这些包是rpm里没有自带,所以这里还是编译一下
        
     libiconv-1.13.tar.gz  --语言编码转换
    tar xvf libiconv-1.13.tar.gz -C /usr/local/lnmp
    cd /usr/local/lnmp/libiconv-1.13
    ./configure ;make ;make install
    echo /usr/local/lib >/etc/ld.so.conf.d/lnmp.conf //这里普通用户使用sudo可能会报错,可以直接vim 编辑/etc/ld,so.conf.d/lnmp.conf,把路径写进去
    /sbin/ldconfig
    pcre-7.9.tar.gz  --perl兼容正则表达式,或者使用rpm自带的也可以(yum install pcre pcre-devel -y)
    tar xvf pcre-7.9.tar.gz -C /usr/local/lnmp
    cd /usr/local/lnmp/pcre-7.9
    ./configure ;make ;make install
    /sbin/ldconfig
    2)安装php
     
    php-5.6.12.tar.gz
    tar xf php-5.6.12.tar.bz2 -C /usr/local/lnmp
    cd /usr/local/lnmp/php-5.6.31
    ./configure --prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-mysqlnd --with-pcre-dir=/usr/local/--enable-opcache
    make
    make install
     
    编译php时可能会出现的几种错误总结:
     
    错误一:
     
    ./configure时报下面的错误
    configure: error:Don't know how to define struct flock on this system, set --enable-opcache=no
     
    解决方法:
    ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/
    ln -s /usr/local/mysql/lib/libmysqlclient.so.18/usr/lib/libmysqlclient.so.18
    ldconfig
    --或者
    echo /usr/local/mysql/lib >>/etc/ld.so.conf.d/lnmp.conf && ldconfig
    错误二:
     
    ./configure之后如果直接make会报下面的错误
    collect2: ld returned 1 exit status
    make:***[sapi/cli/php]Error1
    最好删掉php的源码目录,再重新解压,重新编译,使用下面的参数来编译
    make ZEND_EXTRA_LIBS='-liconv'
    make install
    错误三:
     
    chmod: cannot access `ext/phar/phar.phar': No such file or directory"
     
    解决办法:
    cp ext/phar/phar.php ext/phar/phar.phar
    3)php成功安装后,继续安装php第三方模块
     
    安装缓存模块memcache
    tar xvf memcache-2.2.7.tgz -C /usr/local/lnmp
    cd /usr/local/lnmp/memcache-2.2.7
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make ;make install 
    用phpize生成编译的configure文件。注意使用的路径要为编译的/usr/local/php的路径;
    phpize prepare a PHP extension for compiling
    如果你不用phpize,你的这个目录里根本就没有configure这个文件
     
    注意安装信息
    Libraries have been installed in:
    /usr/src/lnmp/memcache-2.2.7/modules
    Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
    echo /usr/src/lnmp/memcache-2.2.7/modules/>>/etc/ld.so.conf.d/lnmp.conf
    /sbin/ldconfig
    安装绘图引擎模块imagemagick,与GD类似
    tar -zxvf ImageMagick-6.7.8-9.tar.gz -C /usr/local/lnmp
    cd /usr/local/lnmp/ImageMagick-6.7.8-9
    ./configure
    make;make install
    /sbin/ldconfig
    安装imagick(连接php与imagemagick的通道)
    tar xf imagick-3.1.2.tgz-C /usr/src/lnmp/
    cd /usr/src/lnmp/imagick-3.1.2/
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make;make install
    注意安装的库路径的模块路径信息
    Libraries have been installed in:
    /usr/src/lnmp/imagick-3.1.2/modules
    Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
    echo /usr/local/lnmp/imagick-3.1.2/modules >>/etc/ld.so.conf.d/lnmp.conf
    /sbin/ldconfig
    到此,与nginx之前要编译的所有软件及扩展模块完成
     
    验证此目录里有三个安装模块,表示安装OK
    ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
    imagick.so memcache.so opcache.so opcache.a
    4)拷贝并配置php配置文件,加上前面所编译的模块支持
    cp /usr/local/lnmp/php-5.6.31/php.ini-production /usr/local/php/etc/php.ini
    拷配置文件,拷的路径是根据编译时的--sysconfigdir参数决定的(因为,我指定安装路径为/usr/local/php,所以就要拷到/usr/local/php/etc/)
     
    配置php.ini文件加上前面安装的扩展的模块支持
     
    vim /usr/local/php/etc/php.ini  --直接在最后加上下面一段
    extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
    extension ="memcache.so"
    extension ="imagick.so"
    date.timezone ="Asia/Shanghai"
    [opcache]
    zend_extension ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so"
    opcache.enable=1
    opcache.enable_cli=1
    opcache.memory_consumption=128
    opcache.optimization_level=1
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1
    opcache.save_comments=0
    关于几个参数的说明 
    opcache.memory_consumption=128    --共享内存大小, 这个根需求可调
    opcache.interned_strings_buffer=8   --interned string的内存大小, 也可调
    opcache.max_accelerated_files=4000   --最大缓存的文件数目
    opcache.revalidate_freq=60 --60s检查一次文件更新
    opcache.fast_shutdown=1 --打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
    opcache.save_comments=0 --不保存文件或函数的注释 
     
    3:编译安装nginx
     
    1):我这里建立一个用户来跑nginx,不做也可以,它默认是用daemon用户来跑
    useradd -r -d /dev/null -s /sbin/nologin nginx
     
    2):解压编译安装
    tar xf nginx-1.8.0.tar.gz -C /usr/local/lnmp
    cd /usr/local/lnmp/nginx-1.8.0/
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/lnmp/pcre-7.9
    make
    make install
     
    --with-http_stub_status_module模块记得要加,后面做查看nginx状态需要这个模块
     
    3)查看是否安装成功
    ls /usr/local/nginx
    conf html logs sbin
    看到这些文件,则表示nginx安装成功
     
    4:配置优化php的fastcgi配置文件,并启动fastcgi模式的php
     
    配置php-fpm配置文件 (配置fastcgi)
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
     
    要在些配置文件配置的选项有:
    监听的IP,端口或者socket
    初始化的进程数
    执行身份
    错误是否显示
    打开的资源限制等
    # vim /usr/local/php/etc/php-fpm.conf
    164 listen =/var/run/fastcgi/fastcgi.socket
    534 php_flag[display_errors]= on
    149 user = nginx
    150 group = nginx
    235 pm.max_children =64
    240 pm.start_servers =20
    255 pm.min_spare_servers =5
    250 pm.max_spare_servers =35
    261 pm.max_requests =3000
    458 rlimit_files =65535
    175 listen.owner = nginx
    176 listen.group = nginx
    177 listen.mode =0660
     
    最后三行是控制启动fastcgi之后的socket文件的权限(特别是新版本的php,修复了以前socket访问权限的bug,所以这里指好权限,那么nginx才能有权限读取socket来访问fastcgi)
     
    mkdir /var/run/fastcgi
    chown nginx.nginx /var/run/fastcgi/
    启动php fastcgi进程
    /usr/local/php/sbin/php-fpm -D -y /usr/local/php/etc/php-fpm.conf
     
    启动过后,就可以在/var/run/fastcgi/目录下找到socket文件
    ls /var/run/fastcgi/
    fastcgi.socket
    查看进程:
    ps -ef |grep fpm也可以用此命令来查看php的factcgi的进程,有20个进程,因为我在前面配置pm.start_servers = 20
    如果要关闭fpm,可以直接pkill fpm就可以了
     
    5:配置nginx.conf主配置文件
     
    sudo vim /usr/local/nginx/conf/nginx.conf
        # vim /usr/local/nginx/conf/nginx.conf
        user nginx nginx;--运行用户和组
        worker_processes 8;--启动ngnix的服务的工作进程数
        error_log logs/error.log info;--错误日志以及日志等级
        pid logs/nginx.pid;--pid文件
        worker_rlimit_nofile 65535;--nginx每个进程能打开的最大的文件描述符数
        events {
        use epoll;--epoll工作模式
        worker_connections 65535;--每个进程允许打开的并发连接数
        }
        http {
        include mime.types;
        default_type application/octet-stream;
        server_tokens off;
        sendfile on;
        tcp_nopush on;
        keepalive_timeout 65;
        gzip on;
        server {
        listen 8000;--监听的端口
        server_name 10.1.1.8;--域名或者IP
        charset utf8;--字符集
        root /lnmp/web;--家目录
        index index.php index.html index.htm;--主页文件
        error_page 500502503504/50x.html;
        location =/50x.html {
        root html;
        }
        location ~.*.php$ {
        fastcgi_pass unix:/var/run/fastcgi/fastcgi.socket;--对应php-fpm.conf里的设置
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;--把/scripts改成$document_root,表示家目录下的.php文件也当会以php来执行
        include fastcgi_params;
        }
        }
        }
    创建数据目录
        mkdir -p /lnmp/web
     
    启动nginx
        /usr/local/nginx/sbin/nginx //启动nginx
        /usr/local/nginx/sbin/nginx -s reload //reload的方法
        /usr/local/nginx/sbin/nginx -s stop //关闭的方法
    验证:
     vim /lnmp/web/test.php
        <?php
        phpinfo();
        ?>
    用http://10.0.0.146/test.php能验证支持php,说明整个基本的lnmp搭建完成 
     
     
    二、zabbix的安装
     
    服务端安装
     
    2:先yum安装net-snmp-devel,要不然下面编译安装的时候会报错
        yum -y install net-snmp-devel
    3:解压 、安装
        tar -zxvf zabbix-3.2.6.tar.gz -C /usr/local/lnmp
        yum install net-snmp-devel
        ./configure --prefix=/usr/local/zabbix-3.2.6--enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
        make
        make install
    这里的--with-mysql=/usr/local/mysql/bin/mysql_config 一定要指定,要不然怎么都启动不了zabbix server
     
    4:添加zabbix用户
        useradd zabbix
        groupadd zabbix
    5:设置zabbix使用的数据库
    创建用户
        create user 'zabbix'@'%' identified by '123456';

    创建zabbix数据库

        create database zabbix
     
    zabbix数据库授权给zabbix账号:
        grant all privileges on zabbix.* to 'zabbix'@'%' identified by '123456'
        grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456'
        flush privileges;
    使用zabbix账号登录进去以后可以看到zabbix数据库:/usr/local/mysql/bin/mysql -uzabbix -p
        mysql> show databases;
        +--------------------+
        |Database|
        +--------------------+
        | information_schema |
        | test |
        | zabbix |
        +--------------------+
        3 rows inset(0.00 sec)
    从本地导入zabbix数据库的一些表
    /usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2.6/database/mysql/schema.sql
    /usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2.6/database/mysql/images.sql
    /usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2.6/database/mysql/data.sql 
    6:编辑zabbix服务端的配置文件
        mkdir -p /etc/zabbix
        cp /usr/local/zabbix-3.2.6/etc/zabbix_server.conf /etc/zabbix
    vim /etc/zabbix/zabbix_server.conf
        DBName=zabbix
        DBUser=zabbix
        DBPassword=123456
        DBPort=3306
        ListenIP=10.0.0.146
        echo "/usr/local/mysql/lib">>/etc/ld.so.conf
        ldconfig
    7:zabbix服务端的启动
        /usr/local/zabbix-3.2.6/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
    zabbix客户端的启动,这里在编译的时候顺便把客户端也编译了
        /usr/local/zabbix-3.2.6/sbin/zabbix_agentd
     
    zabbix web 安装
     
    1:创建zabbix数据目录,并且把前端文件拷贝过去
        mkdir -p /zabbix_web/zabbix
        cp -r /usr/local/lnmp/zabbix-3.2.6/frontends/php/*/zabbix_web/zabbix
    2:编辑虚拟主机文件
    user nginx nginx;
    worker_processes 8;
    error_log logs/error.log info;
    pid logs/nginx.pid;
    events {
    use epoll;
    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"';
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 65;
    gzip on;
    server {
    listen 80;
    server_name localhost;
    access_log logs/host.access.log main;
    index index.php index.html index.htm;
    root /zabbix_web;
    location /{
    try_files $uri $uri//index.php?$args;
    }
    location ~.*.(php)?$ {
    fastcgi_split_path_info ^(.+.php)(.*)$;
    include fastcgi_params;
    fastcgi_pass unix:/var/run/fastcgi/fastcgi.socket;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    }
    }
     
    然后通过浏览器访问:10.0.0.146/zabbix,会出现
     
    点击下一步:出现错误
     
    说明配置文件没有配置好,打开php的配置文件php.ini
    vim /usr/local/php/etc/php.ini
        post_max_size =16M
        max_execution_time =300
        max_input_time =300
        always_populate_raw_post_data =-1
    然后杀掉fpm进程,重启,刷新界面,就得到正确的了
        pkill fpm
        /usr/local/php/sbin/php-fpm -D -y /usr/local/php/etc/php-fpm.conf
     
    点击下一步,配置数据库
     
    点击下一步,设置zabbix服务器的一些东西
     
    下一步,下一步,会出现
    这里是没有权限写入进去,所以自己手动先下载配置文件,然后保存到/zabbix_web/zabbix/conf/zabbix.conf.php下面
     
    打开这个文件,可以看大里面的内容就是刚刚设置的内容:vim /zabbix_web/zabbix/conf/zabbix.conf.php
        <?php
        //Zabbix GUI configuration file.
        global $DB;
        $DB['TYPE']='MYSQL';
        $DB['SERVER']='10.0.0.146';
        $DB['PORT']='3306';
        $DB['DATABASE']='zabbix';
        $DB['USER']='zabbix';
        $DB['PASSWORD']='123456';
        //Schema name.Usedfor IBM DB2 and PostgreSQL.
        $DB['SCHEMA']='';
        $ZBX_SERVER ='10.0.0.146';
        $ZBX_SERVER_PORT ='10051';
        $ZBX_SERVER_NAME ='zabbix-server';
        $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
    完成之后,就进入到这个登录界面了:
     
    默认账号:Admin
           密码: zabbix 
     
    登录进去之后,会看到
     
     
    zabbix 客户端安装 
     
    下载、解压、安装
        tar -zxvf zabbix-3.2.6.tar.gz -C /usr/local/lnmp
        ./configure --prefix=/home/lile/zabbix-3.2.6--enable-agent
        make
        make install
    默认端口号为10050
     
    客户端的配置文件:
    vim zabbix-3.2.6/etc/zabbix_agentd.conf
        LogFile=/tmp/zabbix_agentd.log
        Server=127.0.0.1       //zabbix server的地址
        ServerActive=127.0.0.1  //zabbix server的地址
        Hostname=Zabbix server
    客户端启动:
        /usr/local/zabbix-3.2.6/sbin/zabbix_agentd
     
    安装基本上完成了,接下来就是把怎么用zabbix,怎么用好zabbix了
     
     
  • 相关阅读:
    csharp上传文件到服务器指定文件夹问题
    c#上传文件到服务器指定文件夹问题
    jsp上传文件到服务器指定文件夹问题
    java上传文件到服务器指定文件夹问题
    asp.net上传文件到服务器指定文件夹问题
    .net批量下载图片
    连续肝了好几天,终于把Java面试必备最重要的基础知识【Java集合】知识点总结整理出来了。
    来晚了,秋招五投大厂,成功拿下三家Offer,最终入职美团,分享我的美团1-4面(Java岗)
    变秃了,也变强了!爆肝吐血整理出的超硬核JVM笔记分享!
    Spring框架及七大模块
  • 原文地址:https://www.cnblogs.com/lemon-le/p/7161356.html
Copyright © 2011-2022 走看看