NDOUTILS,Nagios Data Output Utils,Nagios數據輸出工具,容許用戶從Nagios導出狀態和事件信息到數據庫中,便於之後的檢索和加工
它包括幾個部分:html
NDOMOD是事件中斷模塊。這個模塊在Nagios進程運行時加載。
它惟一的角色就是轉存Nagios全部事件和數據到TCP套接字,或者普通文件,或者Unix域套接字。
若是用戶想實時轉發數據至MySQL,能夠經過轉存數據至TCP套接字或者Unix域套接字。若是想延遲轉發數據至MySQL數據庫,能夠經過轉存數據至普通文件。mysql
NDO2DB守護進程。這是一個標準的守護進程,從TCP套接字或者Unix套接字讀取輸入數據(經過NDOMOD事件中斷模塊輸出)。
NDO2DB分析這些數據,並把他們存入一個或者多個MySQL數據中。NDO2DB具備同時處理多個客戶端的鏈接的能力,所以用戶同時能夠配置多個經過TCP或者Unix套接字輸出數據的NDOMOD模塊實例。linux
FILE2SOCK特性從普通的文件讀取數據,將其經過TCP或者Unix套接字轉存。
這在NDOMOD模塊將數據寫入普通文件時,但但願將其轉存至數據庫的使用場景很是有用。
若是NDOMOD模塊輸出的數據和NDO2DB運行進程不在同一臺主機上時,用戶能夠經過SSH協議轉發存放數據的普通文件至運行NDO2DB進程的主機上,而後經過FILE2SOCK特性轉發普通文件的內容至TCP或者Unix端口(NDO2DB從這些端口中獲取數據)ios
LOG2NDO特性用於將Nagios和NetSaint的歷史日誌歸檔並轉發給NDO2DB進程。一樣也是將一個日誌文件發送至TCP或者Unix套接字完成數據轉存。sql
configure數據庫
./configure \ --prefix=/usr/local/globle/softs/monitor/nagios/ndoutils/2.1.3 \ --sysconfdir=/usr/local/globle/softs/monitor/nagios/ndoutils/2.1.3/etc \ --localstatedir=/var \ --enable-mysql \ --with-opsys=linux \ --with-dist-type=rh \ --with-init-type=sysv \ --with-inetd-type=xinetd \ --with-mysql-lib=/usr/lib64/mysql \ --with-ndo2db-user=nagios \ --with-ndo2db-group=nagios
注:--with-mysql-lib的選項提示沒法識別,可是能夠正確配置MySQL庫;可是以--with-mysql選項配置時,實際沒法生效服務器
make
直接執行make,提示選擇make的選項,這裏選擇make alldom
[root@console ndoutils-2.1.3]# make Please enter make [option] where [option] is one of: all builds the NDO Utilities ndo2db builds the ndo2db daemon ndomod builds the ndomod nagios module file2sock builds the file2sock utility log2ndo builds the log2ndo utility sockdebug builds the sockdebug utility install-groups-users add the user and group if they do not exist install installs the module and programs install-config installs the sample configuration files install-inetd install the startup files for inetd, launchd, etc. install-init install the startup files for init, systemd, etc. fullinstall runs install-groups-users, install,install-config and install-init
make install
執行make install
以後,提示安裝了適配Nagios v4.x的模塊。按照文檔說明,若是須要安裝Nagios v3.x 和v2.x的模塊,還須要執行make install-3x
和make install-2x
,可是會替代。
本篇博客編譯所有模塊,而後都拷貝到對應的目錄下,在配置文件中指定要採用的模塊的絕對路徑。tcp
注:在當前解壓目錄下,沒法執行make install-3x,無makefile工具
截至到這裏,NDOUtils已經編譯安裝完成。
安裝database
這一步須要首先建立一個數據庫並受權。
本篇略此過程,具體參閱博客《MySQL數據庫服務器(YUM)安裝.md》,博客園地址:http://www.javashuo.com/article/p-bjccruua-bu.html
而後進入到db目錄下,執行./installdb
腳本,結果如圖
執行make install-init,安裝啓動腳本
執行make install-inetd,安裝超級進程配置文件
這一步須要將5668端口添加至/etc/services,即在/etc/services最後一行添加:
ndo2db 5668/tcp # ndo2db
執行make install-config,安裝ndo2db.cfg配置文件
至此,在安裝路徑/usr/local/globle/softs/monitor/nagios/ndoutils/2.1.3/
下,能看到三個目錄,即:
在/usr/local/globle/softs/monitor/nagios/ndoutils/2.1.3/etc/
下,執行cp ndo2db.cfg-sample ndo2db.cfg
和cp ndomod.cfg-sample ndomod.cfg
修改Nagios主配置文件,以下:
event_broker_options=1 broker_module=/usr/local/globle/softs/monitor/nagios/ndoutils/2.1.3/bin/ndomod-4x.o config_file=/usr/local/globle/softs/monitor/nagios/ndoutils/2.1.3/etc/ ndomod.cfg
在/usr/local/globle/softs/monitor/nagios/ndoutils/2.1.3/etc/
下,ndomod.cfg爲NDOMOD模塊配置文件,該文件不用修改便可使用。修改ndo2db.cfg配置文件內容:
db_user=nagios db_pass=liwanliang
注:這裏的db_user和db_pass是建立nagios數據庫時的數據庫用戶和密碼
由於在configure的過程當中,已經指定了NDO2DB採用sysv模式啓動進程,所以能夠經過service ndo2db start
啓動服務
經過ps -ef | grep ndo
,能夠查看到進程已經運行啓動,經過lsof -p pid
命令,查看到進程打開了sock文件。
注意:此時若是沒有重啓或者從新加載nagios配置,那麼數據庫不會存在數據
若是已經重啓了nagios,可是經過數據庫可視化工具未發現數據更新,能夠斷開鏈接,而後從新登錄數據庫查看
經過數據庫可視化工具,鏈接到MySQL查看nagios數據庫是否存在數據 確認配置信息,對象配置,報警信息等均可以正常存儲