Zabbix學(xué)習(xí)筆記01

Zabbix分布式監(jiān)控

  • 監(jiān)控網(wǎng)站無須人工時刻去訪問Web網(wǎng)站或者登錄服務(wù)器去檢查,可以借助開源監(jiān)控軟件,例如Zabbix、、Cacti、Nagios、Ganglia等來實(shí)現(xiàn)對網(wǎng)站7*24小時的監(jiān)控,并且做到有故障及時報警通知SA解決

Zabbix監(jiān)控系統(tǒng)入門

  • Zabbix是一個基于Web界面的提供分布式系統(tǒng)監(jiān)控的企業(yè)級開源解決方案,Zabbix能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)安全穩(wěn)定地運(yùn)行,并提供靈活的通知機(jī)制以讓SA快速定位并解決存在的問題.Zabbix分布式監(jiān)控系統(tǒng)的優(yōu)點(diǎn)如下:
    • 支持自動發(fā)現(xiàn)服務(wù)器和網(wǎng)絡(luò)設(shè)備
    • 支持底層自動發(fā)現(xiàn)
    • 分布式的監(jiān)控體系和集中式的Web管理
    • 支持主動監(jiān)控和被動監(jiān)控模式
    • 服務(wù)器端支持多種操作系統(tǒng)
    • agent客戶端支持多種操作系統(tǒng)
    • 基于SNMP、IPMI接口、Zabbix Agent方式監(jiān)控客戶端
    • 安全的用戶認(rèn)證及權(quán)限配置
    • 基于Web的管理方法,支持自由的自定義事件和郵件發(fā)送
    • 高水平的業(yè)務(wù)視圖監(jiān)控資源,支持日志審計、資產(chǎn)管理等功能
    • 支持高水平API二次開發(fā)、腳本監(jiān)控、自key定義、自動化運(yùn)維整合調(diào)用

Zabbix組件及流程

  • Zabbix主要由三大部分構(gòu)成:Zabbix server端、Zabbix proxy、agent客戶端,其中Zabbix server端包括Web GUI、database、Zabbix server
image.png
image.png
  • Zabbix監(jiān)控完整流程:Agent安裝在被監(jiān)控的主機(jī)上,Agent負(fù)責(zé)定期收集客戶端本地各項(xiàng)數(shù)據(jù),并發(fā)送到Zabbix server端,Zabbix server收到數(shù)據(jù),將數(shù)據(jù)存儲在數(shù)據(jù)庫中,用戶可以基于Zabbix Web可以看到數(shù)據(jù)在前端展現(xiàn)的圖像
  • 當(dāng)Zabbix監(jiān)控某個具體項(xiàng)目時,該項(xiàng)目會設(shè)置一個觸發(fā)器閾值,當(dāng)被監(jiān)控的指標(biāo)超過該觸發(fā)器設(shè)定的閾值,會進(jìn)行一些必要的動作,動作包括郵件、微信報警或者執(zhí)行命令等操作.Zabbix完整監(jiān)控系統(tǒng)各個部分負(fù)責(zé)的工作如下
    • Zabbix server:負(fù)責(zé)接收agent發(fā)送的報告信息的核心組件,所有配置、統(tǒng)計數(shù)據(jù)及操作數(shù)據(jù)均由其組織進(jìn)行
    • database storage:專用于存儲所有配置信息以及存儲由Zabbix收集到的數(shù)據(jù)
    • Web interface:Zabbix的GUI接口,通常與server運(yùn)行在同一主機(jī)上
    • proxy:常用于分布監(jiān)控環(huán)境中,代理server收集部分被監(jiān)控端的監(jiān)控數(shù)據(jù)并統(tǒng)一發(fā)往server端
    • Zabbix agent:部署在被監(jiān)控主機(jī)上,負(fù)責(zé)收集本地數(shù)據(jù)并發(fā)往server端或proxy端
  • Zabbix監(jiān)控部署在系統(tǒng)中,通常包含5個常見的程序:zabbix_server、zabbix_get、zabbix_agentd、zabbix_proxy、zabbix_sender.5個程序分別對應(yīng)5個進(jìn)程,每個進(jìn)程的功能如下:
    • zabbix_server:Zabbix服務(wù)端守護(hù)進(jìn)程,其中zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy的數(shù)據(jù)最終均是提交給zabbix_server
    • zabbix_agentd:客戶端守護(hù)進(jìn)程,負(fù)責(zé)收集客戶端數(shù)據(jù),例如CPU負(fù)載、內(nèi)存、磁盤使用情況
    • zabbix_get:Zabbix數(shù)據(jù)獲取工具,單獨(dú)使用的命令,通常在server或者proxy端執(zhí)行獲取遠(yuǎn)程客戶端信息的命令
    • zabbix_sender:Zabbix數(shù)據(jù)發(fā)送工具,用于發(fā)送數(shù)據(jù)給server或者proxy,通常用于耗時比較長的檢查,很多檢查非常耗時,導(dǎo)致Zabbix超時,于是需要在腳本執(zhí)行完畢之后,使用sender主動提交數(shù)據(jù)
    • zabbix_proxy:Zabbix分布式代理守護(hù)進(jìn)程,分布式監(jiān)控架構(gòu)需要部署zabbix_proxy

Zabbix監(jiān)控方式及數(shù)據(jù)采集

  • Zabbix分布式監(jiān)控系統(tǒng)監(jiān)控客戶端的方式常見有3種:agent方式、SNMP方式、IPMI方式,3種方式特點(diǎn)為:
    • agent:Zabbix可以基于自身zabbix_agent客戶端插件監(jiān)控OS的狀態(tài),例如CPU、內(nèi)存、硬盤、網(wǎng)卡、文件等
    • SNMP:Zabbix可以通過簡單網(wǎng)絡(luò)管理協(xié)議(simple network management protocol,SNMP)監(jiān)控網(wǎng)絡(luò)設(shè)備或者Windows主機(jī)等,通過設(shè)定SNMP的參數(shù)將相關(guān)監(jiān)控數(shù)據(jù)傳送至服務(wù)器端,交換機(jī)、防火墻等網(wǎng)絡(luò)設(shè)備一般都支持SNMP協(xié)議
    • IPMI:智能平臺管理接口(intelligent platform management interface,IPMI)即主要應(yīng)用于設(shè)備的物理特性,包括溫度、電壓、電扇工作狀態(tài)、電源供應(yīng)以及機(jī)箱入侵等,IPMI最大的優(yōu)勢在于無論OS在開機(jī)還是關(guān)機(jī)的狀態(tài)下,只要接通電源就可以實(shí)現(xiàn)對服務(wù)器的監(jiān)控
  • Zabbix監(jiān)控客戶端分為主動監(jiān)控與被動監(jiān)控,主被動模式以客戶端為參照,Zabbix監(jiān)控客戶端默認(rèn)為被動模式,可以修改為主動模式,只需要在客戶端配置文件中添加即可.關(guān)閉被動模式的方法為在配置文件中加入StartAgents=0,即為關(guān)閉被動模式.主被動監(jiān)控模式區(qū)別如下:
    • Zabbix主動模式:agent主動請求server獲取主動的監(jiān)控項(xiàng)列表,并主動將監(jiān)控項(xiàng)內(nèi)需要檢測的數(shù)據(jù)提交給server或者proxy,Zabbix agent首先向server active配置的IP請求獲取active items,獲取后將active items數(shù)據(jù)值提交給server或者proxy
    • Zabbix被動模式:server向agent請求獲取監(jiān)控項(xiàng)的數(shù)據(jù),agent返回數(shù)據(jù),server打開一個TCP連接,server發(fā)送請求agent.ping,agent接收到請求并響應(yīng),server處理接收到的數(shù)據(jù)

Zabbix監(jiān)控概念

  • Zabbix監(jiān)控系統(tǒng)包括很多監(jiān)控概念,常用術(shù)語及解釋如下:
    • 主機(jī)(host):被監(jiān)控的網(wǎng)絡(luò)設(shè)備,可以寫IP或者DNS
    • 主機(jī)組(host group):主機(jī)組用于管理主機(jī),可以批量設(shè)置權(quán)限
    • 監(jiān)控項(xiàng)(item):具體監(jiān)控項(xiàng),items值有獨(dú)立的keys進(jìn)行識別
    • 觸發(fā)器(trigger):為某個items設(shè)置觸發(fā)器,達(dá)到觸發(fā)器會執(zhí)行action動作
    • 事件(event):例如達(dá)到某個觸發(fā)器,稱之為一個事件
    • 動作(action):對于特定事件事先定義的處理方法,默認(rèn)可以發(fā)送信息及發(fā)送命令
    • 報警升級(escalation):發(fā)送警報或執(zhí)行遠(yuǎn)程命令的自定義方案,如隔5分鐘發(fā)送一次警報,共發(fā)送5次等
    • 媒介(media):發(fā)送通知的方式,可以支持mail、SMS、scripts等
    • 通知(notification):通過設(shè)置的媒介向用戶發(fā)送的有關(guān)某事件的信息
    • 遠(yuǎn)程命令(remote command):達(dá)到觸發(fā)器,可以在被監(jiān)控端執(zhí)行命令
    • 模板(template):可以快速監(jiān)控被監(jiān)控端,模塊包含item、trigger、graph、screen、application
    • Web場景(Web scennario):用于檢測Web站點(diǎn)可用性,監(jiān)控HTTP關(guān)鍵詞
    • Web前端(Web frontend):Zabbix的Web接口
    • 圖形(graph):監(jiān)控圖像
    • 屏幕(screens):屏幕顯示
    • 幻燈(slide show):幻燈顯示

Zabbix監(jiān)控平臺部署

  • Zabbix監(jiān)控平臺部署,至少需要4個組件:Zabbix Server、Zabbix Web、Zabbix databases、Zabbix Agent

    1. 系統(tǒng)環(huán)境
      • server端:10.0.0.202
      • agent端:10.0.0.203
    2. 下載Zabbix版本,安裝版本為zabbix-3.2.6.tar.gz
    # 訪問官網(wǎng)下載壓縮包
    https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
    
    # rz 接收壓縮包
    
    # 或者官網(wǎng)下載安裝流程
    https://www.zabbix.com/cn/download?zabbix=4.4&os_distribution=centos&os_version=7&db=mysql&ws=nginx
    
    1. Zabbix Server和Zabbix Agent端執(zhí)行如下命令
    yum install curl curl-devel net-snmp net-snmp-devel perl-DBI -y
    groupadd zabbix;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix
    
    1. Zabbix Server端配置
    # 創(chuàng)建Zabbix數(shù)據(jù)庫
    create database zabbix charset=utf8;
    grant all on zabbix.* to zabbix@% identified by '123456';
    flush privileges;
    
    # 解壓Zabbix軟件包并將Zabbix基礎(chǔ)SQL文件導(dǎo)入數(shù)據(jù)至Zabbix數(shù)據(jù)庫
    tar xf zabbix-3.2.6.tar.gz
    cd zabbix-3.2.6
    mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql 
    mysql -uzabbix -p123456 zabbix < database/mysql/images.sql
    mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
    
    # 切換至Zabbix目錄解壓,安裝Zabbix Server
    ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl  # 預(yù)編譯
    make  # 編譯安裝
    make install  # 執(zhí)行安裝
    ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin  # 創(chuàng)建命令軟鏈接
    
    # Zabbix Server安裝完畢
    cd /usr/local/zabbix/etc # 查看配置文件
    
image.png
# 備份Zabbix Server配置文件
cp zabbix_server.conf{,.bak}
# 在zabbix_serverconf配置文件中設(shè)置代碼
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
# 同時cp zabbix_server啟動腳本至/etc/init.d目錄,啟動zabbix_server,zabbix_server默認(rèn)監(jiān)聽端口為10051
cd zabbix-3.2.6
cp misc/init.d/tru64/zabbix_server /etc/init.d/zabbix_server
chmod o+x /etc/init.d/zabbix_server

[root@lianxi zabbix-3.2.6]# ll /etc/init.d/zabbix_server
-rw-r--r-- 1 root root 1521 Mar 15 20:37 /etc/init.d/zabbix_server

[root@lianxi zabbix-3.2.6]# chmod o+x /etc/init.d/zabbix_server
[root@lianxi zabbix-3.2.6]# ll /etc/init.d/zabbix_server
-rw-r--r-x 1 root root 1521 Mar 15 20:37 /etc/init.d/zabbix_server
# 配置Zabbix interface Web頁面,安裝HTTP Web服務(wù)器,將Zabbix Web代碼發(fā)布至Apache默認(rèn)發(fā)布目錄,PHP版本需要使用PHP5.4.0以上版本,將PHP5.3升級至PHP5.6
rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64 -y

yum install httpd httpd-devel httpd-tools -y

cp -a /root/zabbix-3.2.6/frontends/php/* /var/www/html/
修改/etc/php.ini中的date.timezone變量,修改為date.timezone = PRC
# 重新啟動Zabbix Server、HTTP、MySQL服務(wù)
/etc/init.d/zabbix_server start/restart
/usr/sbin/apachectl start/restart
/etc/init.d/mysqld start/restart

# 在運(yùn)行/etc/init.d/zabbix_server start/restart時報錯
/usr/local/sbin/zabbix_server: error while loading shared libraries:
libmysqlclient.so.20
# 解決方法:進(jìn)入到mysql的庫目錄中,把libmysqlclient.so.20復(fù)制到系統(tǒng)庫目錄中
cd /usr/local/mysql/lib
cp libmysqlclient.so.20  /usr/lib64/libmysqlclient.so.20
  1. Zabbix Web GUI安裝

    • 通過瀏覽器Zabbix Web驗(yàn)證,瀏覽器訪問http://10.0.0.202
    • 關(guān)閉防火墻:systemctl stop firewalld
    image.png
 - 出現(xiàn)錯誤提示,需要解決錯誤提示才可進(jìn)行下一步操作
image.png
 - 安裝缺失的軟件包,并修改php.ini對應(yīng)參數(shù)的值
  yum install php56w-mbstring php56w-bcmath php56w-gd php56w-xml -y
  yum install gd gd-devel -y
  
  vim /etc/php.ini
  post_max_size = 16M
  max_execution_time = 300
  max_input_time = 300
  date.timezone = PRC
  always_populate_raw_post_data = -1
  
  /usr/sbin/apachectl restart
image.png
 - 點(diǎn)擊下一步,進(jìn)入到數(shù)據(jù)庫配置
image.png
 - 進(jìn)入到Zabbix server配置
image.png
 - 配置概述頁面
image.png
 - 報錯,具體信息為無法創(chuàng)建配置文件
image.png
 - 點(diǎn)擊download the configuration file下載zabbix.conf.php文件,并將該文件上傳至/var/www/html/conf,同時設(shè)置可寫權(quán)限,刷新Web頁面,zabbix.conf.php配置如下
  <?php
  // Zabbix GUI configuration file.
  global $DB;
  
  $DB['TYPE']     = 'MYSQL';
  $DB['SERVER']   = '10.0.0.202';
  $DB['PORT']     = '0';
  $DB['DATABASE'] = 'zabbix';
  $DB['USER']     = 'zabbix';
  $DB['PASSWORD'] = '123456';
  
  // Schema name. Used for IBM DB2 and PostgreSQL.
  $DB['SCHEMA'] = '';
  
  $ZBX_SERVER      = 'localhost';
  $ZBX_SERVER_PORT = '10051';
  $ZBX_SERVER_NAME = '分布式監(jiān)控-測試';
  
  $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
 - 點(diǎn)擊下一步進(jìn)入到Zabbix Web登錄頁面,默認(rèn)賬號密碼為admin/zabbix
image.png
 - Zabbix Web界面
image.png
  1. agent客戶端配置安裝

    • 解壓zabbix-3.2.6.tar.gz源碼文件,切換至解壓目錄,編譯安裝Zabbix
    ./configure --prefix=/usr/local/zabbix --enable-agent
    make
    make install
    ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin
    
    • 修改zabbix_agentd.conf客戶端配置文件,制定server IP,同時設(shè)置本地Hostname為本地IP地址或者DNS名稱
    修改Server為Zabbix Server IP地址
    LogFile=/tmp/zabbix_agentd.log
    Server=10.0.0.202
    ServerActive=10.0.0.202
    Hostname=10.0.0.203
    
    • 同時執(zhí)行命令cp zabbix_agentd啟動腳本至/etc/init.d目錄,zabbix_agentd默認(rèn)監(jiān)聽端口為10050
    cd zabbix-3.2.6/
    cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd
    chmod o+x /etc/init.d/zabbix_agentd
    /etc/init.d/zabbix_agentd start
    # Zabbix agent started.
    
  2. Zabbix監(jiān)控客戶端

    • Zabbix服務(wù)端和客戶端安裝完畢之后,需通過Zabbix server添加客戶端監(jiān)控,Zabbix Web界面添加客戶端監(jiān)控的操作步驟為
    • configuration --> hosts --> Create host --> Host name和Agent interfaces,同時添加templates模板,選擇Add --> Template OS Linux.此處Host name 名稱與Agentd.conf配置文件中Hostname保持一致,否則會報錯
image.png
 - 將客戶端主機(jī)連接至Template OS Linux,啟用模板完成主機(jī)默認(rèn)監(jiān)控,單擊Add,再繼續(xù)單擊Update即可
image.png
 - 一次選擇Zabbix Web --> Monitoring --> Graphs --> Group --> Host --> Graph,監(jiān)控圖像如下:
image.png
 - 如果無法監(jiān)控到客戶端,可以在Zabbix Server端執(zhí)行命令獲取agent的items key值是否有返回,例如system.uname為返回客戶端的uname信息
  [root@lianxi ~]# /usr/local/zabbix/bin/zabbix_get -s 10.0.0.203 -k system.uname
  Linux mango 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容