【ZABBIX】Linux下安裝ZABBIX

foreverfriends發表於2018-03-04

說明:搭建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:\Windows\Fonts\simfang.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