1. 程式人生 > >LNMP環境搭建zabbix監控平臺

LNMP環境搭建zabbix監控平臺

安裝之前,先建幾個目錄:
   mkdir tools
   mkdir /usr/local/mysql
   mkdir /usr/local/mysql/data
   mkdri /usr/local/zabbix
   mkdir /usr/local/zabbix
   mkdir /usr/local/php
第一:安裝Nginx'
1、安裝依賴包:
   yum -y install gcc automake autoconf libtool make
   yum -y install gcc gcc-c++
   yum install -y zlib-devel
   yum -y install pcre-devel
   yum  -y install openssl openssl-deve
   tools目錄有PCRE庫:
   tar -zxvf pcre-8.37.tar.gz
   cd /root/tools/pcre-8.34
   ./configure
   make && make install
   安裝zlib庫:
   tools目錄有zlib庫:
   tar -zxvf zlib-1.2.11.tar.gz    
   cd /root/tools/zlib-1.2.11
   ./configure
   make && make install
   安裝ssl
   tools目錄有ssl庫:
   tar -zxvf openssl-1.0.1t.tar.gz   ##先僅僅解壓就可以了,不用./configure,下一步會有
   安裝Nginx原始碼包:
   tools目錄有nginx包:
   tar -zxvf nginx.1.11.2.tar.gz
   cd /root/tools/nginx.1.11.2
 ./configure--sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/root/tools/pcre-8.40 --with-zlib=/root/tools/zlib-1.2.11 --with-openssl=/root/tools/openssl-1.1.0e --with-http_stub_status_module
   make && make install
   cd /usr/local/nginx/   
   cd conf
   vim nginx.conf
   加入:server {         
        listen       11099;
        server_name localhost;
        access_log  /usr/local/zabbix/log/php.access.log;
        index index.html index.php index.html;
        root /usr/local/zabbix/php;

        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;(這一行改為:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;詳情參見                                                   http://www.jb51.net/article/47916.htm)
       }
    儲存退出。
    防火牆設定:
    vi /etc/sysconfig/iptables
    在埠22哪一行下面加入如下行:下面幾行包括nginx 堅挺埠11099 ,mysql 3306,zabbix_server 10051  zabbix_agent 10050

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 11099 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
    然後儲存退出,重啟防火牆:/etc/init.d/iptables restart   或service iptables restart
    建立zabbix log目錄:mkdir /usr/local/zabbix/log
    啟動Nginx:
    /usr/local/nginx/sbin/nginx 
    ps -aux |grep nginx
    /usr/local/nginx/sbin/nginx 
    ps -aux |grep nginx
    測試nginx成功沒:瀏覽器輸入:http://192.168.1.242   (http://nginx所在Ip)
    到這裡,nginx成功安裝!!!!
 ###########################################################################################
 第二:安裝mysql 
      1、/root/tools/目錄下上傳mysql-5.7.17.tar.gz 和boost_1_59_0.tar.gz
      解壓:tar -zxvf mysql-5.7.17.tar.gz
      cd mysql-5.7.17
      安裝其他依賴包: yum install gcc gcc-c++ -y ncurses-devel cmake libaio bison
      cd tools
      mkdir /usr/local/boost
      把boost_1_59_0.tar.gz 解壓到目錄/usr/local/boost : tar zxf boost_1_59_0.tar.gz -C /usr/local/boo
      cd tools
      groupadd mysql
      useradd mysql -s /sbin/nologin -M -g mysql 
      cd mysql-5.7.17
      cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/usr/local/mysql/data  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=ON -DMYSQL_TCP_PORT=3316 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
      make && make install
      期間要等待很長一段時間,慢慢等麼麼麼噠!!!1%#################################100%
      完成後:
      chown -R mysql:mysql .
      chown -R root:root .
      chown -R mysql:mysql mysql
      進到Mysql目錄:cd /usr/local/mysql/bin/mysql 
      建立軟連線: ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
      執行以下命令生成隨機密碼:並記下他,待會登陸資料庫是要用
      ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
      在執行一下這句話,我也不明白其意思:  ./bin/mysql_ssl_rsa_setup  --datadir=/usr/local/mysql/data/
      cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf  然後按y覆蓋
      編輯my.cnf,設定port=3306
      cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld  然後按y覆蓋
      啟動mysql:/etc/init.d/mysqld start   或  service mysqld start
      啟動後登陸Mysql:  mysql -u root -p 回車,在輸入剛才記錄的隨機密碼進入資料庫
      然後執行:SET PASSWORD = PASSWORD('123456'),在執行:grant all privileges on *.* to 'root'@'%'identified by '123456' with grant option  :%的意思是可以任何地方遠端連線
      flush privileges;   
      到此mysql安裝完成。
#########################################################################################################

      安裝PHP:確保tools目錄有:php-5.5.3.tar.gz  bzip2-1.0.6.tar.gz  curl-7.54.1.tar.gz
      解壓三個包:tar -zxvf (三個包)
      第一步:yum install libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel -y
              yum install libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 -y
                     
              yum -y install libxml2*
              cd 到bzip解壓目錄並編譯安裝:cd bzip2-1.0.6   make && make install
              cd 到curl解壓目錄並編譯安裝: cd curl-7.54.1   ./configure   make && make install
              cd 到php解壓目錄便宜並安裝: cd php-5.5.38
                                           ./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 --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --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
                                           上一行的local下的php目錄是之前建好的。
                                            make && make install
                                            等很久一會。安裝完成。
             在Php解壓目錄就是php-5.5.38下面有一個php.ini-development ,把他cp到:php.ini-development /etc/php.ini
             vi php.ini,修改一下內容,但是一下修改的並非是死得,根據實際情況可以做相應的調整
             你需要在你的php.ini檔案中新增zend_extension=opcache.so 。還要將opcache.enable=0這行,改為opcache.enable=1 

            date.timezone = Asia/Shanghai
            max_execution_time = 300
            post_max_size  = 32M
            max_input_time = 300
            memory_limit = 300M
            mbstring.func_overload = 1

             在安裝目錄有個:/usr/local/php/etc/php-fpm.conf.default, 把他在當前目錄下重新命名為php-fpm.conf,
             即:cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf   否則無法啟動php
             在php解壓目錄有個: /root/tools/php-5.5.38/sapi/fpm/init.d.php-fpm,把他cp到:cp /root/tools/php-5.5.38/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm
             vim /usr/local/php5.5.38/etc/php-fpm.conf,找到 ;pid = run/php-fpm.pid,把前面的分號註釋去掉。
             上一行具體參見:http://www.cnblogs.com/GaZeon/p/5421906.html
             chmod +x /etc/init.d/php-fpm
             ###這種啟動方式不推薦啟動php:service php-fpm start 
             PHP 啟動:/usr/local/php/sbin/php-fpm -c /etc/php.ini -y /usr/local/php/etc/php-fpm.conf    注意這裡面的php5.5.38是自己之前mkdir自定義的,所以跟你的又肯能不一樣,通常是php
             php停止:Killall php-fpm  詳細停止啟動PHP請參考:http://www.cnblogs.com/GaZeon/p/5421906.html
             lsof -i :9000

    ###################################################################################################################################
    安裝zabbix:
     之前已經建好zabbix目錄:mkdir /usr/local/zabbix
     解壓zabbix包:tar -zxvf zabbix-3.2.6.tar.gz
     cd  zabbix-3.2.6
     
     yum install -y net-snmp-devel
     groupadd zabbix    useradd -g zabbix -s /sbin/nologin zabbix
     ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy \--with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl
     make && make install
     cd usr/local/zabbix
     chown -R zabbix:zabbix .
     cd 到zabbix解壓目錄,具體指:/root/tools/zabbix-3.2.6/database/mysql下,裡面有三個sql檔案schema.sql images.sql data.sql需要匯入到mysql資料庫名為zabbix裡面:具體操作如下:
     cd /root/tools/zabbix-3.2.6/database/mysql 
     ll
     再開啟另一個終端:(把zabbix資料庫檔案匯入到mysql具體操作也可以參考網站:http://www.linuxidc.com/Linux/2016-06/132243.htm)
     確保MYSQL執行正常,
     mysql -u root -p
     輸入密碼
     登入,建立資料庫和使用者授權:
     create database zabbix character set utf8
     grant all privileges on zabbix.* to [email protected]'%' identified by'123456'
     flush privileges
     exit
     用新建的zabbix使用者登陸MYSQL:
     mysql -u zabbix -p
     輸入密碼:123456
     use zabbix;
     匯入:schema.sql images.sql data.sql,這三個檔案具體在解壓過後的zabbix目錄:/root/tools/zabbix-3.2.6/database/mysql   請根據自己的實際情況做稍微的調整
     source /root/tools/zabbix-3.2.6/database/mysql/schema.sql;
     source /root/tools/zabbix-3.2.6/database/mysql/images.sql;
     source /root/tools/zabbix-3.2.6/database/mysql/data.sql;
     show tables; 一共127個表
     exit
     很重要的一部:把zabbix解壓目錄中的frontends裡的PHP目錄複製到你zabbix安裝目錄下:
     ***********cd /root/zabbix-3.2.6/frontends/裡面有個php目錄,把他複製到usr/local/zabbix/下面:cp -r /root/tools/zabbix-3.2.6/frontends/php  /usr/local/zabbix/}
     
     chown -R zabbix:zabbix .    這句不能成功執行了
     cd到zabbix安裝目錄:cd /usr/local/zabbix/etc/
     ls -l,  會發現一下檔案:
     -rw-r--r--. 1 root root 10242 Jul  6 03:43 zabbix_agentd.conf
     drwxr-xr-x. 2 root root  4096 Jul  6 02:53 zabbix_agentd.conf.d
     -rw-r--r--. 1 root root 15760 Jul  6 02:53 zabbix_proxy.conf
      drwxr-xr-x. 2 root root  4096 Jul  6 02:53 zabbix_proxy.conf.d
     -rw-r--r--. 1 root root 14665 Jul  6 03:11 zabbix_server.conf
     drwxr-xr-x. 2 root root  4096 Jul  6 02:53 zabbix_server.conf.d
     vim裡面的zabbix_server.conf,
     需要配置:
     DBName=zabbix
     DBUser=zabbix
     DBPassword=123456
     DBPort=3306   ##這個埠可以不寫,因為zabbix預設是mysql的3306
     ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64
     啟動zabbix_server:   /usr/local/zabbix/sbin/zabbix_server
     因為我們想通過zabbix監控自己本身,所以在這裡進行配置:
     在zabbix安裝目錄:cd /usr/local/zabbix/etc/下有:zabbix_agentd.conf
     編輯它:
     Server=192.168.1.242 ← ZABBIX伺服器的IP地址
     ServerActive=192.168.1.242
     hostname=Zabbix server   ← ZABBIX agentd的host名字,因為我們zabbix_server伺服器同時要監控自己,所以這裡要寫成當前伺服器主機的hostname
     儲存退出
     啟動zabbix_agentd:/usr/local/zabbix/sbin/zabbix_agentd
     lsof -i :10050  lsof -i :10051
     zabbix安裝完成
     #################################################
     在瀏覽器輸入:http://192.168.1.242:11099    11099是在nginx.conf裡配置的serverlisten 埠。。
     即可看到zabix配置頁面。。。
     ########################################################################################################
     zabbix登陸介面預設賬號:Admin   密碼:zabbix   
     #####################################################################################################
     解決zabbix中文亂碼問題:http://zutianbiao.blog.51cto.com/1361296/1364535/     按照文件的操作步驟,zabbix的字型檔案在/usr/local/zabbix/php/fonts目錄,其中的php目錄是本文件中安裝zabbix步驟中前面加了*號的那一步。