動作

BakuMon

出自 Itsmw

下載

檔案下載與改版說明

  • 版本 1.0.7:http://myip.tw/itsmw/download.php?f=bakumon/bakumon-1.0.7.tar.gz
    • 發佈時間:2013-07-15 21:22
    • 下載次數:262      最近下載日期: 2018-12-11 04:12:51
    • 程式變動(與 1.0比較)
      1. (1.0.7)修正 sysconf.php 當有兩個以上的管理者時,系統卻只會寄信給第一個人的錯誤。
      2. (1.0.6)修改 graphs.php ,改成每次進入時皆重新繪製統計圖表。
      3. (1.0.6)修改 functions.php 之 snmpwork(),改善 ramusage 計算方式,使其可適用所有的平台。原本的計算方式,只適合受控端為 ubuntu linux 時。
      4. (1.0.5)修改 chksrv.php ,當有兩台以上的受控機時,網卡流量高估的問題。
      5. (1.0.5)小修 hosts.php 畫面文字。
      6. (1.0.5)修改 functions.php 之 snmpwork(),改正 cpuusage 計算錯誤
      7. (1.0.5)修正在 CentOS 6.4 下用 snmp 抓取資料上的錯誤
      8. (1.0.5)修正網卡流量計算上的錯誤
      9. (1.0.4)修改 chksrv.php ,當有兩台以上的受控機時,網卡流量高估的問題。
      10. (1.0.4)小修 hosts.php 畫面文字。
      11. (1.0.4)修改 functions.php 之 snmpwork(),改正 cpuusage 計算錯誤
      12. (1.0.4)修正在 CentOS 6.4 下用 snmp 抓取資料上的錯誤
      13. (1.0.4)修正網卡流量計算上的錯誤
    • 上次下載 1.0.6 之前版本的朋友,只要下載並解壓縮至原來的資料夾,便可完成升級。


  • 版本 1.0:http://myip.tw/itsmw/download.php?f=bakumon/bakumon-1.0.tar.gz
    • 發佈時間:2013-05-10 18:00
    • 下載次數:181      最近下載日期: 2018-11-22 19:22:42
    • 程式變動(與 1.0rc比較)
      • 新增 snmp v1 的支援
      • 受控主機可以強制取消 SNMP 偵測
    • 上次下載 1.0rc 的朋友,請重新下載此版,並把它解壓縮至原資料夾,便可完成升級。



FAQ

  1. 新增受控機時,找不到網卡
    • 問題:若 client 端已啟用 snmpd ,但在「後台管理/受控機群」或監控程式 chksrv.php 卻找不到某些值(例:找不到網卡)。
    • 解答:這通常是 client 端的 snmpd 設定上不符合本程式要求,導致程式所用的 snmp oid 無效,解決方案可以參考以下網址: http://myip.tw/itsmw/index.php?title=SNMP 上的說明。
  2. 一定要安裝在 Ubuntu Linux 上嗎?
    • 問題:Bakumon 一定要裝在 Ubuntu 12.04 上嗎?
    • 解答:由於筆者是在 Ubuntu Linux 開發此套件,當然優先建議各位可以在此版上安裝。另外,筆者也花時間在 CentOS 上做過測試,原則上安裝使用皆沒問題。至於其他 Linux 發行套件,就請大家幫忙測試,而且請注意 setup.php 會動到 Apache2 的設定,因此只針對 Ubuntu/Debian 最佳化。其他 Linux 使用者要測試,在做到 setup.php 這部分時,請改以 root 身份執行 crontab -e 手動對 chksrv.php 做排程。
  3. 貴程式需要怎樣的 snmp 協定



BakuMon主機監控簡介

功能概要

工作架構

本工具是以 PHP 開發而成,完成安裝後(建議裝在 Ubuntu 12.04 或以上),便可透過定時執行的檢查程式(chksrv.php)偵測各主機的健康狀況,從基本的 PING 連通率及通訊埠監控,到更進一步的以 snmp 協定來抓取主機Loading、網卡流量及溫度變化等。以下是本工具所提供的檢測功能:

  • Ping 連通率測試:每次 chksrv.php 時,會發出十筆不同大小的 ping 封包至受控方,並依據回傳狀況寫入資料庫。
  • 通訊埠監控:以 nmap 指令對指定的通訊埠(net services)檢測通訊埠開啟狀況。
  • CPU、RAM及磁碟使用率
  • 網卡流量
  • CPU溫度變化(需額外安裝 lm-sensors 套件)
  • 受控端出問題時寄送警告信

注意事項:

  • 受控方的作業系統不限
  • 若要監控 CPU, RAM, Disk, 網卡流量,Linux Server 必須加裝 snmpd 套件;Windows 可下載安裝 net-snmp 套件
  • CPU 溫控,Linux Server 必須在 snmp 之上再加 lm-sensors 套件
  • 各版本 Linux 之 snmpd 及 lm-sensors 安裝說明:
    http://myip.tw/itsmw/index.php?title=SNMP



系統要求與下載

系統要求

  • Linux 作業系統:建議使用 ubuntu 12.04 以上(含)或 debian squeeze以上(含)
  • Apache2
  • PHP 5.3.3 以上:除了主架構外,另需:php5-cli, php5-gd, php5-snmp, php-pear
  • MySQL 5.0 以上
  • Linux 工具:nmap

Ubuntu 安裝指令

  • Ubuntu 安裝指令參考:若您是新裝的 Ubuntu ,可以直接下此指令搞定
    user@ubuntu:~$ sudo -i
    root@ubuntu:~# apt-get install nmap snmp apache2 php5 php5-gd php-pear php-apc libapache2-mod-php5 php-date imagemagick php5-imagick php5-mcrypt php5-mysql php5-xmlrpc php5-xsl php5-snmp php5-cli phpmyadmin mysql-server
  • 在安裝的過程,會詢問 MySQL Server 及 phpMyAdmin 的帳號密碼,設妥後請記起來,以供後續安裝軟體時使用。


CentOS 6.4 安裝指令

筆者在 6.4 版並關閉 SELinux 的情況下進行測試,可以順利運作本軟體。

  • [root@dns:~]# yum -y install httpd php php-mysql php-snmp php-gd php-cli php-pear php-mbstring php-pecl-apc php-xml mysql mysql-server nmap net-snmp net-snmp-utils lm_sensors i2c-tools postfix
  • 註1:net-snmp, lm_sensors 套件,是擔任時受控方才需要安裝的套件
  • 註2:安裝 postfix 便可以直接從本機寄出警告信件
  • 註3:CentOS 的使用者,不必執行 setup.php ,由於 setup.php 並未對它最佳化,所以無法執行。
    請改用 crontab -e 指令,加入「*/10 * * * * /var/www/html/bakumon/chksrv.php」排程,以確保每十分鐘皆能執行一次監控指令。



下載解壓縮

  • 下載並解壓縮
    在 ubuntu 主機上操作瀏覽器,點選上方的超連結,預設會下載至 「/home/user/下載」資料夾內。
    • user@ubuntu:~$ sudo -i
    • root@ubuntu:~# cd /home/user/下載
    • root@ubuntu:/home/user/下載# cp -f bakumon-1.x.tar.gz /var/www
    • root@ubuntu:/home/user/下載# cd /var/www
    • root@ubuntu:/var/www# tar xzvf bakumon-1.x.tar.gz


  • 解壓縮完,先用網頁介面繼續執行安裝動作。




安裝

網頁介面安裝

BakumonInstall-A.png

BakumonInstall-B.png

BakumonInstall-C.png

BakumonInstall-D.png

BakumonInstall-E.png

BakumonInstall-F.png

BakumonInstall-G.png



請做好「後台管理/系統設定」後再執行 setup.php;CentOS不必做

網頁安裝完畢,要執行 setup.php 以做好「定時執行」、「修改 AllowOverRide 設定值」及「限製連線範圍」三個設定。執行畫面如下:

user@ubuntu:~$ sudo -i
[sudo] password for user:
root@ubuntu:~# cd /var/www/bakumon
root@fw:/var/www/bakumon# ./setup.php
每幾分鐘要執行監控一次(直接按 Enter 代表 10 ): 10
將會把每 10 分鐘執行一次 chksrv.php 寫入 crontab 內。

cron stop/waiting
cron start/running, process 27915

定時掃描已列入排程,您可下 crontab -l 檢視。

資料夾 ./graphs 為開放讀寫區,裡面設有 .htacess 控管安全性,但必須配合修改 Apache2 設定才能生效,您願意接受把 AllowOverride 改成 All 嗎(Y/n)?Y

允許瀏覽監控系統網頁的範圍為何,請填單一IP或網段值,可以用一個空白鍵分隔不同段或直接按Enter代表不設限。
例:「220.130.230.76 120.116.12.0/23 2001:288:75a6::/48」?203.68.102.0/24 220.130.230.76/30 2001:288:7400::/48 120.115.0.0/16

已完成修改下列 Apache2 設定值:AllowOrveRide設定,連線限制/etc/apache2/conf.d/ra-bakumon.conf設定檔。
 * Reloading web server config
   ...done.

root@ubuntu:/var/www/bakumon#



操作說明

畫面介紹

Screen intro.png


以下是重點功能介紹:

  • 首頁:會列出最近一次掃描的結果
    • 本圖例所顯示的三台主機皆已啟用 snmp 檢查,因為會有「檢視統計圖」功能。
    • 檢視統計圖:可檢視「當日」、「當週」及「當月」各監控值的變化。


  • 系統設定
    1. 設定後,會影響所有受控機
    2. 設定範圍:寄送警告信之郵件伺服器、記錄檔要保存多久,什麼的門檻才可寄出警告信等


  • 受控機群:在此設定被監控的主機基本資料,以及欲監控的通訊埠


  • 管理帳密
    • 管理者定義:可以做「系統設定」及「受控機群變更」的帳號
    • 本程式在安裝時會有一組最高權限管理者,若要新增管理者,可以在安裝後,由此功能新增。



後台管理

 若尚未登入過,剛進入管理區時,會自動跳出登入畫面。如已完成設定作業,請記得「登出」。

系統設定

  • 畫面示例
    BakumonSysconf.png
  • 左:寄信伺服器;右:寄信門檻


寄信伺服器

 當系統出現警訊,達到右側所設的門檻時,系統會自動寄出警告信。但由於本系統本身並不 SMTP Serer ,所以必須設定一組專門寄信的伺服器資料,以順利寄出信件。

  • 寄信伺服器舉例

本機已安裝 postfix ,可正常寄信

  • SMTP網址:localhost
  • SMTP Port:25
  • 郵件地址:user
  • 寄件者密碼: (空白)

GMail

  • SMTP網址:smtp.gmail.com
  • SMTP Port:465
  • 郵件地址:user@gmail.com
  • 寄件者密碼:user's passwd

南市教育局資訊中心

  • SMTP網址:smtp.tn.edu.tw
  • SMTP Port:25
  • 郵件地址:user@tn.edu.tw
  • 寄件者密碼:user's passwd

其他,例:myip.tw

  • SMTP網址:mail.myip.tw
  • SMTP Port:25
  • 郵件地址:yh@myip.tw
  • 寄件者密碼:yh's passwd


  • Gmail 使用者特別注意
    • 有些 Gmail 使用者,會被通知啟用二階認證,若是如此,輸入原本的密碼會無法寄信,一定要到「Gmail應用程式專用密碼」設妥一組專用密碼才行。
    • 依筆者經驗,使用 gmail 寄信時,可能是 gmail 的因素,會 delay 數秒鐘。



其他設定

  • 記錄檔保存時間:所有掃描會被存入資料庫,並在「歷史資料區」提供列表。在此可以設定保留日數,以避免資料過多。
  • 寄信門檻相關設定
  • 每隔多少小時通知一次:由於通知信寄送是由檢查程式在檢查時一併處理,在此設定一個合理的間隔以避免不斷的收信,造成另一種困擾。



主機設定

 這裡是用來添加、修改被監控機的基本參數,例如:IP 地址、主機名稱、是否已安裝 snmp 以提供進一步資料及監控通訊埠(每台機器會開的服務不盡相同)等。

畫面介紹

 本功能在操作上可切成兩段,第一要先輸入並儲存主機資訊,第二再變更通訊埠設定。注意:當點「儲存主機資訊」時,並不會對通訊埠作任何更動。

新增一台受控機

  • 受控端支援 SNMP 時,會如下面畫面,並要求勾選出正確網卡以計算流量。若受控方不支援 SNMP ,仍可繼續設定通訊埠,差別只在有無辨法更詳細的查出主機各項健康狀況。
BakumonHostAdd.png


通訊埠新增修改

BakumonPortAdd.png



帳號管理

BakumonUser.png



其他

統計圖表

  • 本功能僅限已啟用進階監控(snmpd)的主機
BakumonGraph1.png


BakumonGraph2.png


點任一張圖片,可秀出大圖
BakumonGraphs.png



歷史資料查詢

BakumonReport.png