nagios配置監控的一些思路和工作流程

2021-09-03 08:29:28 字數 2701 閱讀 4661

nagios的監控原理:實際上很簡單。我們在伺服器端已經安裝了nrpe服務,那麼所有的客戶端資料都是通過這個nrpe來收集,並且傳到nagios伺服器,在由nagios去呼叫生成。

工作過程:

(1)客戶端在nrpe.cfg檔案下已經定義了,呼叫模組的方式或者nagios識別的命令:

比如:command[check_ips]=/usr/local/nrpe/libexec/ip_conn.sh 8000 10000 (自己編寫的指令碼)

(2)伺服器端通過check_nrpe -h 192.168.1.1 -c chekc_ips 。這個命令句可以手機到客戶端這個指令碼的資料。

(3)然互我們在服務端定義乙個server.cfg就可以收集到關機這台主機的這個服務了。

伺服器端:nagios的解析過程:

(1)nagios服務啟動時,就回去載入nagios.cfg這個檔案裡面的資料。裡面是我們定義的監控的型別:(cfg_file=/usr/local/nagios/etc/objects/192.168.10.1.cfg  #這一句我地宮一的這台主機檔案存放的位置)

(2)到上面的目錄下建立192.168.10.1.cfg這個檔案。裡面定義了監控的型別。

(3)還有contacts.cfg 你可以自己建立乙個聯絡人,發郵郵件到你的郵箱.

#當然還有一些檔案:如監控本機時候用到的command.cfg。假如啟動報錯。說沒有這個命令。那麼你就可以去command.cfg下面新增就可以了。

舉例乙個自己編寫指令碼監控服務報警的例子:

在客戶端操作:

1、在/usr/local/nagios/libexec/目錄下新建check_nginx檔案:內容如下

#!/bin/bash

nginx=`/usr/bin/pgrep nginx`

if [ "$nginx" != "" ]

then

echo "nginx is run"

exit 0

fiif [ "$nginx" = "" ]

then

exit 1

fi#exit0表示正常。#exit1表示報警

command[check_nginx]=/usr/local/nagios/libexec/check_nginx

[root@monitor objects]# /usr/local/nagios/libexec/check_nrpe -h 192.168.10.9

nrpe v2.12

4、測試模組是否收集到資料(下面是已經收到的):

[root@monitor objects]# /usr/local/nagios/libexec/check_nrpe -h 192.168.10.9 -c check_nginx

nginx is run

define service{

use                             generic-service

host_name                       192.168.10.9

service_description             check_nginx

check_command                   check_nrpe!check_nginx

notifications_enabled           1

check_period 24x7

max_check_attempts 3

normal_check_interval 10

retry_check_interval 1

contact_groups admins

notification_options w,u,c,r

notification_interval 120

notification_period 24x7

6、然後重啟就可以監控到了。

下面舉例幾個監控指令碼:監控併發量:

#!/bin/sh

#xiaoluo

#2014.11.4

ip_conns=`netstat -an | grep tcp | grep est | wc -l`

if [ $ip_conns -lt $1 ]

then

echo "ok -connect is $ip_conns"

exit 0

fiif [ $ip_conns -gt $1 -a $ip_conns -lt $2 ]

then

echo "warning -connect is $ip_conns"

exit 1

fiif [ $ip_conns -gt $2 ]

then

echo "critical -connect is $ip_conns"

exit2

fi2、nrpe新增命令:command[check_ips]=/usr/local/nagios/libexec/check_ips 4000   8000 (4000報警。8000嚴重)

#編寫指令碼注意事項:

都用if判斷,然後看返回值:

然後exit 0 表示正常

exit1 表示報警

exit2 表示嚴重        #這3個人跟我們寫的指令碼沒有直接關係只是給nrpe的乙個訊號

到這,覺得改手工了,遇到問題的朋友可以交流一下。像監控mysql主從的,可以寫乙個監控兩個狀態是否都為yes然後在if判斷。給exit的那幾個值。

malloclab的一些思路

首先是參考書上第598 602頁 但是照搬書上的 只有六十多分 預設的也有七十多 注意到書上p594頁說,下一次適配很可能比首次適配記憶體利用率高,尤其是當鍊錶前面布滿了許多小碎片的時候,但在有些情況下,下一次適配不及首次適配,書上的 採用的是首次適配,因此嘗試下一次適配。兩者最大的差別就在於fin...

shelllab的一些思路

首先是eval函式 void eval char cmdline if bg addjob jobs,pid,fg,cmdline else addjob jobs,pid,bg,cmdline sigprocmask sig unblock,mask,null 如果不阻塞sigchld訊號,可能會...

一些設計思路

智慧型裝置 1.s2c 介面,在 裡新增 system cmd 然後就可以進行伺服器遠端除錯啦。這樣做可以縮短終端裝置開發時間 智慧型裝置往往要求是終端提供穩定可靠的介面給伺服器統一呼叫,因為終端公升級太麻煩啦 2.同樣的需要,終端功能夠強壯,伺服器進行控制。尤其是前期,強制公升級很需要 3.昨天討...