1. 程式人生 > >在LNMP架構中搭建zabbix監控服務!!!

在LNMP架構中搭建zabbix監控服務!!!

必須 png zabb document 版本 請求 popu ram 成功

在上篇博客中我具體操作了在LAMP架構中搭建zabbix監控服務,在本篇中我將在LNMP中搭建一個zabbix服務,操作步驟相比於之前要稍微復雜一些,但也只是在細節上LNMP稍多一些,大體過程還是類似的。

實驗環境:
技術分享圖片
STKAITI鏈接:https://pan.baidu.com/s/1d6VpWcuQMQuaww4r_KZnNA
提取碼:90v8
操作步驟
一、搭建LNMP
1 安裝nginx1.4

[root@promote~]#wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
[root@promote ~]# rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm    #安裝nginx官方源
[root@promote ~]# yum install nginx -y
[root@promote ~]# systemctl start nginx
[root@promote ~]# systemctl enable nginx
[root@promote ~]# netstat -ntap | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3024/nginx: master  

在瀏覽器上訪問http://192.168.199.129/
技術分享圖片

2 安裝mysql5.7(這裏為了安裝方便我也mariadb來代替mysql,功能都是一樣的):

[root@promote ~]# yum install mariadb-server mariadb -y     #下載mariadb安裝包
[root@promote ~]# systemctl start mariadb.service
[root@promote ~]# systemctl enable mariadb.service 
[root@promote ~]# mysql_secure_installation       #配置mariadb相關參數
Set root password? [Y/n] y
Remove anonymous users? [Y/n] n
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] n
Reload privilege tables now? [Y/n] y

3 安裝PHP7.2

[root@promote~]#rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@promote ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm    #下載PHPyum源
[root@promote ~]# yum install php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql -y    #安裝PHP相關服務
[root@promote ~]# php -v     #查看版本
PHP 7.2.10 (cli) (built: Sep 15 2018 07:10:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

4 配置nginx支持PHP:

[root@promote ~]# vim /etc/php-fpm.d/www.conf
8 user = nginx     #將Apache改為nginx
10 group = nginx   #將Apache改為nginx

5 配置PHP:

[root@promote ~]# vim /etc/php.ini
359 expose_php = Off    #隱藏PHP版本
368 max_execution_time = 300    #監控執行時間
378 max_input_time = 300    #接收數據等待時間
389 memory_limit = 128M    #每個腳本占用內存
656 post_max_size = 16M    #POST數據大小
799 upload_max_filesize = 2M    #下載文件大小
800 always_populate_raw_post_data = -1    #可以用$HTTP_RAW_POST_DATA接收post raw data
date.timezone = Asia/Shanghai    #將時區設為上海時區

6 配置PHP請求被傳送到後端的php-fpm模塊,默認情況下php配置模塊是被註釋掉的:

[root@promote ~]# vim /etc/nginx/conf.d/default.conf
10         index  index.php index.html index.htm;
30     location ~ \.php$ {
31         root          /usr/share/nginx/html;
32         fastcgi_pass   127.0.0.1:9000;
33         fastcgi_index  index.php; 34         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_scr    ipt_name; 35         include        fastcgi_params; 36     }    #把fastcgi_param中的/scripts改為$document_root,root是配置php程序用戶

7 開啟服務

[root@promote ~]# systemctl start php-fpm.service 
[root@promote ~]# systemctl enable php-fpm.service 
[root@promote ~]# systemctl restart nginx
[root@promote ~]# vim /usr/share/nginx/html/index.php    #創建PHP測試首頁
<?php
  phpinfo();
?>

在瀏覽器上訪問http://192.168.199.129/index.php
技術分享圖片
測試PHP能否連接數據庫:

[root@promote html]# vim index.php 
<?php
$link=mysqli_connect(‘127.0.0.1‘,‘root‘,‘123123‘);
 if ($link) echo "true";
 else echo "false";
?>

技術分享圖片

8 創建zabbix數據庫與zabbix用戶:

[root@promote html]# mysql -u root -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on *.* to ‘zabbix‘@‘%‘ identified by ‘123123‘;
MariaDB [(none)]> flush privileges;

解決本地無法登陸問題:

[root@promote ~]# mysql -u zabbix -p    #現在用zabbix用戶是無法登陸數據庫的,因為有空用戶在進行占用
Enter password: 
ERROR 1045 (28000): Access denied for user ‘zabbix‘@‘localhost‘ (using password: YES)

MariaDB [(none)]> select user,host from mysql.user;
+--------+-------------------------+
| user   | host                    |
+--------+-------------------------+
| zabbix | %                       |
| root   | 127.0.0.1               |
| root   | ::1                     |
|        | localhost               |
| root   | localhost               |
|        | promote.cache-dns.local |
| root   | promote.cache-dns.local |
+--------+-------------------------+
7 rows in set (0.00 sec)

MariaDB [(none)]> drop user ‘‘@‘localhost‘;    #刪除庫中的空用戶
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> drop user ‘‘@‘promote.cache-dns.local‘;    #刪除空用戶
Query OK, 0 rows affected (0.00 sec)

測試zabbix用戶能否連接PHP:

[root@promote ~]# vim /usr/share/nginx/html/index.php 
<?php
$link=mysqli_connect(‘127.0.0.1‘,‘zabbix‘,‘123123‘);
 if ($link) echo "true";
 else echo "false";
?>

在瀏覽器上訪問http://192.168.199.129/index.php
技術分享圖片
到此為止LAMP架構就搭建完成了,下面開始部署zabbix服務

二、部署zabbix server:

[root@promote~]#rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@promote ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
[root@promote ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix     #將zabbix腳本文件導入到zabbix數據庫中
[root@promote ~]# mysql -u zabbix -p
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;    #查看zabbix數據庫中的表,如果腳本導入成功,就應該會看到很多表

修改zabbix配置文件,需要修改以下內容:

[root@promote ~]# grep -n ‘^‘[a-Z] /etc/zabbix/zabbix_server.conf 
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
91:DBHost=localhost         #去掉註釋
101:DBName=zabbix
117:DBUser=zabbix
125:DBPassword=123123     #修改密碼
357:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
475:Timeout=4
518:AlertScriptsPath=/usr/lib/zabbix/alertscripts
529:ExternalScripts=/usr/lib/zabbix/externalscripts
565:LogSlowQueries=3000

修正圖表中文亂碼:

[root@promote ~]# vim /usr/share/zabbix/include/defines.inc.php

技術分享圖片

[root@promote zabbix]# cp STKAITI.TTF /usr/share/zabbix/fonts/ #從微軟系統下復制相應的字體文件到/usr/share/zabbix/fonts/

賦予文件權限:

[root@promote ~]# cp -r /usr/share/zabbix/ /usr/share/nginx/html/
[root@promote ~]# chown -R zabbix.zabbix /etc/zabbix/
[root@promote ~]# chown -R zabbix.zabbix /usr/share/nginx/
[root@promote ~]# chown -R zabbix.zabbix /usr/lib/zabbix/
[root@promote ~]# chmod -R 755 /etc/zabbix/web/
[root@promote ~]# chmod -R 777 /var/lib/php/session/

啟動服務:

[root@promote ~]# systemctl start zabbix-server.service 
[root@promote ~]# systemctl enable zabbix-server.service 
[root@promote ~]# systemctl start zabbix-agent.service 
[root@promote ~]# systemctl enable zabbix-agent.service 
[root@promote ~]# systemctl restart php-fpm.service 
[root@promote ~]# systemctl restart nginx       #這兩個服務一定要重啟,不然在登陸zabbix監控頁面時會出錯

在瀏覽器上登錄zabbix界面:
版本顯示為4.0
技術分享圖片
這裏必須每項都顯示OK才可以,如果有報錯請重新啟動PHP,nginx和zabbix服務,如果還有問題,請檢查三個服務的配置文件
技術分享圖片
接著填寫密碼即可,密碼就是zabbix登錄數據庫密碼,端口保持默認即可
技術分享圖片
接著填寫zabbix的服務器名稱,這裏我就定義為zabbix
技術分享圖片
接著點擊下一步就會顯示zabbix的完整信息
技術分享圖片
接著點擊下一步就會看到這個信息,是說沒辦法創建配置文件,這時候點擊圖中的下載鏈接下載這個文件,接著將這個文件掛載到zabbix服務器上,具體操作如下:
技術分享圖片
技術分享圖片
點擊完成就會發現報錯消失了
技術分享圖片
使用賬戶密碼登錄zabbix,默認賬號密碼為‘Admin’和‘zabbix’
技術分享圖片
接著就會看到zabbix的監控頁面
技術分享圖片

三、配置被監控服務器:

[root@promote ~]# systemctl stop firewalld.service 
[root@promote ~]# setenforce 0

下載yum源:

[root@promote~]# rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@promote ~]# yum install zabbix-agent -y

更改zabbix配置文件,需要更改以下內容:

[root@promote ~]# grep -n ‘^‘[a-Z] /etc/zabbix/zabbix_agentd.conf 
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=192.168.199.129      #地址指向zabbix監控端
139:ServerActive=192.168.199.129    #地址指向zabbix監控端
150:Hostname=test      #定義服務器名稱
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

開啟服務:

[root@promote ~]# systemctl start zabbix-agent.service 
[root@promote ~]# systemctl enable zabbix-agent.service 
[root@promote ~]# netstat -ntap | grep 10050       #查看端口,註意被監控端端口是10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      38128/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      38128/zabbix_agentd 

到此為止,在LNMP上搭建zabbix服務已經完成,要想監控到其他服務器還需要在瀏覽器的監控頁面上手動添加,添加過程我在上篇博客“在LAMP架構上搭建zabbix監控服務”已經詳細講過,這裏就不再操作。

在LNMP架構中搭建zabbix監控服務!!!