1. 程式人生 > >Nagios 下監控伺服器流量(linux平臺下)

Nagios 下監控伺服器流量(linux平臺下)

一共三種方法


A、利用nagios自帶的外掛check_mrtgtraf對網絡卡流量進行監控
這種方法要依賴mrtg資料,並且使用起來就Bytes和Bites換算也有點問題,不推薦使用。


這裡只簡單介紹下check_mrtgtraf ,它定時檢查mrtg的日誌檔案,獲取當前流量


如下例子,但該外掛個人覺得功能簡單切有限 ,自己已經棄用。


 /u/nagios/libexec/check_mrtgtraf -F /var/www/html/mrtg/192.168.0.21_2.log -a AVG -w 300000,300000 -c 400000,400000 -e 1
Traffic WARNING - Avg. In = 295.2 KB/s, Avg. ut = 58.7 KB/s|in=295.211914KB/s;300000.000000;400000.000000;0.000000 in=58.667969KB/s;300000.000000;400000.000000;0.000000


 


B、網路流傳其他一類的流量監測方法的指令碼,我試用了幾個最終感覺還是不太方便。


不要感覺到坑爹,筆者也是使用了以上兩種方法之後最終選擇下面這一種的,方便快捷功能強。


C、使用check_snmp_int.pl 外掛監控網路
推薦使用,簡單方便功能多,流量計算也比較準確(我是和同步的mrtg監控和cacti監控頁面對比過資料)。
參考頁面http://nagios.manubulon.com/snmp_int.html
下載地址http://nagios.manubulon.com/check_snmp_int.pl


前提:您的要被監控的主機也要開放snmp服務才行。


環境:nagios監控伺服器和被監控伺服器均是linux伺服器




1、下載該外掛到nagios監控伺服器
首先確保監控伺服器上snmp和perl相關包都已安裝,執行以下語句測試是否返回正確值。


perl check_snmp_int.pl -H 192.168.0.21 -C zjhcsoft -n eth1 -k -Y -B -w 200,400 -c 0,800
該語句表示:-H 表示監控192.168.0.21伺服器 -C 表示組織名稱為 zjhcsoft -n 表示檢查eth1 網絡卡 -Y -B 聯合使用表示返回的是以bits/s的網絡卡流量 -w 和-c 表示警告伐值 in伐值,out伐值
確定手動執行可以返回正確結果如下,如果超過-c的伐值會有如下警告
eth1:UP (WARN 5095.5Kbps/CRIT 37443.9Kbps):(1 UP): CRITICAL


2、確定該外掛正常使用後配置nagios
編輯 commands.cfg檔案,建立一個本地命令
[
[email protected]
objects]# vi commands.cfg
# 'check_snmp_int_iftraffic' command definition
define command{
        command_name    check_snmp_int_iftraffic
        command_line    $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -k -Y -B -w $ARG3$ -c $ARG4$
        }
建立檢查服務,編輯配置檔案
[
[email protected]
objects]# vi network_interface_service.cfg
define service{
       use                     generic-service ; Inherit values from a template
       host_name               web1,web2,web3,web4,web6
       service_description     Output Interface Bandwidth Usage
       check_command           check_snmp_int_iftraffic!zjhcsoft!eth2!1200,5000!2000,10000
       notifications_enabled           0
       }


檢查配置無誤
[
[email protected]
objects]$ /u/nagios/bin/nagios -v /u/nagios/etc/nagios.cfg
重啟nagios
[[email protected] objects]# service nagios restart
3、檢查nagios監控頁面確定頁面返回正常監控資料


補充:以上是snmp v1版本的 如果裝置是v2版本 就要加一個引數‘-2’,在nagios再新配置一個v2版本的本地命令


# 'check_snmp_int_iftraffic_v2' command definition
define command{
        command_name    check_snmp_int_iftraffic
        command_line    $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ -2 -n $ARG2$ -k -Y -B -w $ARG3$ -c $ARG4$
        }  
 監控snmp為v2版本的網路裝置  
define service{
        use                     generic-service ; Inherit values from a template
        host_name               Netscreen ISG 2000
        service_description     Output Interface Bandwidth Usage
        check_command           check_snmp_int_iftraffic_v2!zjhcsoft!ethernet1/1!1200,5000!2000,10000
        notifications_enabled           0
        }  


4、遇到問題


[[email protected] libexec]# perl check_snmp_int.pl -H 192.168.0.21 -C zjhcsoft -n eth1 -k -w 200,400 -c 0,800
eth1:UP No usable data on file (1 rows) :(1 UP): UNKNOWN
[[email protected] libexec]# perl check_snmp_int.pl -H 192.168.0.21 -C zjhcsoft -n eth1 -k -w 200,400 -c 0,800
eth1:UP No usable data on file (2 rows) :(1 UP): UNKNOWN




網站解釋:
(我總結下就是最好執行時間超過5分鐘,這樣才有正確結果可以返回,我沒有修改預設數值,有興趣的同學可以深入研究下。)
No usable data on file (X rows)


Scripts like check_snmp_int need to store data when they get a SNMP counter so they can outpout readable data like bandwidth, cpu, etc....


For example, to output a bandwidth with an octet counter, check_snmp_int will store data every time it is run. It will also read the previous data, and try to get data old enough to make a correct average. By default, it needs data which was produced 5 minutes ago.


So, when you first run the script. - or if you run it a long time ago -, it won't be able to get data old enough and will report an error (UNKNOWN status) saying the is "no usable data on file (X rows)".
If you leave the 5 minutes default delta value, the script. will need data wich is :
- At least 4 minutes and 30 seconds old (5 min - 10%)
- At most 15 minutes old (3 * 5 min)


You can change this 5 minutes value using the '-d <sec>' option. The script. will then look for data which is at least <sec>-10% old and at most 3*<sec>.


This option will only tell to make an average on <sec> seconds, you can run the service every minute with Nagios, it will always get the newest value which is at least <sec>-10% old.
The only thing you must check is that your service will at least run every 15 minutes, or the script. will always output "unknown" as the value will be too old for him.

相關推薦

Nagios 監控伺服器流量linux臺下

一共三種方法 A、利用nagios自帶的外掛check_mrtgtraf對網絡卡流量進行監控 這種方法要依賴mrtg資料,並且使用起來就Bytes和Bites換算也有點問題,不推薦使用。 這裡只簡單介紹下check_mrtgtraf ,它定時檢查mrtg的日誌檔案,獲取當前

Nginx配置CI框架問題Linux臺下Centos系統

項目 末尾 規則 -c 官方文檔 nbsp fas src 路由 CI框架:官方文檔 http://codeigniter.org.cn/user_guide/index.html CI框架的數據流程圖如下: 其中:index.php作為入口文件,在安裝好CI框架後,i

APP模擬弱網測試-Fiddler+clumsywindows臺下

在app測試過程中,有一點總是測試人員頭疼的地方,弱網的模擬與測試,clumsy相信大家自己在網上也能找到一大推相關的資料與說明,我在查詢這一大堆的資料與說明的時候,頭都大了,最後沒辦法,自己一點點學習,一點點的造。廢話不多說,直接來實踐。 如果你在熟悉fiddler的情

對於Linux伺服器程式設計2

對於驚群問題,我們可以使用一個主執行緒來接受連線,並且把這個連線套接字傳遞到子程序裡面,讓子程序來處理這個連線。這種方法需要程序間通訊:通過Unix套接字來在程序之間傳遞套接字。【注意不能使用Unix套接字***直接***傳遞描述符到子程序,因為雖然父程序和子程序獲得的檔案描述符相同,但是子程序

對於Linux伺服器程式設計1

在Linux下面,對於海量連線並且每個連線在大部分時間裡面都是不活躍的情況下,我們使用Epoll來解決C10K[C10M]問題。 1.如何使用Epoll:man Epoll。即為三個系統呼叫。 2.在伺服器擁有多個CPU的情況下,我們需要多執行緒或者多程序來幫助我們提高程式的效能,所以就需要

如何搭建視覺化應用監控伺服器效能ubuntu安裝influxdb+telegraf+grafana

看完本文,你就可以部署一個監控伺服器的視覺化應用,並且可以自己匯入資料來源進行展示。 參考:https://blog.csdn.net/TTchengcheng/article/details/79742574 參考:https://docs.influxdata.com/

CAS-SSO 單點登入之伺服器搭建 linux編譯cas-overlay-template

(一)安裝包和環境依賴 jdk-8u171-linux-x64.tar apache-tomcat-8.5.31.tar apache-maven-3.5.3-bin.tar cas-overlay-template-master.zip 需要自行下載最新版本,官網

linux c++ 伺服器開發

苦逼的c++程式設計師還沒找到工作,所以順便開始寫伺服器練手。。     對內容不滿意不要噴我我是寫給自己看的(把自己犯得錯誤記下來) 1.我的電腦是win10的,所以先去網上下虛擬機器,我下載了 ,然後安裝了。 2.新建了一個ubuntu 32位的虛擬電腦。(我劃分的

LINUX郵件伺服器搭建SENDMAIL1.0

小編就喜歡直接寫步驟,相關概念以後完善的時候再寫。OK,就直接開始sendmail郵件伺服器的搭建。第一步還是看sendmail服務裝了沒有,執行下圖命令如果沒有安裝,還是用介面化的點點點吧,這種方式小編比較喜歡(這裡省去掛載光碟步驟,小編在以前也說過步驟)如果沒有安裝,就直

LinuxDHCP伺服器配置

A、簡介   A.1、DHCP   DHCP:動態主機設定協議(Dynamic Host Configuration Protocol)是一個區域網的網路協議,使用UDP協議工作,主要有兩個用途:給內部網路或網路服務供應商自動分配IP地址給使用者給內部網路管理員作為對所有計算機作中央管理的手段。   A.2、

linux通訊伺服器普通

#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <stdlib.h> #include <arpa/inet.h&

WindowsMySQL日誌管理Linux相似1.1

-h 發現 註意 line _id mod sni ans avi 為什麽要開啟數據庫的日誌 當多個程序都在使用數據庫的時候。我們的數據庫有時候竟然還會掛掉。想找原因?發現沒日誌可查。各個程序自己的日誌又不能找到關鍵原因。所以要開啟數據庫的日誌系統。 控制日誌大

linux重啟weblogic關閉和啟動

遠程文件 hup acl middle 16px target html sin 服務器 本文轉自:http://blog.sina.com.cn/s/blog_4b5bc011010110nq.html ssh遠程連接Linux服務器! 開啟weblogic:

linux安裝配置jdk解壓版

生效 測試 linu 文件 info img url www 技術 在linux下登錄oracle官網,下載解壓版jdk 傳送門 系統默認下載到“下載”目錄中 創建要將該文件解壓的文件夾: 其中 -p 參數代表遞歸創建文件夾(可以創建多級目錄) 進

centos部署LAMP環境Linux+Apache+mysql+php(轉載文章:https://www.cnblogs.com/apro-abra/p/4862285.html)

roo -s -c ice 自己 sql all p地址 iptable 一:安裝apache 1.安裝yum -y install httpd2.開啟apache服務systemctl start httpd.service3.設置apache服務開機啟動systemct

Linux配置Django_Apache_Mysql環境CentOS 7.5

insert 編輯 warn 連接 dirname 一個數 pla virt rom 本文將介紹如何在Linux上部署Django + Mysql + Apache環境。我們知道,Django內置的http服務器只能工作在單線程下,做開發和調試時候是可以的,但是生產環

【轉載】linux安裝wget命令sftp實現法

 如何安裝wget命令。 方法一:通過yum 命令列為:yum install wget 完成。此操作很簡單,但是我安裝的linux是centos的最小版本,執行上述命令時會出現無法連線到源網站(大概是這個意思)的問題。 方法二:通過rpm 據說rpm是linux的通用安裝法,小白表示不懂

windows啟動nginx閃退---Windows臺下80埠被System佔用解決辦法

前言: 在專案中用到nginx,啟動時閃退,檢視錯誤日誌,給出的錯誤如下: nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access  a socket in a way forb

linux臺下Ubuntu16.04安裝與配置mysql5.7.24以及圖形管理工具Workbench

1.在ubuntu系統下,開啟終端 方法(1):在左上角的選單上點一下,出來一列,在裡面選擇[附件] 中的[終端],點一下就OK。 方法(2):快捷鍵Ctrl+Alt+T   2.安裝MySQL5.7需要的依賴,使用命令: sudo apt-get install

python2與python3安裝在同一個伺服器linux

一、Python2一般的預設安裝的為python2.7 二、python3安裝  Linux 安裝python3.7.0 1、安裝依賴包            &