iT邦幫忙

0

C#監控主機運作狀態

  • 分享至 

  • xImage

各位前輩好小弟突然想到曾遇到一個問題
現在拿出來請教一下各位
當時事由是這樣,當時公司網站的伺服器時不時因為跳電關機、當掉、斷網
//-----------------
上層需求:
1.不額外花費購買設備
2.主機有不定時關機可能性須排除
3.主機有網路斷掉但主機持續運作可能性需監控
//-----------------
後來我的解決方案是
1.使用主機原生地BIOS設定若有上電自動開機+庫存UPS
2.網路線路重新布線
3.寫一個ping WebServer的程式給有電腦的人員,若斷訊會有右下角跳通知
//-----------------
最後網路跟關機問題是解決了
可在監測主機通訊是否正常連線時我大約30秒ping一次網站
但最後就會因為太過平凡的去ping主機導致IP被ROUTER擋下來
就變成了我的IP連不上公司網站但其他IP連得上公司網站
請教有沒有C#的範例或是Library24小時不兼斷的監控網站是否正常運作?
希望是以C#為範例感謝

froce iT邦大師 1 級 ‧ 2022-09-15 10:49:37 檢舉
https://ithelp.ithome.com.tw/articles/10224076
如果是要自己寫,要怎麼寫才不會被認定是濫發封包?
froce iT邦大師 1 級 ‧ 2022-09-15 11:10:53 檢舉
> 如果是要自己寫,要怎麼寫才不會被認定是濫發封包?

簡單的作法是每幾分鐘送個 url request 到web service。檢查傳回的status是不是200就行。
幾秒鐘就送當然是濫發封包。
當然這種做法根本算不上練功就是了。

不過還是建議用 libreNMS 之類專業的監控軟體。要不然你就是得熟 SNMP。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
Ray
iT邦大神 1 級 ‧ 2022-09-15 10:52:55

既然是公司網站, 應該有對外開放不限對象連線吧?
如果外部可以連的話, 直接用外面 SaaS 提供的服務就可幫你監測:
(監測數量 50 個以內免費)
UptimeRobot每五分鐘監控一次網站!讓你隨時隨地了解網站情況!

原廠網站: https://uptimerobot.com/

通知管道則有很多種, 可以發送 Email, 或是各種即時通的 API (Slack...等等), 手機只要裝即時通的 App 就可以收到.

這裡有一些串好的範例:
https://starnic-sla.mori.cloud/
https://meepshop-status.mori.cloud/
https://rl-status.mori.cloud/

請問如果是想自己寫怎麼做才不會被認定是濫發封包?
一方面想當作練功
一方面想提升相關知識

Ray iT邦大神 1 級 ‧ 2022-09-15 13:48:28 檢舉

業界共識大約都是五分鐘發一次 HTTP GET, 就不會被認定為濫發, 檢查她的 HTTP Status code 是否為 2xx 或 3xx 就認定正常; 若回 4xx, 5xx 或者 Timeoue 甚麼都沒有, 就是異常.

如果想要縮短取樣的話, 最短間隔可以縮到一分鐘, 再短就不建議了.

0
柳丁柚
iT邦新手 1 級 ‧ 2022-09-15 13:25:09

我寫過類似的python小專案
大約3分鐘測試一次
好像沒被阻擋過
提一下可能的解決方案
1.許多的ping test採用windows原生os命令
會發四次請求->調整成一次
2.改用監聽序列罩
https://www.it145.com/9/173310.html
3.我是從外網監控的,不確定有沒有差,還請知道的大大回答

1
PPTaiwan
iT邦好手 1 級 ‧ 2022-09-15 13:32:05

你的問題其中有包括了硬體的設備監測,要往另一個方向去參考 IPMI

我只能回應你針對網站與主機的監控,我的方法也剛好要 10~200 台要監控,我就寫了以下程式

[需求]

  1. 每幾分鐘回傳一次電腦狀態(CPU、RAM、HD) 來確定機器的是否正常,WinForm + WinSerice 應用開發,Linux 版也是用 C# 來寫功能都是一樣,所有的資料回傳以 Web API 的方式來處理。
  2. 每個月將電腦內所有安裝軟體資訊回傳,以利了解與控管。
  3. 有最高權限著可以遠端執行下達命令。
  4. 可以自動更新程式(此監控程式)
  5. 有後端控管程式 WebSite。

Windows 畫面
https://ithelp.ithome.com.tw/upload/images/20220915/20104851sUvhBTV7e8.png

[網站的處理]

前提 >> 網路與防火牆要控管好

  1. 定時備份,核心程式與網站會用到的雜七雜八要各別拆開。
  2. 定時檢查程式,在最後發佈版本與現有上線的版本內容是否有所不同,當有所不同時必須自動將備份上傳。
  3. 網站程式儘可能不要有 GET 的方法,都用 POST 的方式去處理。
  4. 網站與 Web API 都必須要有基本 JWT 的處理。
  5. 網站程式都以 Web API 的方法去取得資料與回寫資訊,一概不直接與 SQL / All DB 進行連線取資料的方法。

大概以上,但沒有什麼是攻不破的網站,只要有人發動 DDOS 的方法任何網站都是無法使用的,就只能靠防火牆端去檔下來了。

防火牆擋DDoS ? 那問題還是一直存在,流量依舊會在防火牆面前,只是不知會不會造成防火牆先癱瘓

現在不是在流行Web3?網上很多人在介紹,簡言之,就是用區塊鏈概念,去中心化之後,攻擊者並不會知道他的目標在什麼地方

重點是: 有沒有那麼多礦工願意加入這個圈子?

froce iT邦大師 1 級 ‧ 2022-09-15 16:52:45 檢舉

ipfs是用BT的概念做的,還沒用到區塊鍊。
另外這個只能做靜態網站。要動態的話api server還沒辦法去中心化。

DDoS流量清洗可能要ISP那層級的業者才能做。

0
japhenchen
iT邦超人 1 級 ‧ 2022-09-15 13:50:03

https://www.librenms.org/ 不香嗎?我們用的很高興

借花獻佛一下咯 https://ithelp.ithome.com.tw/articles/10224076

1
Mars
iT邦新手 4 級 ‧ 2022-09-16 09:12:05

可以參考我上次寫的監控伺服器的語法
我會寫一個 Console 程式,由 Windows 排程定時執行
每次執行就會檢查一些 CPU、硬碟、某個程式是否有在執行
如果有問題就會發送 LINE 通知

連結: https://blog.hungwin.com.tw/cshart-server-monitoring/

0
amanda_tz
iT邦新手 5 級 ‧ 2022-09-17 20:44:19

IIS應用程式池常常因為Request過多而耗盡RAM,asp.net GC來不及回收導致站台掛掉,Asp.net application計數器的Request Execution time就會變成異常地高。
初步的構想是用C# Winform在該主機執行監測,若站台的Request異常則發信撈出最新5筆事件記錄寄給系統管理員, 並重啟IIS, 也還在google找寫這個小工具的方式。

我要發表回答

立即登入回答