电脑技术学习

FreeBSD Apinger 介绍

dn001


 0.名稱
   Apinger - Alarm Pinger

 1.敘述
   Alarm Pinger(apinger)是一個透過ICMP回應來監控多種IP設備的小工具,
   有許多其他的工具可以達到這個目的,但是它們大部分是shell或是perl script
   且當持續監控的狀況之下,他們需要產生較多的process,及消耗較多的CPU資源.

   Alarm Pinger是一個透過C寫出的程式,所以不需要太多的CPU資源.
   Alarm Pinger支援IPv4及IPv6.

   Alarm Pinger透過設定檔設定監控的目標及其他參數.
   apinger需要透過root權限才可以執行(用來創造raw socket),
   但是,一旦apinger開始送出或是接收封包,socket就會被丟棄.

 2.安裝
   
   
   補充:作者有寫了*些許*的說明檔,放在/usr/ports/net/apinger/work/之下,
        有興趣可以看看,前提是..你還沒有進行make clean
   
   啟動檔:/usr/local/etc/rc.d/apinger.sh
   設定檔:/usr/lcoal/etc/apinger.conf.sample  --下載apinger設定檔
          (apinger的設定檔,複製更名為apinger.conf)

 3.設定檔
  只列出可能需要修改的部分:紫色表示新增;棕色表示刪除

  # 設定當狀況符合時,送出訊息的程式位址
  ## Mailer to use (default: "/usr/lib/sendmail -t")
  #mailer "/var/qmail/bin/qmail-inject" 
  mailer "/usr/local/sbin/sendmail -t"
  
  # 定義相關的狀況輸出檔案(若不想要輸出,則維持註解狀況即可)
  #status {
  #	## 定義輸出的檔案位址
  #	## File where the status information whould be written to
  #	file "/tmp/apinger.status"
  #
  #	## 定義輸出的間隔時間 預設為5分鐘.
  #	## Interval between file updates
  #	## when 0 or not set, file is written only when SIGUSR1 is received
  #	interval 5m
  #}
  
  # 定義警告相關設定
  alarm default { 
	# 設定將警告訊息送給誰(預設是root).
	## Mailbox where alarm report should be sent
	mailto "root@localhost"

	## 設定信件的envelope-from(通常不用變動)
	## What to put in the "From: " header
	mailfrom "root@localhost"
	
	## 設定信件的envelope sender(通常不用變動)
	## What should be the envelope sender
	#mailenvfrom "root@localhost"
	
	## 設定信件的標題
	## 預設是原因 對於監測目標的敘述 ***警告的名稱***
	圖例:
	
	## Subject of the mail message (default: "%r: %T(%t) *** %a ***")
	#mailsubject "%s %r: %a: %T"
	
	參數代表意思:
	%t - 監測的IP位址 ; %T - 對於監測IP位址的敘述
	%a - 警告的名稱   ; %A - 警告的形式("down"/"loss"/"delay")   
	%r - 發出訊息的原因("ALARM"/"alarm canceled"/"alarm canceled (config reload)")
	%p - 送出的偵測數 ; %P - 收到的偵測數
	%l - 最近平均遺失的封包 ;  %d - 最近平均的延遲狀況
	%s - 目前時間     ; %% - 表示%這個字元

	## 將所有訊息合併送出
	## Combine all alarms that are fired in the 5s interval
	## so one report is send for all of them
	#combine 5s

	## 設定警告訊息送出的間隔及次數
	## 預設是每隔5分鐘進行偵測一次,不停重複
	## Repeat alarm actions each 5 minutes, but max 10 times (0 whould mean no limit)
	#repeat 5m 10
	## 但是一直重複看了很煩..送出幾次就可以了
	}

  ## 定義關於"Down"的設定,預設是30秒沒有回應視為*沒有回應*
  ## This alarm will be fired when target doesn't respond for 30 seconds.
  alarm down "down" {
	time 30s
  }

  ## 定義關於"Delay"(延遲)警告的設定
  ## 當延遲超過200微秒時,會發出相關警告.延遲低於100微秒時,警告會取消
  ## 題外話:當您覺得系統一直不停的送給你delay及cancel訊息,不妨調整一下
  ## This alarm will be fired when responses are delayed more than 200ms
  ## it will be canceled, when the delay drops below 100ms
  alarm delay "delay" {
	delay_low 100ms
	delay_high 200ms
  }

  ## 定義關於封包遺失(loss)的設定,當封包遺失超過20%時發出,低於10%時,警告取消
  ## 題外話:當您覺得系統一直不停的送給你delay及cancel訊息,不妨調整一下
  ## This alarm will be fired when packet loss goes over 20%
  ## it will be canceled, when the loss drops below 10%
  alarm loss "loss" {
  	percent_low 10
  	percent_high 20
  }
  
  ## 定義預設偵測值.
  ## These parameters can be overriden in a specific target configuration
  target default {
	## 定義送出偵測的時間間隔(預設是一秒)
	## How often the probe should be sent	
	interval 1s
	
	## 定義有多少回應被用來評估平均的延遲值
	## How many replIEs should be used to compute average delay 
	## for controlling "delay" alarms
	avg_delay_samples 10
	
	## 定義有多少偵測被用來評估平均的封包遺失值
	## How many probes should be used to compute average loss
	avg_loss_samples 50

	## 定義在遺失多少封包之後視為全部封包遺失(loss)
	## The delay (in samples) after which loss is computed
	## without this delays larger than interval would be treated as loss
	avg_loss_delay_samples 20

	## 定義對偵測目標要進行的測試
	## Names of the alarms that may be generated for the target
	alarms "down","delay","loss"

	## (關於RRD繪圖的部分,目前不加以說明)
	## Location of the RRD
	#rrd file "/tmp/apinger-%t.rrd"
	}

  ## 定義要偵測的目標
  ## 語法: target <IP位址> { <參數> }
  ## 參數可以採用預設,也就是上方設定的target defult{},並可以加上敘述(description).
  ## Each one defined with:
  ## target <address> { <parameter>... }
  ## The parameters are those described above in the "target default" section
  ## plus the "description" parameter.
  ## the <address> should be IPv4 or IPv6 address (not hostname!)
  target "127.0.0.1" { description "localhost IPv4"; }
  採用預設值偵測 127.0.0.1 , 並對該裝置加上敘述為"localhost IPv4"
  target "::1" { 
	description "localhost IPv6";
	
	# 針對IPv6的localhost偵測,但只偵測"down",
	#也就是當介面沒有回應才發出警告訊息
	# generate _only_ "down" alarms
	# "alarms" directive without "override" keyWord adds alarms to the default list
	alarms override "down"; 
  }

 4.FAQ
   1.alarm pinger是一種網路監控工具,可以週期性的偵測網路設備的可達性及其品質.
   2.alarm pinger目前為止,並不能夠針對服務進行監控,因為apinger是透過ICMP的回應判斷.
   3.alarm pinger目前為止,也無法使用非ICMP的協定,如TCP/UDP
   4.由於透過DNS解出的IP可能有很多個,所以apinger也不能使用hostname.
   5.若你不想要收到訊息,你可以透過註解(#)設定檔中的mailto及mailfrom取消. 

 5.作者
  Jacek Konieczny <jajcus@pld.org.pl>
  http://www.bnet.pl/~jajcus/apinger/

 6.參考資料
   apinger.conf

标签: