A. 如何使用Monit部署伺服器監控系統
Monit是什麼看
Monit是
一個跨平台的用來監控Unix/linux系統(比如Linux、BSD、OSX、Solaris)的工具。Monit特別易於安裝,而且非常輕量級(只
有500KB大小),並且不依賴任何第三方程序、插件或者庫。然而,Monit可以勝任全面監控、進程狀態監控、文件系統變動監控、郵件通知和對核心服務
的自定義動作等場景。易於安裝、輕量級的實現以及強大的功能,讓Monit成為一個理想的後備監控工具。
我
已經在一些機器使用Monit幾年了,而且我對它的可靠性非常滿意。甚至作為全面的監控系統,對任何Linux系統管理員來說Monit也是非常有用和強
大的。在這篇教程中,我會展示如何在一個本地伺服器部署Monit(作為後備監控系統)來監控常見的服務。在部署過程中,我只會展示我們用到的部分。
在Linux安裝Monit
Monit已經被包含在多數Linux發行版的軟體倉庫中了。
Debian、Ubuntu或者Linux Mint:
$ sudo aptitude install monit
Fedora或者CentOS/RHEL:
在CentOS/RHEL中,你必須首先啟用EPEL或者Repoforge軟體倉庫.
# yum install monit
Monit
自帶一個文檔完善的配置文件,其中包含了很多例子。主配置文件在/etc/monit.conf(Fedora/CentOS/RHEL
中),或者/etc/monit/monitrc(Debian/Ubuntu/Mint
中)。Monit配置文件有兩部分:逗Global地(全局)和逗Services地(服務)。
Global Configuration: Web Status Page (全局配置:Web狀態頁面)
Monit可以使用郵件服務來發送通知,也可以使用HTTP/HTTPS頁面來展示。我們先使用如下配置的web狀態頁面吧:
Monit監聽1966埠。
對web狀態頁面的訪問是通過SSL加密的。
使用monituser/romania作為用戶名/口令登錄。
只允許通過localhost、myhost.mydomain.ro和在區域網內部(192.168.0.0/16)訪問。
Monit使用pem格式的SSL證書。
之後的步驟,我會使用一個基於Red Hat的系統。在基於Debian的系統中的步驟也是類似的。
首先,在/var/cert生成一個自簽名的證書(monit.pem):
# mkdir /var/certs # cd /etc/pki/tls/certs # ./make-mmy-cert monit.pem # cp monit.pem /var/certs # chmod 0400 /var/certs/monit.pem
現在將下列代碼片段放到Monit的主配置文件中。你可以創建一個空配置文件,或者基於自帶的配置文件修改。
set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monit.pem allow monituser:romania allow localhost allow 192.168.0.0/16 allow myhost.mydomain.ro
Global Configuration: Email Notification (全局配置:郵件通知)
然後,我們來設置Monit的郵件通知。我們至少需要一個可用的SMTP伺服器來讓Monit發送郵件。這樣就可以(按照你的實際情況修改):
郵件伺服器的機器名:smtp.monit.ro
Monit使用的發件人:[email protected]
郵件的收件人:[email protected]
郵件伺服器使用的SMTP埠:587(默認是25)
有了以上信息,郵件通知就可以這樣配置:
set mailserver smtp.monit.ro port 587 set mail-format { from: [email protected] subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. Yours sincerely, Monit } set alert [email protected]
就像你看到的,Monit會提供幾個內部變數($DATE、$EVENT、$HOST等),你可以按照你的需求自定義郵件內容。如果你想要從Monit所在機器發送郵件,就需要一個已經安裝的與sendmail兼容的程序(如postfix或者ssmtp)。
Global Configuration: Monit Daemon (全局配置:Monit守護進程)
接下來就該配置Monit守護進程了。可以將其設置成這樣:
在120秒後進行第一次檢測。
每3分鍾檢測一次服務。
使用syslog來記錄日誌。
如下代碼段可以滿足上述需求。
set daemon 120 with start delay 240 set logfile syslog facility log_daemon
我們必須定義逗idfile地,Monit守護進程的一個獨一無二的ID文件;以及逗eventqueue地,當monit的郵件因為SMTP或者網路故障發不出去,郵件會暫存在這里;以及確保/var/monit路徑是存在的。然後使用下邊的配置就可以了。
set idfile /var/monit/id set eventqueue basedir /var/monit
測試全局配置
現在逗Global地部分就完成了。Monit配置文件看起來像這樣:
# Global Section # status webpage and acl's set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monit.pem allow monituser:romania allow localhost allow 192.168.0.0/16 allow myhost.mydomain.ro # mail-server set mailserver smtp.monit.ro port 587 # email-format set mail-format { from: [email protected] subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. Yours sincerely, Monit } set alert [email protected] # delay checks set daemon 120 with start delay 240 set logfile syslog facility log_daemon # idfile and mail queue path set idfile /var/monit/id set eventqueue basedir /var/monit
現在是時候驗證我們的工作了,你可以通過運行如下命令來驗證存在的配置文件(/etc/monit.conf):
# monit -t Control file syntax OK
如果monit提示任何錯誤,請再檢查下配置文件。幸運的是,錯誤/警告信息是可以幫助你發現問題的,比如:
monit: Cannot stat the SSL server PEM file '/var/certs/monit.pem' -- No such file or directory /etc/monit/monitrc:10: Warning: hostname did not resolve 'smtp.monit.ro'
一旦你確認配置文件沒問題了,可以啟動monit守護進程,然後等2到3分鍾:
# service monit start
如果你使用的是systemd,運行:
# systemctl start monit
現在打開一個瀏覽器窗口,然後訪問https://<monit_host>:1966。將<monit_host>替換成Monit所在機器的機器名或者IP地址。
如果你使用的是自簽名的SSL證書,你會在瀏覽器中看到一個警告信息。繼續訪問即可。
你完成登錄後,就會看到這個頁面。
在這個教程的其餘部分,我們演示監控一個本地伺服器和常見服務的方法。你會在官方wiki頁面看到很多有用的例子。其中的多數是可以直接復制粘貼的!
Service Configuration: CPU/Memory Monitoring (服務配置:CPU、內存監控)
我們先來監控本地伺服器的CPU、內存佔用。復制如下代碼段到配置文件中。
check system localhost if loadavg (1min) > 10 then alert if loadavg (5min) > 6 then alert if memory usage > 75% then alert if cpu usage (user) > 70% then alert if cpu usage (system) > 60% then alert if cpu usage (wait) > 75% then alert
你可以很容易理解上邊的配置。最上邊的check是指每個監控周期(全局配置里設置的120秒)都對本機進行下面的操作。如果滿足了任何條件,monit守護進程就會使用郵件發送一條報警。
如果某個監控項不需要每個周期都檢查,可以使用如下格式,它會每240秒檢查一次平均負載。
if loadavg (1min) > 10 for 2 cycles then alert
Service Configuration: SSH Service Monitoring (服務配置:SSH服務監控)
先檢查我們的sshd是否安裝在/usr/sbin/sshd:
check file sshd_bin with path /usr/sbin/sshd
我們還想檢查sshd的啟動腳本是否存在:
check file sshd_init with path /etc/init.d/sshd
最後,我們還想檢查sshd守護進程是否存活,並且在監聽22埠:
check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/sshd start" stop program "/etc/init.d/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout
我
們可以這樣解釋上述配置:我們檢查是否存在名為sshd的進程,並且有一個保存其pid的文件存在(/var/run/sshd.pid)。如果任何一個
不存在,我們就使用啟動腳本重啟sshd。我們檢查是否有進程在監聽22埠,並且使用的是SSH協議。如果沒有,我們還是重啟sshd。如果在最近的5
個監控周期(5x120秒)至少重啟5次了,sshd就被認為是不能用的,我們就不再檢查了。
Service Configuration: SMTP Service Monitoring (服務配置:SMTP服務監控)
現在我們來設置一個檢查遠程SMTP伺服器(如192.168.111.102)的監控。假定SMTP伺服器運行著SMTP、IMAP、SSH服務。
check host MAIL with address 192.168.111.102 if failed icmp type echo within 10 cycles then alert if failed port 25 protocol smtp then alert else if recovered then exec "/scripts/mail-script" if failed port 22 protocol ssh then alert if failed port 143 protocol imap then alert
我
們檢查遠程主機是否響應ICMP協議。如果我們在10個周期內沒有收到ICMP回應,就發送一條報警。如果監測到25埠上的SMTP協議是異常的,就發
送一條報警。如果在一次監測失敗後又監測成功了,就運行一個腳本(/scripts/mail-script)。如果檢查22埠上的SSH或者143端
口上的IMAP協議不正常,同樣發送報警。
B. 如何搭建網路視頻監控系統
首先介紹一下硬體方面,
海康威視DS-7016錄像機 1台
西部數據SATA介面500G硬碟 1個
TP-LINK R460+路由器 1個
花生殼動態域名專業服務 1年
電源線和視頻線隨便幾百米就夠了
第一步:搭建你的監控系統
首先將錄像機接電源並連接路由器,通過硬碟錄像機的默認管理地址進行登陸管理設置,
如http://192.168.0.64/。登陸管理,安裝控制項後會出現一個登陸的管理界面,輸入默認的管理帳號admin ,密碼12345,埠默認8000。
通過以上操作,錄像機的設置就要告一段落了
內網輸入http://192.168.0.64是能夠看到監控了
但是我們需要實現的是遠程監控,需要做到的是外網同樣都可以訪問。
第二步設置花生殼動態域名解析
注冊一個免費的花生殼護照並等待1小時(貌似是花生殼的資料庫伺服器同步問題)
然後登陸路由器(默認管理的地址為http://192.168.0.1帳號admin密碼admin)
在動態DNS裡面輸入我們剛注冊的帳號和密碼,並啟用動態DNS,點擊登陸。
登陸成功後,會直接顯示目前護照的花生殼服務級別和能夠得到花生殼解析服務的域名
域名zengkebing.gicp.net已經可以綁定我們當前的公網IP了,動態解析服務已經做好了。
第三步設置路由器埠映射
接下來的就是要做路由器的埠映射
需要從路由器將錄像機要用到的80和8000埠映射到192.168.0.64
如果你的錄像機不是這個IP和埠就隨之改動好了,具體操作請見下圖
登錄到路由器的管理界面(默認管理的地址為http://192.168.0.1帳號admin密碼admin)
點擊路由器左邊操作菜單的「轉發規則」—「虛擬伺服器」。服務埠號填寫為80IP地址就輸入錄像機的內網IP「192.168.0.64」協議選擇「ALL」或者「TCP」都可以
然後別忘了保存,那個常用服務埠只是起到一個幫助提示作用,不用設置。
同樣的操作,把錄像機視頻服務的8000埠也給映射到「192.168.0.64」保存好可以看到已經映射好的埠,已經生效了,埠映射也完成了,到此視頻伺服器的設置已經全部完成,然後我們測試服務是否可以正常訪問。
第四步驗證服務是否可以正常訪問
打開瀏覽器,在地址欄裡面輸入動態域名zengkebing.gicp.net敲回車鍵,會得到一個以下的提示,需要安裝一個來自「杭州海康威視數字技術股份有限公司」的一個控制項,這個是我們必須要安裝的,點擊提示按左鍵進行安裝。然後會得到瀏覽器的一個提示,我們需要點擊安裝,才能夠進行視頻監控。安裝視頻控制項成功後,我們可以看到令人期待的視頻錄像機登陸窗口,輸入賬號admin和密碼12345,以8000埠登陸登陸成功後,雙擊左邊列表當中的攝像頭圖標,就可以看到監控的畫面了。
點擊監控圖像下面的按鍵切換成單畫面,非常的清晰和順暢。
修改一下錄像機的默認賬戶以及密碼,點擊「配置」選項。然後在「用戶許可權」選項禮貌進行修改用戶密碼,注意:密碼只可以是純數字(海康真BT)
C. 如何組建監控系統
首先是網路攝像機(或者用模擬攝像機,網路視頻伺服器),然後是網路交換機,然後是PC,這是最簡單網路監控系統。
要不就是首先模擬攝像機,然後是視頻光端機(或視頻線纜),然後是硬碟錄像機,然後是交換機,然後是PC,這是前端模擬,硬錄存儲,網路觀看的系統組成方式。
更具體的,可以詳細說。
北京安力博發科技有限公司旗下的「佰沃」高清數字視頻監控系統,不僅可以為您提供從前端到後端,從標清(D1)到標准高清(720P)再到全高清(FULL HD1080P)的全系列產品,同時也可以協助您從初步方案,到深化設計,再到安裝調試,最終到售後維保,全程提供最完善,最專業的服務。
「佰沃」高清數字視頻監控系統,在具備高品質的圖像,穩定的產品質量,超長的保修期,超高的性價比等優勢以外,在傳輸機存儲碼流方面更是具備其他產品所無法比擬的壓縮比率,能夠為您節約大量的網路帶寬資源及錄像存儲空間,有效的降低項目整體的成本預算。
D. 如何自建家庭監控系統
步驟1:確定視頻傳輸通道
由於查看視頻監控伺服器的畫面需要通過網路傳輸,因此視頻監控伺服器必須能連接互聯網。在這之前為了能正常訪問視頻監控伺服器,必須解決一個問題——如何從外部網路訪問視頻監控伺服器。一般來說,監控伺服器的聯網方法有兩種。一種是直接由監控伺服器電腦撥號上網,這種聯網方式比較簡單,只要監控伺服器成功運行,然後撥號上網,再運行動態域名解析軟體和視頻監控軟體即可。另一種方法主要針對使用路由器上網的電腦進行埠映射,要想從外網訪問,就必須給內網分配一個外網IP地址。因此必須申請動態域名解析服務。
步驟2:監控設備的選擇
設置完網路參數,接著搭建視頻監控伺服器。視頻監控伺服器就是一台配有攝像頭且可以上網的電腦。由於需要長時間開機,因此要求電腦穩定性較高、功耗較低。筆者在客廳放置的視頻監控伺服器選用的是整合凌動CPU的小型主板,並配有靜音風扇。軟體方面,可以使用Webcamxp充當視頻監控軟體客戶端。
步驟3:確定音/視頻源
為了讓用戶能夠訪問視頻攝像頭,還需要對客戶端軟體的視頻和音頻監控源進行設置,在視頻監控軟體的「sourcesmonitor」選項卡的「tools/options」中有兩個類別,分別是音頻源(audiosource)和視頻源(videosource),可在此設定對應的攝像頭設備和麥克風設備。
步驟4:建立外部監控通道
由於用戶要通過網路查看視頻監控伺服器上的監控視頻,因此接下來要把客戶端軟體獲取的視頻和音頻對外發布。可通過客戶端軟體的「web/broadcast」選項卡中的「內部http伺服器」選項進行設置。
如果直連互聯網,可以使用「搜索WANIP」選項,勾選「啟動時檢測WANIP」選項,這樣客戶端軟體會自動獲取視頻監控伺服器的公網IP。如果使用寬頻路由器進行聯網,則在軟體的「內部IP地址」中輸入手動分配給該視頻監控伺服器的內網IP地址,並關閉「啟動時檢測WANIP」選項。完成這些設置後,點擊WEBServer按鈕即可啟動對外廣播功能。
經過以上設置後,只要在任何一台已經連接網路的電腦上輸入自己申請的域名,即可看到家中情況,真正實現家用監控的效果。
E. 想要部署一個伺服器監控系統,大家推薦哪個
你好樓主;
1、Ganglia是伯克利開發的一個集群監控軟體。可以監視和顯示集群中的節點的各種狀態信息,比如如:cpu 、mem、硬碟利用率, I/O負載、網路流量情況等,
2、Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網路流量監測圖形分析工具。
3、Zenoss Core是開源企業級IT管理軟體-是智能監控軟體,他允許IT管理員依靠單一的WEB控制台來監控網路架構的狀態和健康度。Zenoss Core同時也是開源的網路與系統管理軟體。
4、Argus 是一個網路連接監控器,可以利用它來定製監控網路中符合某種條件的計算機,例如網路空閑、斷開等。
5、Monit是一款功能非常豐富的進程、文件、目錄和設備的監測軟體,用於Unix平台。它可以自動修復那些已經停止運作的程序,特使適合處理那些由於多種原因導致的軟體錯誤。
6、Nagios是一個監視系統運行狀態和網路信息的監視系統。Nagios能監視所指定的本地或遠程主機以及服務,同時提供異常通知功能等
7、collectd是一個守護(daemon)進程,用來收集系統性能和提供各種存儲方式來存儲不同值的機制。比如以RRD 文件形式。
8、Fiddler是最強大最好用的Web調試工具之一,它能記錄所有客戶端和伺服器的http和https請求,允許你監視,設置斷點,甚至修改輸入輸出數據,Fiddler包含了一個強大的基於事件腳本的子系統,並且能使用.net語言進行擴展
9、網路嗅探器/數據包捕獲網路取證分析工具(NFAT),它可以檢測網路上的流量,會話,主機名,操作系統的開放埠等。 NetworkMiner也可以解析PCAP文件進行離線分析,同時,NetworkMiner還可以提取網路流量的傳輸的文件。
10、Pandora FMS(靈活監控系統)是一種小型和大型系統環境(一個伺服器2000節點)的可用性和性能監視系統。對於本地系統,該軟體使用代理來監視Linux, Solaris, FreeBSD, MAC OS X, Windows和AIX平台上的數值參數,布爾狀態或字元串。使用者可以用Shellscript, WSH, Perl 或 C創建代理。 可通過SNMP v3, TCP檢查和遠程WMI探測來進行遠程網路監視。 數據報告基於Pandora自己的SQL後台,且可在配置的屏幕上顯示。
11、Observium是一個可自動發現網路中的Cisco設備和Linux系 統的網路監控工具,而是包括了主要的網路硬體和操作系統的廣泛支持。
12、EasyNetMonitor是一款非常有用的免費網路監 視工具,無需安裝。軟體默認會每10秒鍾ping一次網站,如果網站運作正常,也就是有響應的話,系統托盤的監測狀態會顯示綠燈,如果是沒響應的話則是顯 示紅燈。要修改或是刪除監測的網站,在地球小圖標上點擊右鍵,選擇監測網址子菜單的 Edit 或是 Delete就行!
13、Colasoft Capsa Free是一個功能強大的程序,成功地處理與網路分析,向您提供用於故障診斷和監測的信息。它為用戶提供豐富的經驗,若要了解如何監視網路活動,查明網路問題,增強網路安全性等。
望採納!
F. 如何組建一套網路監控系統
首先介紹一下硬體方面,海康威視DS-7016錄像機 1台 西部數據SATA介面500G硬碟 1個 TP-LINK R460+路由器 1個 花生殼動態域名專業服務 1年 電源線和視頻線隨便幾百米就夠了第一步:搭建你的監控系統首先將錄像機接電源並連接路由器,通過硬碟錄像機的默認管理地址進行登陸管理設置,如http://192.168.0.64/。登陸管理,安裝控制項後會出現一個登陸的管理界面,輸入默認的管理帳號admin ,密碼12345,埠默認8000。
登陸成功後,雙擊左邊攝像頭列表當中的攝像頭,可以看到一個監控的頁面,就證明這個錄像機已經正常在本地工作了,接下來,我們要對錄像機進行網路上的配置,點擊操作界面的菜單可進入管理界面。
伺服器參數這里有幾個關鍵的設置選項,其中一個是IP地址,這個設置192.168.0.64子網掩碼255.255.255.0,網關192.168.0.1。另外還有2個埠,最近埠號 8000這個是視頻服務傳輸用的埠,HTTP埠號 80 這個是在瀏覽器輸入訪問要用到的埠。
通過以上操作,錄像機的設置就要告一段落了內網輸入http://192.168.0.64是能夠看到監控了但是我們需要實現的是遠程監控,需要做到的是外網同樣都可以訪問。第二步 設置花生殼動態域名解析注冊一個免費的花生殼護照並等待1小時(貌似是花生殼的資料庫伺服器同步問題)然後登陸路由器(默認管理的地址為http://192.168.0.1帳號admin密碼admin)在動態DNS裡面輸入我們剛注冊的帳號和密碼,並啟用動態DNS,點擊登陸。登陸成功後,會直接顯示目前護照的花生殼服務級別和能夠得到花生殼解析服務的域名域名zengkebing.gicp.net已經可以綁定我們當前的公網IP了,動態解析服務已經做好了。
第三步 設置路由器埠映射
接下來的就是要做路由器的埠映射
需要從路由器將錄像機要用到的80和8000埠映射到192.168.0.64
如果你的錄像機不是這個IP和埠就隨之改動好了,具體操作請見下圖
登錄到路由器的管理界面(默認管理的地址為http://192.168.0.1帳號admin密碼admin)
點擊路由器左邊操作菜單的「轉發規則」—「虛擬伺服器」。服務埠號填寫為80 IP地址就輸入錄像機的內網IP「192.168.0.64」協議選擇「ALL」或者「TCP」都可以
然後別忘了保存,那個常用服務埠只是起到一個幫助提示作用,不用設置。
同樣的操作,把錄像機視頻服務的8000埠也給映射到「192.168.0.64」保存好可以看到已經映射好的埠,已經生效了,埠映射也完成了,到此視頻伺服器的設置已經全部完成,然後我們測試服務是否可以正常訪問。第四步 驗證服務是否可以正常訪問打開瀏覽器,在地址欄裡面輸入動態域名zengkebing.gicp.net 敲回車鍵,會得到一個以下的提示,需要安裝一個來自「杭州海康威視數字技術股份有限公司」的一個控制項,這個是我們必須要安裝的,點擊提示按左鍵進行安裝。然後會得到瀏覽器的一個提示,我們需要點擊安裝,才能夠進行視頻監控。安裝視頻控制項成功後,我們可以看到令人期待的視頻錄像機登陸窗口,輸入賬號admin和密碼12345,以8000埠登陸登陸成功後,雙擊左邊列表當中的攝像頭圖標,就可以看到監控的畫面了。點擊監控圖像下面的按鍵切換成單畫面,非常的清晰和順暢。修改一下錄像機的默認賬戶以及密碼,點擊「配置」選項。然後在「用戶許可權」選項禮貌進行修改用戶密碼
G. 如何設計一個mysql性能監控的軟體
首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個工具,說起 PT 工具包大家都不陌生,平時常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自於這個工具包,這里就不多介紹了。
pt-stalk 的主要功能是在出現問題時收集 OS 及 MySQL 的診斷信息,這其中包括:
1. OS 層面的 CPU、IO、內存、磁碟、網路等信息;
2. MySQL 層面的行鎖等待、會話連接、主從復制,狀態參數等信息。
而且 pt-stalk 是一個 Shell腳本,對於我這種看不懂 perl 的人來說比較友好,腳本裡面的監控邏輯與監控命令也可以拿來參考,用於構建自己的監控體系。
三、使用
接著我們來看下如何使用這個工具。
pt-stalk 通常以後台服務形式監控 MySQL 並等待觸發條件,當觸發條件時收集相關診斷數據。
觸發條件相關的參數有以下幾個:
function:
∘默認為 status,代表監控 SHOW GLOBAL STATUS 的輸出;
∘也可以設置為 processlist,代表監控 show processlist 的輸出;
variable:
∘默認為 Threads_running,代表 監控參數,根據上述監控輸出指定具體的監控項;
threshold:
∘默認為 25,代表 監控閾值,監控參數超過閾值,則滿足觸發條件;
∘監控參數的值非數字時,需要配合 match 參數一起使用,如 processlist 的 state 列;
cycles:
∘默認為 5,表示連續觀察到五次滿足觸發條件時,才觸發收集;
連接參數:host、password、port、socket。
其他一些重要參數:
iterations:該參數指定 pt-stalk 在觸發收集幾次後退出,默認會一直運行。
run-time:觸發收集後,該參數指定收集多長時間的數據,默認 30 秒。
sleep:該參數指定在觸發收集後,sleep 多久後繼續監控,默認 300 秒。
interval:指定狀態參數的檢查頻率,判斷是否需要觸發收集,默認 1 秒。
dest:監控數據存放路徑,默認為 /var/lib/pt-stalk。
retention-time :監控數據保留時長,默認 30 天。
daemonize:以後台服務運行,默認不開啟。
log:後台運行日誌,默認為 /var/log/pt-stalk.log。
collect:觸發發生時收集診斷數據,默認開啟。
∘collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。
∘collect-strace:收集跟蹤數據,需要 strace 工具。
∘collect-tcpmp:收集 tcpmp 數據,需要 tcpmp 工具。
H. 智能視頻監控系統詳細設計思路
隨著寬頻有線和無線網路基礎設施的完善以及全球安防市場需求的增長,視頻監控的應用正呈爆發性的增長態勢。視頻監控系統的發展趨勢非常明顯,在經歷了數字化和網路化之後,下一個重要的趨勢就是智能化,即智能監控和視頻分析技術的應用。
傳統的視頻監控由人工進行視頻監測發現安全隱患或異常狀態,或者用於事後分析,這種應用具有其固有的缺點,難以實現實時的安全監控和檢測管理。帶有智能分析功能的監控系統可以通過區分監控對象的外形、動作等特徵,做到主動收集、分析數據,並根據預設條件執行報警、記錄、分析等動作。智能監控系統可以運行於伺服器,也可以運行在基於DSP的嵌入式系統上,而後者已逐漸成為主流。
智能視頻的應用大體上可以分安防、人體行為檢測和智能交通三方面的應用。其中安防應用是被廣泛認為是最具潛力的市場,它包括以下幾個應用類別:入侵檢測,可以自動檢測出視頻畫面中的運動行為特徵;物品移除檢測,可以自動檢測物品搬移事件——當防區內某特定位置的物品被拿走或搬走時發出報警;遺留物檢測,可以對遺棄物進行自動檢測——當物品在某個防區內被放置或遺棄的時候自動報警;智能跟蹤,可以使攝像機對自身的雲台和變焦鏡頭進行自主PTZ驅動。人體行為檢測應用包括脫崗檢測(可以實現自動檢測崗哨人員就位情況)、徘徊檢測(對重要區域人體徘徊檢測)。智能交通應用包括:對非法停留的交通工具進行檢測,當交通工具在防區內非法停留時發出報警;車輛逆行檢測,及時辨別逆行車輛。
隨著准確率和可靠性逐步提高及產品成本的下降,智能視頻在越來越多的場合得到了應用,它能夠替代部分安防設備,降低安保人員的工作強度,提高工作效率,減少管理成本。事實上,智能視頻的應用具有非常巨大的潛力。隨著技術日趨成熟,智能視頻技術的應用領域正在迅速擴展,這些應用主要包括上述的安防、交通以及零售、服務等行業,如人數統計、人臉識別、人群控制、注意力控制和交通流量控制等。
實時視頻監測的需求正在快速增長,特別是隨著實時安全監控應用的需求增加,實時發現安全隱患或目標異常行為的功能已經具有越來越重要的現實意義,智能視頻監測系統產品在這種日益增長的需求帶動下,正在成為視頻監控應用的新熱點。特別是隨著半導體技術的進步,例如以Blackfin匯聚式處理器為代表的先進嵌入式解決平台方案的推出,具有極高性價比和極高實用性的智能視頻分析設備不斷推出,並在一些關鍵應用中發揮極為重要的作用。 圖1:傳統的視頻監控應用示意圖。
智能視頻應用設計攻略
硬體平台方案的選擇往往決定了系統的整體方案成本、性能、開發工具和方法的可用性,以及方案未來持續升級的可行性等,因此方案平台選型至關重要。智能視頻應用自身的獨特性要求在硬體平台的選擇上進行綜合權衡。視頻監控系統的網路化和智能分析要求,以及大規模工程安裝對成本、體積和功耗的限制,非標准化的智能視頻分析方法和幾乎定製化的方案優化方式,使得結合了MCU和DSP優勢、具有軟體設計靈活性和強大處理能力的匯聚式處理器方案平台體現出更加明顯的優勢。本文將結合ADI公司獨特的Blackfin匯聚式DSP處理器的特點,分析智能視頻設計中主要的設計技術要點。
一、硬體平台選型
可定製化能力非常重要。有很多因素制約著視頻監控系統智能化的應用步伐:首先是智能監控的視頻演算法比較復雜,難於標准化,各個系統提供商的視頻分析軟體都有自己的獨特演算法,導致市場上的產品沒有統一的標准;其次,視頻監控系統的應用場景比較復雜,用戶的要求多樣化,所以定製化的要求比較多。因此,視頻分析方案通常需要針對客戶的應用特點和需求進行方案優化,採用的演算法千差萬別。此外,由於智能視頻應用的高復雜性,對方案的處理能力提出了更高的要求。MCU+ASIC的視頻監控傳統方案難以實現各種個性化的設計和高運算能力要求,即使選擇普通DSP+MCU的雙晶元方案通常也難以滿足智能視頻監控應用的復雜運算需求,需要增加協處理器,這種復雜的解決方案無論是BOM成本、功耗還是開發難度都不足取。Blackfin處理器充分發揮了MCU+DSP匯聚式架構的優勢,滿足了智能視頻應用的系統控制和高強度的運算需求,特別是以BF561為代表的高性能雙內核架構已經成為智能視頻應用的首選方案平台。
方案的可擴展性也是需要考慮的因素。智能視頻分析應用除了需要針對應用環境、應用目的進行方案優化外,不同的客戶可能還有其他方面的不同需求。例如,當前一些領先的數字視頻監控方案實現了H.264基本類@Level3.0和MPEG4 D1+CIF雙碼流的支持,未來可能擴展到支持H.264 D1+CIF的雙碼流。隨著智能視頻分析的更廣泛應用,如IP攝像機、無線視頻監控、智能交通系統等,不同應用都可能對各種介面功能、通信標准、用戶界面等的需求有較大的差異化,硬體平台方案對各種需求的靈活擴展性非常重要。同時,正如前文所述,智能視頻分析技術發展不過數年的時間,隨著技術的不斷成熟以及一些相關的標準的出台和改進,產品的可升級特性至關重要,既是開發者須關注的問題也是終端客戶關切的重要特性。Blackfin DSP在演算法並行處理上具有獨特優勢,特別是ADSP-BF561採用雙DSP核,能夠實現很復雜的智能視頻處理演算法。
視頻應用優化特性。一些方案盡管具有較強的處理能力和可擴展性,方案是否主要針對視頻應用進行過優化設計也值得關注,因為這直接關繫到設計工程師可用的軟硬體設計資源以及系統設計難度和可實現的性能。以Blackfin處理器為例,Blackfin為高強度、高數據率的數字和媒體處理做了專門優化:Blackfin的幾十個DMA通道和可靈活配置的Cache很好地滿足了視頻監控系統對大運算量、高數據吞吐率的要求;ADI專門開發了完全優化的音視頻編解碼器,並免費提供給大客戶;針對視頻應用Blackfin集成了很多硬體驅動,包括WiFi的驅動、音/視頻編解碼器的驅動;Blackfin的4個視頻算術運算單元和視頻象素指令集大大加速了視頻運算速度;在智能視頻分析的一些基礎運算元中,例如直方圖統計、中值運算、Sobel運算、形態學中的膨脹運算等都可以利用Blackfin的MIN、MAX指令來消除條件跳轉,節省處理器周期。不僅如此,Blackfin還支持13種非視頻數據的向量運算。適當設計數據結構,在前背景分離、閾值計算和更新等多個環節都可以運用Blackfin的特色指令讓智能視頻分析演算法更快捷。這些本身就很有效的指令中,大部分指令都能夠並行執行,使得Blackfin的處理能力再加倍。
低功耗和穩定性很重要。考慮到智能視頻監控設備通常都是一周7天,每天24小時運行的,穩定性和功耗也比較重要。在低功耗上,Blackfin處理器採用了多種節能技術:基於一種選通時鍾內核設計,可按照逐條指令來選擇性地切斷功能單元的電源;支持多種針對所需CPU動作極少期間的斷電模式;Blackfin處理器支持一種自含動態電源管理電路,藉助該電路即可對工作頻率和電壓進行獨立控制,以滿足正在執行的演算法的性能要求;大多數Blackfin處理器都提供片上內核穩壓電路,並可在低至0.8V的電壓下工作。而Blackfin獨特的匯聚式處理架構、90nm工藝等打下了其領先的低功耗處理的基礎。由於高處理能力,基於Blackfin平台的系統方案可以減少主晶元數量,豐富的功能和介面可以滿足各種外設和功能擴展需求,降低元器件數量,從而保證更高的穩定可靠性。目前在同價位DSP中Blackfin DSP的低功耗特性和穩定性是最好的。
支持哪些嵌入式操作系統。智能視頻分析通常是基於網路的應用,必須要操作系統的支持,因此選擇具有廣泛嵌入式系統支持能力的解決方案非常重要,這樣能確保未來產品在更換操作系統時不至於必須更換硬體平台,保證研發成果的持續可用性。目前可用的嵌入式操作系統眾多,各具優勢,硬體平台方案對這些操作系統的支持能力是進行方案選型的考慮要點之一。例如,Blackfin處理器可以支持目前主流的操作系統,包括uCLinux、ThreadX、Nucleus,uCOS-II等十多種嵌入式操作系統,客戶完全可以根據其自身要求選擇其熟悉的或更具成本效益的軟體架構基礎。 圖2:基於BF561的智能監控終端框圖。
二、開發工具和可用資源
智能視頻監控設備是一個復雜的系統,涉及到復雜的軟硬體設計、人機界面、通信連接等,具有較高的系統設計難度。因此,所選擇的硬體平台方案是否能提供完善的開發工具套件、必要的軟體模塊、成熟的參考設計、系統設計支持,以及是否有完整的設計生態系統等,對於是否能按期高質量地完成系統設計非常關鍵。事實上,並不是所有平台方案提供商都能提供這些支持。
以Blackfin系列處理器為例,採用Blackfin處理器的硬體平台從一般的DVR、IP攝像機、數字視頻監控到智能視頻監控,已經被全球大量的設備企業的廣泛採用。Blackfin處理器獲得眾多企業的青睞,具有完整的開發工具和參考設計等支持是其受廣泛歡迎的重要原因之一。ADI提供業界一流的工具、初學套件與支持,包括人們熟知的、能夠支持其他Blackfin處理器的ADI CROSSCORE?軟體與硬體工具,這些工具包括獲獎的VisualDSP++?集成開發與調試環境(IDDE)、模擬器,以及EZ-KIT Lite?評估版硬體。
為提高開發效率,降低開發難度,開發時應盡量在已有的資源上進行,比如開放的常式,ADI為此提供了非常豐富的常式和資料。例如,ADI提供免費的「Image Tool Box」圖像處理函數庫軟體包,該軟體包專門針對圖像處理應用常用的數學函數進行了優化,供客戶在進行應用開發時調用。ADI還提供完整的參考設計,以及由本地合作夥伴開發的評估板、開發工具、演算法IP、應用模塊,以及由第三方合作夥伴提供包括軟硬體在內的全套交鑰匙方案。Blackfin處理器的視頻監控應用目前在中國已經有多傢具有豐富工程經驗的第三方合作夥伴,已經建立完善的生態系統。
以ADI在今年三月份宣布提供基於該公司Blackfin BF526C的完整的IP監控和機器視覺攝像頭參考設計為例,該參考設計在單個匯聚處理器上提供了強大的視頻和音頻處理能力,為工程師提供了一個統一的軟體開發環境,可以實現更快的系統調試和部署,以及更低的系統成本。該處理器提供了集成的音頻編解碼器、流式視頻和IP協議、片上DRAM存儲器以及針對10/100乙太網、USB和SD存儲和本地RS-232埠的介面。這種完全可編程的解決方案可以滿足多種視頻壓縮標准,例如H.264和MPEG4,支持音頻G.729標準的編碼。支持從控制中心到相機的雙向語音通信,以及利用Pelo-P或Pelo-D協議的鏡頭平移、傾斜和拉伸動作。該參考設計還提供一塊帶雙核BF561處理器的子卡,使系統能實現更高視頻解析度,並提供實現高級視頻分析功能,如運動檢測和跟蹤。
應用方案揭秘——億維東方智能網路攝像機
北京億維東方科技有限公司(Emvideo)是專業智能安防產品的方案提供商,也是美國ADI公司授權的第三方合作夥伴。億維東方目前有多款基於ADI Blackfin處理器為核心的硬體平台的產品,其中「軟體+硬體」交鑰匙的WiFi無線視頻監控整體解決方案基於BF536+BF561的雙處理器架構,方案硬體結構圖如圖3所示。
其中BF536處理器作為主處理器,除負責完成音頻編碼、遠程式控制制以及用戶交互控制等一些基本的管理與控制外,還負責嵌入式操作系統uClinux的運行,以及先進的智能視頻分析功能,可以完成安防、人體行為、智能交通等多種智能視頻分析。雙核BF561作為協處理器負責視頻編碼演算法,其強大的視頻處理能力使得該方案實現了H.264基本類@Level3.0和MPEG4 D1+CIF雙碼流的支持,未來更將可能擴展到能夠支持H.264 D1+CIF的雙碼流。兩個處理器之間可以通過高速同步串列介面通訊,視頻信號首先進入BF561處理器,採集編碼後的碼流發送到BF536處理器,然後通過網路發送到客戶端進行解碼顯示。 圖3:採用Blackfin BF536和BF561的解決方案硬體結構圖。
該方案採用了先進的背景建模方法,能有效地克服光線變化、樹葉擺動以及水面波紋等背景對前景目標分析產生的干擾,實現准確的前景檢測,同時在目標跟蹤上採用了獨特的優化算放,實現了在入侵檢測(包括區域警戒、絆線檢測)的應用上超過90%的准確率。而所有這些都是基於BF536+BF561雙處理器的硬體架構所具有的強大處理能力來實現的。
該方案的智能視頻分析功能由億維東方公司自主開發,獨特的演算法和豐富的智能視頻分析技術開發經驗確保實現客戶的智能識別應用需求,並為客戶提供包括軟體升級在內的完善服務。由於智能視頻識別應用目前並沒有任何可循的需求標准和測試標准,因此視頻分析方案通常需要針對客戶的應用特點和需求進行方案優化。例如有些用戶是地鐵系統的,他們需要的功能是檢測是否跨越候車的黃線、人群密度是否過大、是否有可疑的遺留物體等;有些用戶是銀行系統的,他們所需要的是ATM機的智能監控如分析是否有安裝假鍵盤、安裝吞卡器,在ATM機是否有暴力行為,是否出現犯罪分子的人臉等。利用該方案,客戶可以根據用戶的需求方便地進行調整演算法。智能視頻處理要求晶元具有強大的處理能力,有許多演算法實現時得採用並行處理,Blackfin DSP在演算法並行處理上具有獨特的優勢,特別是ADSP-BF561的雙DSP核能夠實現很復雜的智能視頻處理演算法。這是傳統的MCU+ASIC或採用一般DSP方案所難以實現的。
該方案的軟硬體都經過了應用驗證,目前已經由多家客戶進行生產,目標應用將主要是政府行政效能監測、教育系統等行業用戶。