
使用目的?
在公司項(xiàng)目中需要做一個(gè)日志監(jiān)控,最開始選擇的是efk,但是efk的資料相對(duì)較少并且之前對(duì)這幾個(gè)產(chǎn)品都沒接觸過,使用起來難度。于是選擇了zabbix作為項(xiàng)目的運(yùn)維監(jiān)控系統(tǒng)。
zabbix能做什么?
(資料圖片僅供參考)
zabbix主要是用來網(wǎng)絡(luò)監(jiān)控、系統(tǒng)監(jiān)控、應(yīng)用監(jiān)控等場(chǎng)景。zabbix分為server端和agent端,文章前半部分都是在講server端的安裝操作,后面結(jié)尾講解agent的安裝操作。
搭建環(huán)境
centos7.0,lnmp集成環(huán)境(mysql5.7,php7.2),zabbix4.0版本。??zabbix安裝的具體環(huán)境要求可參考官網(wǎng)手冊(cè)???。手冊(cè)給到如下幾種安裝方式:
源碼安裝(本文采用的也就是源碼安裝)二進(jìn)制安裝容器安裝,例如docker安裝安裝步驟
1.安裝lnmp環(huán)境由于lnmp集成包,安裝非常方便,因此直接安裝官網(wǎng)手冊(cè)一鍵安裝即可.???官網(wǎng)地址??2.安裝zabbix服務(wù)端
# 安裝依賴yum install net-snmp-devel libxml2-devel libcurl-devel libevent-devel mysql-devel# 下載安裝包(該安裝包可以直接放在web的程序目錄里面)wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.2.3/zabbix-4.2.3.tar.gz/download# 解壓tar zxvf zabbix-4.2.3.tar.gz# 編譯(這里我使用的是mysql,所以在編譯的時(shí)候是用的mysql的依賴,如果是其他的數(shù)據(jù)庫(kù)按照官網(wǎng)手冊(cè)編譯的時(shí)候編譯其他的數(shù)據(jù)庫(kù)依賴)cd zabbix-4.2.3./configure --prefix=/web/data/zabbix-3.4.4/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2# 開始安裝make && make install
3.創(chuàng)建zabbix用戶為什么要給zabbix創(chuàng)建一個(gè)單獨(dú)的用戶,很簡(jiǎn)單,是因?yàn)榘踩珕栴}。為了安全考慮zabbix只使用普通用戶運(yùn)行,假如你當(dāng)前用戶叫ttlsa,那么你運(yùn)行他,他便使用ttlsa身份運(yùn)行。但是如果你在root環(huán)境下運(yùn)行zabbix,那么zabbix將會(huì)主動(dòng)使用zabbix用戶來運(yùn)行。但是如果你的系統(tǒng)沒有名叫zabbix的用戶,你需要?jiǎng)?chuàng)建一個(gè)用戶。
groupadd zabbixuseradd -g zabbix zabbix
4.數(shù)據(jù)庫(kù)相關(guān)配置考慮到安全問題,因此這里我們同樣的給zabbix創(chuàng)建一個(gè)單獨(dú)的數(shù)據(jù)庫(kù)用戶,數(shù)據(jù)庫(kù)名稱也是zabbix。MySQL創(chuàng)建用戶可以參考之前的一篇文章,???MySQL創(chuàng)建用戶傳送門??。在本文中創(chuàng)建的MySQL用戶為zabbix,密碼可以根據(jù)自己定義。
5.導(dǎo)入zabbix事先準(zhǔn)備好的數(shù)據(jù)。.查看數(shù)據(jù)庫(kù)文件
cd /home/wwwroot/zabbix-4.2.3/database && ls drwxr-xr-x 2 mysql mysql 4096 6月 6 02:23 elasticsearchdrwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 ibm_db2-rw-r--r-- 1 root root 21474 6月 13 10:10 Makefile-rw-r--r-- 1 mysql mysql 155 6月 6 02:23 Makefile.am-rw-r--r-- 1 mysql mysql 21722 6月 6 02:24 Makefile.indrwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 mysqldrwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 oracledrwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 postgresqldrwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 sqlite3
.上面的幾種目錄就是針對(duì)不同的數(shù)據(jù),zabbix自帶的不同的數(shù)據(jù)庫(kù)文件,我們是使用的MySQL,因此我們只需要關(guān)心mysql目錄下面的文件,下面即是我們需要的文件。schema.sql文件數(shù)數(shù)據(jù)表結(jié)構(gòu),images.sql是相關(guān)的圖片數(shù)據(jù)結(jié)構(gòu),data.sql則是相關(guān)的數(shù)據(jù)結(jié)構(gòu)。
-rw-r--r-- 1 mysql mysql 4018823 6月 6 02:24 data.sql-rw-r--r-- 1 mysql mysql 1978341 6月 6 02:23 images.sql-rw-r--r-- 1 root root 15420 6月 13 10:10 Makefile-rw-r--r-- 1 mysql mysql 392 6月 6 02:23 Makefile.am-rw-r--r-- 1 mysql mysql 15711 6月 6 02:24 Makefile.in-rw-r--r-- 1 mysql mysql 142074 6月 6 02:24 schema.sql
.登錄并導(dǎo)入數(shù)據(jù)庫(kù)
# 登錄數(shù)據(jù)mysql -u root -p# 選擇實(shí)現(xiàn)創(chuàng)建好的zabbix數(shù)據(jù)庫(kù)use zabbix# 依次導(dǎo)入數(shù)據(jù)庫(kù)文件source /home/wwwroot/zabbix-4.2.3/database schema.sqlsource /home/wwwroot/zabbix-4.2.3/database data.sqlsource /home/wwwroot/zabbix-4.2.3/database images.sql
配置虛擬域名
本文搭建的zabbix是在centos7.0的虛擬環(huán)境中搭建,為了方便訪問,搭建了一個(gè)虛擬域名.只需要配置一個(gè)nginx文件即可.環(huán)境中使用的是lnmp集成開發(fā)環(huán)境,則使用lnmp集成開發(fā)環(huán)境自帶的命令來創(chuàng)建
lnmp vhost add # 指定root的目錄,應(yīng)該為/home/wwwroot/zabbix-4.2.3/frontends/php# 應(yīng)該開啟pathinfo模式,#rwriter 選擇WordPress(不強(qiáng)制要求)
在本地點(diǎn)的hosts文件中添加上述自己配置的虛擬域名(以.dev.zabbix.com為例)
使用zabbix
我們?cè)诘卿洉r(shí)候,會(huì)提示我們一些安裝信息,我們按照提示填寫即可。在安裝之后會(huì)自動(dòng)跳轉(zhuǎn)到登錄頁面,可以選擇賓客模式也可以使用管理員模式。
賓客模式就只是簡(jiǎn)單的瀏覽操作。系統(tǒng)默認(rèn)的管理賬號(hào)是Admin,密碼是zabbix。
在使用管理員賬號(hào)的時(shí)候會(huì)可能會(huì)提示如下信息。如要是因?yàn)槲覀兊膚eb服務(wù)導(dǎo)致的,如果是使用的Apache則不會(huì)出現(xiàn)如下問題。
問題根源是在zabbix php定位問題發(fā)現(xiàn),zabbix是依據(jù)php文件名來設(shè)置權(quán)限,例如index.php、dashboard.php這些,如果cgi.fix_pathinfo設(shè)置為0,那么php無法獲取到url請(qǐng)求的文件名稱,例如訪問index.php,獲取不到index.php也定位到權(quán)限,于是出現(xiàn)這個(gè)錯(cuò)誤。解決辦法是:修改php.ini文件的配置。
cgi.fix_pathinfo=0改為cgi.fix_pathinfo=1
此時(shí)我們登錄進(jìn)去就可以看到如下界面了。
安裝代理端
配置文件目錄:/etc/zabbix/zabbix_agentd.conf
1.在被監(jiān)控主機(jī)上設(shè)置防火墻,允許zabbix-agent的10050端口通過2.執(zhí)行yum list |grep zabbix,找到zabbix的agent安裝包并安裝,如包名zabbix-agent.x86_643.在 /etc/zabbix/zabbix_agentd.conf 中更改: Server=ServerActive= Hostname=<本機(jī)的主機(jī)名>4.設(shè)置zabbix-agent服務(wù)自啟動(dòng)并啟動(dòng)服務(wù) systemctl enable zabbix-agent.service 開機(jī)自啟動(dòng) systemctl start zabbix-agent.service 啟動(dòng)服務(wù)
標(biāo)簽: 創(chuàng)建用戶 使用的是 安全問題