一、Zabbix介紹
1、簡介
在日常線上運維環境下,監控是非常重要的,監控就相當于運維人員在服務器上的眼睛,如果想要保證線上業務整體能能夠穩定運行,那么我們則需要實時關注與其相關的各項指標是否正常,而一個業務系統的背后,往往存在著很多的服務器、網路設備等硬體資源,
如果我們想要能夠更加方便、集中的監控他們,我們則需要一些外部的工具來隨時替我們監視著他們,zabbix就是一個被廣泛使用,可以實作集中監控管理的應用程式,
2、監控工具的作用:
當某些指標不符合我們的需求時,我們能夠在第一時間發現例外,監控工具需要定期的對被監控主機進行檢查、資訊收集等操作,當被監控主機出現例外時,能夠及時報警、通知管理員,并且需要記錄這些例外,以便我們分析這些資料,查漏補缺,
3、Zabbix支持的通訊方式
agent:通過專用的代理程式進行監控,與常見的master/agent模型類似,如果被監控物件支持對應的agent,推薦首選,
ssh/telnet:通過遠程控制協議進行通訊,比如ssh或者telnet,
SNMP:通過SNMP與被監控物件進行通訊,SNMP協議的全稱為Simple Network Management Protocol ,被譯為 “簡單網路管理協議”,通常來說,我們無法在路由器、交換機這種硬體上安裝agent,但是這些硬體往往都支持SNMP協議,SNMP是一種比較久遠的、通行的協議,大部分網路設備都支持這種協議,其實SNMP協議的作業方式也可以理解為master/agent的作業方式,只不過是在這些設備中內置了SNMP的agent而已,所以,大部分網路設備都支持這種協議,
IPMI:通過IPMI介面進行監控,我們可以通過標準的IPMI硬體介面,監控被監控物件的物理特征,比如電壓,溫度,風扇狀態,電源狀態等,
JMX:通過JMX進行監控,JMX(Java Management Extensions,即Java管理擴展),監控JVM虛擬機時,使用這種方法也是不錯的選擇,
4、zabbix監控的核心思想
在Zabbix監控中,通過我們使用最多的就是agent代理程式監控,即 zabbix agent,
一般情況下,我們將zabbix agent部署到被監控主機上,由agent采集資料,報告給負責監控的中心主機,中心主機也就是master/agent模型中的master,負責監控的中心主機被稱為zabbix server,zabbix server將從agent端收到的資訊存盤于zabbix的資料庫中,我們把zabbix的資料庫端稱為zabbix database,
如果管理員要查看各種監控資訊,則需要zabbix的GUI,zabbix的GUI是一種Web GUI,我們稱之為zabbix web,zabbix web是使用php撰寫的,所以,如果想要使用zabbix web展示相關監控資訊,需要依賴LAMP環境,不管是zabbix server ,或是zabbix web,他們都需要連接到zabbix database獲取相關資料,

5、各個組件之間的總結:
zabbix agent:部署在被監控主機上,負責被監控主機的資料,并將資料發送給zabbix server,
zabbix server:負責接收agent發送的報告資訊,并且負責組織配置資訊、統計資訊、操作資料等,
zabbix database:用于存盤所有zabbix的配置資訊、監控資料的資料庫,
zabbix web:zabbix的web界面,管理員通過web界面管理zabbix配置以及查看zabbix相關監控資訊,可以單獨部署在獨立的服務器上,
zabbix proxy:可選組件,用于分布式監控環境中,zabbix proxy代表server端,完成區域區域內的資訊收集,最終統一發往server端,
二、Zabbix原始碼編譯安裝
對于zabbix來說,其實官網yum安裝相對方便,但是有時候我們需要在特定的環境下,進行版本適配,尤其是在版本相配的LNMP環境下,對zabbix的版本就有嚴格要求
官網yum安裝中文檔案:https://www.zabbix.com/documentation/4.0/zh/manual/installation/install_from_packages/rhel_centos
官網原始碼安裝中文檔案:
https://www.zabbix.com/documentation/4.0/zh/manual/installation/install
環境說明:此處環境為centos7系統,6系統也是同樣的操作
zabbix 各版本下載地址:https://sourceforge.net/p/zabbix/activity/?page=0&limit=100#5cb76912f0d3475bbf780be2
具體安裝步驟:
1、編譯安裝LNMP環境【之前博客中有寫到:https://blog.csdn.net/xu710263124/article/details/115761444?spm=1001.2014.3001.5502】
2、下載并解壓軟體包并安裝依賴包
wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.6/zabbix-4.0.6.tar.gz
tar xvzf zabbix-4.0.6.tar.gz
yum install libxml2-devel net-snmp-devel libevent-devel curl-devel pcre*
3、創建zabbix用戶
groupadd zabbix
useradd -g zabbix zabbix
4、配置源代碼(說明: --with-mysql,指定mysql_config路徑;可以通過find / -name mysql_config 命令查看)
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
5、安裝
make install
6、copy命令到系統命令存放處(方便呼叫)
cp /usr/local/zabbix/sbin/* /usr/sbin/
cp /usr/local/zabbix/bin/* /usr/bin/
7、匯入資料庫(首先需要先創建資料庫)
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix@qaz';
mysql> flush privileges;
# pwd
/root/zabbix-4.0.6/database/mysql
# ls
data.sql images.sql Makefile Makefile.am Makefile.in schema.sql
mysql -u zabbix -pzabbix@qaz -h localhost zabbix < schema.sql
mysql -u zabbix -pzabbix@qaz -h localhost zabbix < images.sql
mysql -u zabbix -pzabbix@qaz -h localhost zabbix < data.sql
8、編輯組態檔
# vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/log/zabbix_server.log //日志檔案存放的路徑
PidFile=/usr/local/zabbix/zabbix_server.pid //pid檔案存放的路徑
DBHost=localhost //資料庫服務器地址
DBName=zabbix //資料庫名字
DBUser=zabbix //連接資料庫的用戶名
DBPassword=zabbix@qaz //連接資料庫用戶的密碼
DBSocket=/var/lib/mysql/mysql.sock //指定連接mysql的socket,mysql配置的client sock檔案路徑
DBPort=3306 //資料庫埠
Timeout=4 //超時時間
LogSlowQueries=3000 //慢查詢記錄的時間
9、創建log檔案,并設定用戶所有權
mkdir /usr/local/zabbix/log
chown zabbix.zabbix /usr/local/zabbix/log
10、啟動zabbix_server(需要將安裝目錄權限設定為zabbix,因為組態檔中定義的zabbix用戶啟動,并指定的sock檔案存放這個目錄所以需要設定為指定的用戶的權限)
chown zabbix.zabbix /usr/local/zabbix/
/usr//local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
可通過netstat -antup | grep zabbix_server
netstat -nlutp |grep zabbix_server
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 17003/zabbix_server
11、添加啟動腳本
# pwd
/root/zabbix-4.0.6
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_server
chmod +x /etc/init.d/zabbix_agentd
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig zabbix_server on
chkconfig zabbix_agentd on
# vim /etc/init.d/zabbix_server //編輯服務端組態檔
BASEDIR=/usr/local/zabbix/ //zabbix安裝路徑
PIDFILE=/usr/local/zabbix/$BINARY_NAME.pid //pid檔案路徑
# vim /etc/init.d/zabbix_agentd //編輯客戶端組態檔
BASEDIR=/usr/local/zabbix/ //zabbix安裝路徑
PIDFILE=/usr/local/zabbix/$BINARY_NAME.pid //pid檔案路徑
// 測驗
# /etc/init.d/zabbix_server start
Starting zabbix_server: [ OK ]
# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd: [ OK ]
12、開始配置web界面(先將解壓目錄里面的 frontends/php 目錄下的所有檔案 copy 到指定的 網站目錄)
cp -a /root/zabbix-4.0.6/frontends/php/* /opt/zabbix/
13、改為網站運行的用戶(這里是在已有的lnmp環境部署,網站用戶為apache;根據php中配置的用戶來)
chown -R apache. /opt/zabbix/
14、編輯 nginx 組態檔
vim /opt/nginx/conf/conf.d/nginx.conf
server {
listen 80;
server_name zabbix.xxxxxxx.vip;
autoindex off;
access_log /opt/nginx/logs/zabbix/zabbix.log main;
index index.html index.php index.html;
root /opt/zabbix;
location /{
try_files $uri $uri/ /index.php?$args;
}
location ~ ^(.+.php)(.*)$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /status {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
15、登錄web界面安裝 上面配置的域名,http://域名 初始賬號:Admin 密碼:zabbix








OK~
完結!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282413.html
標籤:其他
上一篇:搭建cobbler自動化安裝系統
下一篇:Docker基本用法
