Nagios介紹與安裝
目錄- Nagios介紹與安裝
- 介紹
- Nagios幾個產品的區別
- Nagios Core
- Nagios XI
- Nagios Log Server
- Nagios Network Analyzer
- Nagios Fusion
- 監控方式或途徑
- agent-base
- agentless
- 主動檢測Active Check
- 被動檢測Passive Check
- 被動檢查通常使用場景
- 被動檢查是怎樣作業的
- 開啟被動檢測
- 提交被動服務檢測結果
- 從遠程主機提交被動檢查結果
- 建議學習路徑
- Nagios幾個產品的區別
- 安裝Nagios
- System Requirements系統要求
- Ubu安裝
- Centos/Debian系統安裝
- 安裝Nagios Plugins
- Nagios后臺服務啟停管理
- 其它方式
- 介紹
Nagios是一款監控系統,開源的監控系統,用于監控計算機/網路系統,安裝運行在linux環境,
介紹
- 開源,當然nagios也有其商業的版本,那就是nagios xi. 主要就是nagios core是開源的,我們也主要使用nagios core 和開源nagios pulgins組成我們的開源監控系統
- 支持主動check和被動check,主動check是由nagios發起,被動check則是來自被連接到監控工具的外部應用
- Nagios起初是叫做Netsaint,發布于1999年,Ethan Galstad 開發了Nagios,隨后作為開源專案有了很多的貢獻者
- Nagios公司成立來維護Nagios核心技術,并提供了多種產品,像XI, Log server, Network Analyzer and Fusion,
Nagios幾個產品的區別
Nagios Core
- 最初稱為nagios的服務,現在稱為nagios core .core 是作為IT系統, 網路和基礎架構的開源監視軟體免費提供的,通過允許插件擴展監控 能力, Core 包含了各種基礎結構監控,是付費nagios監控的基礎,
- nagios core 包含有一個可選擇的web界面,用于展示網路狀態,通知,日志檔案等,
- nagiso core 支持通知,支持SMTP, HTTP, Ping
Nagios XI
在nagios core 基礎上提供了跟人性化的介面界面,還有周期報告,和郵 件技術支持等,是要付費購買
Nagios Log Server
是一個日志監控及管理工具,可以組織日志查看,排序,配置日志,包括windows event logs,收集分析日志,
Nagios Network Analyzer
跟蹤網路流量和帶寬利用率
Nagios Fusion
是針對Core 與 XI的聚合服務,可以在一個視圖中顯示多個系統,可以借助Fusion,可以允許哪些用戶查看哪些服務的監控,
除了nagios core和nagios plugins其它的都不是我們目前關心的,因為其它都是商業付費的,這里只是列舉出來,避免誤入歧途,把時間花費志研究商業版本
監控方式或途徑
agent-base
安裝代理軟體在目標系統或主機上,通過代理軟體收集目標中的資料并報告給管理server
代理軟體包括:
- Nagios Remote Data Processor (NRDP)
- Nagios Cross Plaform Agent (NCPA)
- Nagios Remote Pluin Executor (NRPE) 用于運行遠程腳本和插件,多用于收集系統引數:負載,記憶體,磁盤用量,
check_nrpe插件,安裝位于本地; 而NRDP插件安裝運行在遠程主機,
關于插件:
- nagios支持插件是獨立和可擴展的,這樣用戶可以自定義目標的哪些引數需要被監控,
- 插件處理命令列傳入的引數,將命令與nagios core 交流通信,
- 大概有50多個插件被nagios開發和維護,有3000多個來自社區維護,
- 插件被分類出來,包括硬體,軟體,云,OSes, 安全, 日志檔案,網路連接,
agentless
不通過代理軟體的方式, 是利用監控目標支持的對外協議或對外介面來達到(如ssh, tcp/ip原理)模擬一個agent作用
主動檢測Active Check
- 主動檢測是被Nagios Core行程初始化
- 定期執行主動檢查
主動檢查由Nagios Core守護程式中的檢查邏輯啟動,當Nagios Core需要檢查主機或服務的狀態時,它將執行插件并向其傳遞有關需要檢查的資訊,然后,插件將檢查主機或服務的運行狀態,并將結果報告回Nagios Core守護程式, Nagios Core將處理主機或服務檢查的結果,并根據需要采取適當的措施(例如,發送通知,運行事件處理程式等),

被動檢測Passive Check
- 被動檢測初始化和performed是被額外的行程
- 被動檢測的結果被提交到Nagios Core處理
- 與主動check的主要不同點就是,主動檢查的初始化和執行都是被Nagios Core來調度的,而被動檢查的初始化和執行都是被external applications,
大多數的情況下,都是使用Nagios Core來監控hosts和services利用定義調度的主動check. 這種屬于輪詢調度,

被動檢查通常使用場景
- 本身監控項的就是應該異步的,不適合輪詢方式監控,那么采用被動檢查,
- 要監控的節點實在防火墻后面,也就是只能出外網,不能外網訪問,那么可以采取被動,
問題:被動檢測怎么獲取到統一的檢測配置呢?難道不能集中管理?
被動檢查是怎樣作業的
- 一個external application 檢測主機或者服務的狀態
- the external application 寫檢測結果到 external command file
- 下一次,Nagios Core 讀取the external command file,它將把被動檢測的結果放入一個佇列中供后續的處理,
- Nagios COre 將定義期執行一個check result reaper event 然后掃描檢測結果佇列,每一個服務的檢測結果同樣的方式處理,無論這個檢測結果是active或者passive檢測結果,然后根據處理結果,可能會發送通知或者日志告警等,
開啟被動檢測
- 設定accept_passive_service_checks = 1 # 控制全域
- passive_checks_enabled 在host和service定義中設定為1 # 控制單個監控物件
提交被動服務檢測結果
external applications can submit passive service check results to Nagios Core by writing a PROCESS_SERVICE_CHECK_RESULT external command to the external command file.
external applications 提交被動服務檢測結果到nagios core是通過寫PROCESS_SERVICE_CHECK_RESULT命令及其結果引數到external command file
命令列格式:
[<timestamp>] PROCESS_SERVICE_CHECK_RESULT;<host name>;<svc_description>;<return_code>;<plugin_output>
svc_description就是用于給處理結果的程式定位這個監控結果是哪個服務的,
服務必須在被動檢測開始前,就要在Nagios Core中定義好,
從遠程主機提交被動檢查結果
如果與Nagios Core駐留在同一主機上的應用程式正在發送被動主機或服務檢查結果,則它可以簡單地將結果直接寫入外部命令檔案,如上所述, 但是,遠程主機上的應用程式無法做到這一點,
為了允許遠程主機將被動檢查結果發送到監視主機,可以使用NSCA或NRDP插件, NSCA附加程式由在Nagios Core主機上運行的守護程式和從遠程主機執行的客戶端組成, 守護程式將偵聽來自遠程客戶端的連接,對提交的結果執行一些基本的驗證,然后將檢查結果直接寫入外部命令檔案(如上所述),

passive check
建議學習路徑
- 放松點,雖然nagios不是開箱即用的一個監控系統,提供了靈活的配置,所以要有心理準備會花些時間在上面,難度就在花時間,而不是其它的,
- 使用了快速搭建指導,大概就20min就能安裝并監控到你的本地系統,一旦完成,建議開始學習怎么配置nagios去做更多事情,
- 當你不了解一些東西時,你可能會感到非常大的挑戰在進行配置時,這時候就要靜下心來,確定讀取了檔案檔案連接 ,特別是讀取“Configuring Naigos”和 “The Basics”,即配置ngaiso和基礎支持部分,對于高階知識部分要在你對基礎有好的掌握后進行學習,
- 求助可以通過論壇
安裝Nagios
System Requirements系統要求
- Linux or Unix
- 能夠被網路訪問到
- 如果是原始碼安裝,需要有一個C complier
- 如果需要web界面,那么還需要一個web server,如推薦apache,及Thomas Boutell's gd library version 1.6.3 or higher (required by the statusmap and trends cgis)+
Ubu安裝
- disable selinux 停用掉selinux, ubu默認是關閉了的
- 做一些準備作業, 這里已ubutu 18.x 例子,不同版本可以查看點擊這里
sudo apt-get update
sudo apt-get install -y autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php7.4 libgd-dev
-
下載原始碼
參照這里 -
編譯
cd /tmp/nagioscore-nagios-4.x.x/
sudo ./configure --with-httpd-conf=/etc/apache2/sites-enabled
sudo make all
- 創建用戶和組,用戶nagios應用的用戶和組
后面的www-data 用戶也會加入到這個nagios組中
sudo make install-groups-users
sudo usermod -a -G nagios www-data
- 安裝二進制
sudo make install
- 安裝配置服務/Daemon
就是創建服務組態檔,并用于開機啟動
sudo make install-daemoninit
- 安裝命令模式
安裝和配置其它的命令檔案
sudo make install-commandmode
- 安裝 組態檔
安裝樣例組態檔,這些配置用于nagios啟動
sudo make install-config
- 安裝apache組態檔
安裝apache web server的組態檔和設定
sudo make install-webconf
sudo a2enmod rewrite
sudo a2enmod cgi
- 配置防火墻
允許80 入口流量在本地防火墻
sudo ufw allow Apache
sudo ufw reload
- 創建nagiosadmin賬號
創建一個Apache用戶賬號用于登錄到Nagios
下面這條命令,將創建一個用戶賬號,叫做nagiosadmin,需要提供一個password
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
注意:當要添加額外賬號時,也是用上面命令,但是要把-c 引數去掉,不然會新建這個賬號會替換掉nagiosadmin,還有這里的是賬號時基于apache的一個賬號,說明apache有權限操作nagios,作為nagios的一個web代理操作nagios,問題:nagios沒有賬號管理嗎?
- 啟動apache web server
sudo systemctl restart apache2.service # 適用 ubu 15.x/16.x/17.x/18.x/20.x
- 啟動nagios service daemon
sudo systemctl start nagios.service # 適用 ubu 15.x/16.x/17.x/18.x/20.x
- 現在可以訪問nagios web interface了
- http://yourip/nagios
- 到此只是安裝完成了nagios core, 這是web會提示一個no outpu on stdout,,,錯誤提示,是因為還沒有安裝nagios plugins,下面將安裝nagios plugins,
Centos/Debian系統安裝
安裝指導:點擊鏈接
安裝Nagios Plugins
- 安裝依賴
sudo apt-get install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget bc gawk dc build-essential snmp libnet-snmp-perl gettext
- 下載原始碼
cd /tmp
wget --no-check-certificate -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz
tar zxf nagios-plugins.tar.gz
- 編譯和安裝
cd /tmp/nagios-plugins-release-2.2.1/
sudo ./tools/setup
sudo ./configure
sudo make
sudo make install
- 測驗Plugins
安裝Nagios Core最后一步說了,在默認的hosts和service下的監控項,都是紅色的錯誤提示,那是因為沒有安裝Nagios Plugins,現在已經安裝了,我們可以通過進出入監控項,然后在監控項詳情的右邊串列中,有一個“Re-Schedule ...next chekc”,點擊進去,就可以手動調度一次監控項的檢測,然后直接submit提交,就可以看到我們的監控項狀態變為OK,這就說明我們的nagios plugins安裝運行成功,
Nagios后臺服務啟停管理
- 啟動
sudo systemctl start nagios.service - 停止
sudo systemctl stop nagios.service - 重啟
sudo systemctl restart nagios.service - 查看狀態
sudo systemctl status nagios.service
其它方式
- init腳本啟動nagios core
/etc/rc.d/init.d/nagios start
- nagios二進制啟動方式
/usr/local/nagios/bin/nagios -d /user/local/nagios/etc/nagios.cfg # -d表示daemon啟動,后面是指定組態檔
- 當修改組態檔是,可以要restart/reload
# init 腳本重啟
/etc/rc.d/init.d/nagios reload
# web 界面
進入process info,然后在里面有一個“restart the nagios process"可以重啟
# 利用linux行程信號量
kill -HUP pid
- 停止nagios
# init 腳本停止
/etc/rc.d/init.d/nagios stop
# web 界面
還是process info 點擊”shutdown the nagios process"
其實原理就是通過cgi腳本來關閉
# linux信號量
kill <nagios-pid>
好久沒更新過了,最近研究開源域控,用到nagios監控,重新梳理一遍
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/106223.html
標籤:其他
