說明:搭建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