使用目的?php
在公司項目中須要作一個日誌監控,最開始選擇的是efk,可是efk的資料相對較少而且以前對這幾個產品都沒接觸過,使用起來難度。因而選擇了zabbix做爲項目的運維監控系統。html
zabbix能作什麼?mysql
zabbix主要是用來網絡監控、系統監控、應用監控等場景。zabbix分爲server端和agent端,文章前半部分都是在講server端的安裝操做,後面結尾講解agent的安裝操做。nginx
搭建環境web
centos7.0,lnmp集成環境(mysql5.7,php7.2),zabbix4.0版本。zabbix安裝的具體環境要求可參考官網手冊。 手冊給到以下幾種安裝方式:sql
安裝步驟docker
1.安裝lnmp環境 因爲lnmp集成包,安裝很是方便,所以直接安裝官網手冊一鍵安裝便可.官網地址 2.安裝zabbix服務端shell
# 安裝依賴 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,因此在編譯的時候是用的mysql的依賴,若是是其餘的數據庫按照官網手冊編譯的時候編譯其餘的數據庫依賴) 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.建立zabbix用戶 <font color='blue'>爲何要給zabbix建立一個單獨的用戶,很簡單,是由於安全問題。爲了安全考慮zabbix只使用普通用戶運行,假如你當前用戶叫ttlsa,那麼你運行他,他便使用ttlsa身份運行。可是若是你在root環境下運行zabbix,那麼zabbix將會主動使用zabbix用戶來運行。可是若是你的系統沒有名叫zabbix的用戶,你須要建立一個用戶。</font>數據庫
groupadd zabbix useradd -g zabbix zabbix
4.數據庫相關配置 考慮到安全問題,所以這裏咱們一樣的給zabbix建立一個單獨的數據庫用戶,數據庫名稱也是zabbix。MySQL建立用戶能夠參考以前的一篇文章,MySQL建立用戶傳送門。在本文中建立的MySQL用戶爲zabbix,密碼能夠根據本身定義。編程
5.導入zabbix事先準備好的數據。 .查看數據庫文件
cd /home/wwwroot/zabbix-4.2.3/database && ls drwxr-xr-x 2 mysql mysql 4096 6月 6 02:23 elasticsearch drwxr-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.in drwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 mysql drwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 oracle drwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 postgresql drwxr-xr-x 2 mysql mysql 4096 6月 13 10:10 sqlite3
.上面的幾種目錄就是針對不一樣的數據,zabbix自帶的不一樣的數據庫文件,咱們是使用的MySQL,所以咱們只須要關心mysql目錄下面的文件,下面便是咱們須要的文件。schema.sql文件數數據表結構,images.sql是相關的圖片數據結構,data.sql則是相關的數據結構。
-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
.登陸並導入數據庫
# 登陸數據 mysql -u root -p # 選擇實現建立好的zabbix數據庫 use zabbix # 依次導入數據庫文件 source /home/wwwroot/zabbix-4.2.3/database schema.sql source /home/wwwroot/zabbix-4.2.3/database data.sql source /home/wwwroot/zabbix-4.2.3/database images.sql
配置虛擬域名
本文搭建的zabbix是在centos7.0的虛擬環境中搭建,爲了方便訪問,搭建了一個虛擬域名.只須要配置一個nginx文件便可.環境中使用的是lnmp集成開發環境,則使用lnmp集成開發環境自帶的命令來建立
lnmp vhost add # 指定root的目錄,應該爲 /home/wwwroot/zabbix-4.2.3/frontends/php # 應該開啓pathinfo模式, #rwriter 選擇WordPress(不強制要求)
在本地點的hosts文件中添加上述本身配置的虛擬域名(以.dev.zabbix.com爲例)
使用zabbix
咱們在登陸時候,會提示咱們一些安裝信息,咱們按照提示填寫便可。在安裝以後會自動跳轉到登陸頁面,能夠選擇賓客模式也可使用管理員模式。 賓客模式就只是簡單的瀏覽操做。系統默認的管理帳號是Admin,密碼是zabbix。 在使用管理員帳號的時候會可能會提示以下信息。如要是由於咱們的web服務致使的,若是是使用的Apache則不會出現以下問題。 問題根源是在zabbix php定位問題發現,zabbix是依據php文件名來設置權限,例如index.php、dashboard.php這些,若是cgi.fix_pathinfo設置爲0,那麼php沒法獲取到url請求的文件名稱,例如訪問index.php,獲取不到index.php也定位到權限,因而出現這個錯誤。解決辦法是:修改php.ini文件的配置。
cgi.fix_pathinfo=0 改成 cgi.fix_pathinfo=1
此時咱們登陸進去就能夠看到以下界面了。
安裝代理端
配置文件目錄:/etc/zabbix/zabbix_agentd.conf
1.在被監控主機上設置防火牆,容許zabbix-agent的10050端口經過 2.執行yum list |grep zabbix,找到zabbix的agent安裝包並安裝,如包名zabbix-agent.x86_64 3.在 /etc/zabbix/zabbix_agentd.conf 中更改: Server=<zbx-server的ip> ServerActive=<zbx-server的ip> Hostname=<本機的主機名> 4.設置zabbix-agent服務自啓動並啓動服務 systemctl enable zabbix-agent.service 開機自啓動 systemctl start zabbix-agent.service 啓動服務
部分文章參考公衆號:浪子編程走四方