源碼編譯zabbix監控LNMP

源碼編譯zabbix監控LNMP

搭建lnmp,在使用源碼編譯zabbix,在本文檔中,使用的包下載如下(包可以提前下載好,使用rz命令上傳到服務器上)

nginx-1.16.1.tar.gz(http://nginx.org/download/nginx-1.16.1.tar.gz)

zabbix-3.4.3.tar.gz( https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.3/zabbix-3.4.3.tar.gz)

pcre-8.38.zip(https://ftp.pcre.org/pub/pcre/pcre-8.38.zip

該實驗使用了一臺服務器部署(看個人情況,可以使用多臺部署) 192.168.184.159
1、檢查基礎環境
關閉selinux和防火牆,更新擴展源,安裝lnmp的基礎環境

[root@localhost ~]# systemctl stop firewalld   # 關閉防火牆
[root@localhost ~]# systemctl disable firewalld   # 開機自動關閉防火牆
[root@localhost ~]# setenforce 0               # 臨時關閉selinux
[root@localhost ~]# vim /etc/selinux/config    #永久關閉selinux,但是要重啓機器纔會生效(reboot)
 SELINUX=disabled                              #將enforcing修改爲disabled
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum clean all 
[root@localhost ~]# yum -y install make gcc gcc-c++ flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel gd freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel unzip libcap vim lsof wget net-tools 

2、上傳pcre-8.38.zip包(https://ftp.pcre.org/pub/pcre/pcre-8.38.zip)
將包下載到本地傳到服務器上,並解壓到相應目錄

[root@localhost ~]# ls
anaconda-ks.cfg  nginx-1.16.1.tar.gz  pcre-8.38.zip
[root@localhost ~]# unzip pcre-8.38.zip
[root@localhost ~]# ls
anaconda-ks.cfg  nginx-1.16.1.tar.gz  pcre-8.38   pcre-8.38.zip
[root@localhost ~]# mv pcre-8.38 /usr/local/src/ 

3、源碼編譯nginx
(1)下載nginx包,並編譯安裝

[root@localhost ~]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
--2019-09-17 09:44:57--  http://nginx.org/download/nginx-1.16.1.tar.gz
Resolving nginx.org (nginx.org)... 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3
...
[root@localhost ~]# ls
anaconda-ks.cfg  nginx-1.16.1.tar.gz
[root@localhost ~]# tar xf nginx-1.16.1.tar.gz 
[root@localhost ~]# ls
anaconda-ks.cfg  nginx-1.16.1  nginx-1.16.1.tar.gz
[root@localhost ~]# cd nginx-1.16.1 
[root@localhost nginx-1.16.1]#  ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.38 --user=nginx --group=nginx
[root@localhost nginx-1.16.1]# make && make install 

(2)修改nginx的配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
1     #user  nobody;
2     user  nginx;       #在第2行左右添加該行
      ...
44          location / {
45             root   html;
46             index  index.php index.html index.htm;    #在46行左右,添加index.php
47         }
	  ...
65         #   #  在66-72行去掉註釋並作如下修改,如圖:
66         location ~ \.php$ {
67             root           html;
68             fastcgi_pass   127.0.0.1:9000;
69             fastcgi_index  index.php;
70             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
71             include        fastcgi_params;
72         } 

1.png
(3)創建nginx用戶並啓動nginx

[root@localhost ~]# useradd -M -s /sbin/nologin nginx 
[root@localhost ~]# /usr/local/nginx/sbin/nginx
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost ~]# netstat -nltp |grep nginx
tcp       0      0 0.0.0.0:80       0.0.0.0:*        LISTEN      10968/nginx: master

如果在生產環境下,需要設置開機自啓,在此我們不在寫入開機自啓腳本,如有需要自行查閱編寫。
(4)在瀏覽器訪問 — 192.168.184.159
3.png
4、安裝數據庫(也可以使用源碼編譯安裝,在此我們使用yum直接安裝)
(1)安裝數據庫,並啓動

[root@localhost ~]# yum -y install mariadb mariadb-server mysql-devel
[root@localhost ~]# systemctl restart mariadb
[root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# netstat -nltp |grep mysqld   #若沒有netstat,則yum -y install net-tools
tcp       0      0 0.0.0.0:3306        0.0.0.0:*            LISTEN      11262/mysqld

(2)對數據庫配置

[root@localhost ~]# mysqladmin -u root password '123'   #使用root用戶登錄數據庫的密碼自行設置
[root@localhost ~]# mysql -uroot -p'123'
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; #建zabbix庫
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';                                        #創建zabbix用戶,密碼爲zabbix
MariaDB [(none)]> show databases;       #查看所有庫
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| zabbix             |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]> flush privileges;  
MariaDB [(none)]> \q 
Bye 
[root@localhost ~]# systemctl restart mariadb

6.配置php
(1)安裝php中間件,並重啓php-fpm

[root@localhost ~]# yum -y install php php-mysql gd php-gd php-fpm
[root@localhost ~]# systemctl start php-fpm          #重啓php-fpm
[root@localhost ~]# systemctl enable php-fpm
[root@localhost ~]# netstat -nltp |grep php
tcp      0      0 127.0.0.1:9000       0.0.0.0:*        LISTEN      40847/php-fpm: mast 

(2)在nginx中寫入測試頁面

[root@localhost ~]# vim /usr/local/nginx/html/a.php
<?php
     phpinfo();
?>
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

(3)在瀏覽器測試 ---- http://192.168.184.159/a.php
出現以下界面說明php配置成功。
4.png
7、配置zabbix
(1)下載zabbix包,將數據導入到數據庫中

[root@localhost ~]# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.3/zabbix-3.4.3.tar.gz                                 #下載zabbix-3.4.3數據包
[root@localhost ~]# ls
nginx-1.16.1  nginx-1.16.1.tar.gz  pcre-8.38.zip  zabbix-3.4.3.tar.gz
[root@localhost ~]# tar xf zabbix-3.4.3.tar.gz 
[root@localhost ~]# ls
nginx-1.16.1  nginx-1.16.1.tar.gz  pcre-8.38.zip  zabbix-3.4.3  zabbix-3.4.3.tar.gz
[root@localhost ~]# cd zabbix-3.4.3/
[root@localhost zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
[root@localhost zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
[root@localhost zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql 

(2)創建zabbix的組和用戶

[root@localhost zabbix-3.4.3]# groupadd zabbix
[root@localhost zabbix-3.4.3]# useradd -s /sbin/nologin -g zabbix zabbix

(3)安裝依賴包,編譯安裝zabbix

[root@localhost zabbix-3.4.3]# yum install -y net-snmp-devel libevent libevent-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
....
[root@localhost zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@localhost zabbix-3.4.3]# make && make install

(4)修改zabbix的配置文件,並啓動zabbix

[root@localhost zabbix-3.4.3]# vim /usr/local/zabbix/etc/zabbix_server.conf 
 DBHost=localhost          #該行默認被註釋掉,去掉註釋(如果是多臺服務器,應該寫數據庫的ip地址)
 DBName=zabbix             #數據庫用戶,授權的用戶是zabbix
 DBUser=zabbix             #授權的用戶是 zabbix
 DBPassword=zabbix         #該行默認被註釋掉,去掉註釋並修改,密碼授權是 zabbix
[root@localhost zabbix-3.4.3]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
 Server=127.0.0.1          #默認監控服務器自己,這三行不用修改
 ServerActive=127.0.0.1
 Hostname=Zabbix server
 UnsafeUserParameters=1    #該行默認被註釋掉,去掉註釋並修改(將0改爲1)
[root@localhost zabbix-3.4.3]# /usr/local/zabbix/sbin/zabbix_server     #啓動zabbix
[root@localhost zabbix-3.4.3]# netstat -nltp | grep zabbix
tcp        0      0 0.0.0.0:10051        0.0.0.0:*       LISTEN    40682/zabbix_server 

8、將zabbix的頁面代碼放到發佈目錄下

[root@localhost ~]# cp -r 、/root/zabbix-3.4.3/frontends/php/*   /usr/local/nginx/html/
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload 
[root@localhost ~]# systemctl restart php-fpm

9、在瀏覽器頁面測試 ---- 192.168.184.159
(1)訪問192.168.184.159,出來以下頁面
5.png
(2)下一步,但在該頁面會出現報錯如圖:
6.png

解決方法如下:

① php的配置文件修改

[root@localhost ~]# vim /etc/php.ini       #對內容作出如下修改
post_max_size = 16M              #修改(大概在672行)
max_execution_time = 300         #修改(大概在384行)
max_input_time = 300             #修改(大概在394行)
date.timezone = Asia/Shanghai    #此行有註釋,去掉註釋並修改內容(大概在878行)

② 缺少php的中間件

[root@localhost ~]# yum -y install php-bcmath php-mbstring  php-xml  php-ldap
[root@localhost ~]# systemctl restart php-fpm

(3)在瀏覽器訪問
① 刷新訪問的頁面發現都變成ok了,並執行下一步
7.png
② 配置數據庫(授權密碼爲zabbix),下一步
8.png
③ 默認,不進行修改
9.png10.png
④ 下一步後的頁面會報錯如圖:(解決方法如圖)

11.png

解決方法:(將下載的文件上傳到服務器中,此處不列出,可以用rz命令,也可以用工具上傳)
[root@localhost ~]# ls
nginx-1.16.1  pcre-8.38.zip  zabbix-3.4.3  zabbix-3.4.3.tar.gz  zabbix.conf.php
[root@localhost ~]# mv zabbix.conf.php /usr/local/nginx/html/conf/
[root@localhost ~]# ls /usr/local/nginx/html/conf/
maintenance.inc.php  zabbix.conf.php  zabbix.conf.php.example

⑤ 刷新剛纔的頁面,如圖即成功,並進行下一步
12.png
⑥ 配置完成,進行登錄
13.png
⑦ 登錄即可進入zabbix的頁面,即實驗完成。
14.png
⑧ 修改系統的語言(改爲簡體中文)
15.png16.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章