在上文中我具體操作了在LAMP架構(gòu)中搭建Zabbix監(jiān)控服務(wù),在本篇中我將在LNMP中搭建一個(gè)Zabbix服務(wù),操作步驟相比于之前要稍微復(fù)雜一些,但也只是在細(xì)節(jié)上LNMP稍多一些,大體過(guò)程還是類似的。
實(shí)驗(yàn)環(huán)境:
STKAITI下載鏈接見 http://www.sfodin.cn/Linux/2018-11/155200.htm
操作步驟
一、搭建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
在瀏覽器上訪問(wèn)http://192.168.199.129/
2 安裝mysql5.7(這里為了安裝方便我也mariadb來(lái)代替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相關(guān)參數(shù)
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相關(guān)服務(wù)
[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 #監(jiān)控執(zhí)行時(shí)間
378 max_input_time = 300 #接收數(shù)據(jù)等待時(shí)間
389 memory_limit = 128M #每個(gè)腳本占用內(nèi)存
656 post_max_size = 16M #POST數(shù)據(jù)大小
799 upload_max_filesize = 2M #下載文件大小
800 always_populate_raw_post_data = -1 #可以用$HTTP_RAW_POST_DATA接收post raw data
date.timezone = Asia/Shanghai #將時(shí)區(qū)設(shè)為上海時(shí)區(qū)
6 配置PHP請(qǐng)求被傳送到后端的php-fpm模塊,默認(rèn)情況下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 開啟服務(wù)
[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 #創(chuàng)建PHP測(cè)試首頁(yè)
<?php
phpinfo();
?>
在瀏覽器上訪問(wèn)http://192.168.199.129/index.php
測(cè)試PHP能否連接數(shù)據(jù)庫(kù):
[root@promote html]# vim index.php
<?php
$link=mysqli_connect(‘127.0.0.1′,’root’,’123123′);
if ($link) echo “true”;
else echo “false”;
?>
8 創(chuàng)建zabbix數(shù)據(jù)庫(kù)與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;
解決本地?zé)o法登陸問(wèn)題:
[root@promote ~]# mysql -u zabbix -p #現(xiàn)在用zabbix用戶是無(wú)法登陸數(shù)據(jù)庫(kù)的,因?yàn)橛锌沼脩粼谶M(jìn)行占用
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’; #刪除庫(kù)中的空用戶
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> drop user ”@’promote.cache-dns.local’; #刪除空用戶
Query OK, 0 rows affected (0.00 sec)
測(cè)試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”;
?>
在瀏覽器上訪問(wèn)http://192.168.199.129/index.php
到此為止LNMP架構(gòu)就搭建完成了,下面開始部署zabbix服務(wù)
二、部署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腳本文件導(dǎo)入到zabbix數(shù)據(jù)庫(kù)中
[root@promote ~]# mysql -u zabbix -p
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables; #查看zabbix數(shù)據(jù)庫(kù)中的表,如果腳本導(dǎo)入成功,就應(yīng)該會(huì)看到很多表
修改zabbix配置文件,需要修改以下內(nèi)容:
[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/ #從微軟系統(tǒng)下復(fù)制相應(yīng)的字體文件到/usr/share/zabbix/fonts/
賦予文件權(quán)限:
[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/
啟動(dòng)服務(wù):
[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 #這兩個(gè)服務(wù)一定要重啟,不然在登陸zabbix監(jiān)控頁(yè)面時(shí)會(huì)出錯(cuò)
在瀏覽器上登錄zabbix界面:
版本顯示為4.0
這里必須每項(xiàng)都顯示OK才可以,如果有報(bào)錯(cuò)請(qǐng)重新啟動(dòng)PHP,nginx和zabbix服務(wù),如果還有問(wèn)題,請(qǐng)檢查三個(gè)服務(wù)的配置文件
接著填寫密碼即可,密碼就是zabbix登錄數(shù)據(jù)庫(kù)密碼,端口保持默認(rèn)即可
接著填寫zabbix的服務(wù)器名稱,這里我就定義為zabbix
接著點(diǎn)擊下一步就會(huì)顯示zabbix的完整信息
接著點(diǎn)擊下一步就會(huì)看到這個(gè)信息,是說(shuō)沒(méi)辦法創(chuàng)建配置文件,這時(shí)候點(diǎn)擊圖中的下載鏈接下載這個(gè)文件,接著將這個(gè)文件掛載到zabbix服務(wù)器上,具體操作如下:
點(diǎn)擊完成就會(huì)發(fā)現(xiàn)報(bào)錯(cuò)消失了
使用賬戶密碼登錄zabbix,默認(rèn)賬號(hào)密碼為‘Admin’和‘zabbix’
接著就會(huì)看到zabbix的監(jiān)控頁(yè)面
三、配置被監(jiān)控服務(wù)器:
[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配置文件,需要更改以下內(nèi)容:
[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監(jiān)控端
139:ServerActive=192.168.199.129 #地址指向zabbix監(jiān)控端
150:Hostname=test #定義服務(wù)器名稱
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
開啟服務(wù):
[root@promote ~]# systemctl start zabbix-agent.service
[root@promote ~]# systemctl enable zabbix-agent.service
[root@promote ~]# netstat -ntap | grep 10050 #查看端口,注意被監(jiān)控端端口是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服務(wù)已經(jīng)完成,要想監(jiān)控到其他服務(wù)器還需要在瀏覽器的監(jiān)控頁(yè)面上手動(dòng)添加,添加過(guò)程我在上篇博客“在LAMP架構(gòu)上搭建Zabbix監(jiān)控服務(wù)”已經(jīng)詳細(xì)講過(guò),這里就不再操作。