源碼編譯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 }
(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
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配置成功。
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,出來以下頁面
(2)下一步,但在該頁面會出現報錯如圖:
解決方法如下:
① 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了,並執行下一步
② 配置數據庫(授權密碼爲zabbix),下一步
③ 默認,不進行修改
④ 下一步後的頁面會報錯如圖:(解決方法如圖)
解決方法:(將下載的文件上傳到服務器中,此處不列出,可以用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
⑤ 刷新剛纔的頁面,如圖即成功,並進行下一步
⑥ 配置完成,進行登錄
⑦ 登錄即可進入zabbix的頁面,即實驗完成。
⑧ 修改系統的語言(改爲簡體中文)