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了
     
     
  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/lemon-le/p/7161356.html
Copyright © 2011-2022 走看看