2013-03-13 58 views
1

自18個月以來,我在Azure + SQL Azure上託管了一個非常穩定的應用程序。如何檢測Windows Azure中的惡意活動 - 查看Azure實例上傳入的HTTP請求的方式?

由於星期一我在SQL Azure中獲得了隨機的長時間的死鎖,它只是阻止數據庫中的任何更新數小時。

然後就這樣了。然後它回來。

這與實例無關,因爲網站的「閱讀」部分正常。

  • 我對每個閱讀器請求都使用WITH(NOLOCK),因爲在我的情況下,一致性並不重要。因此,azure中的datareader可以工作,但每次更新都會拋出一個SQL Timeout連接。

  • 我確實在Windows Azure SQL中使用重試邏輯來處理瞬態故障。

  • 一個集中的數據庫服務於幾個網站,交通服務大約每天25K個訪問日,18個月以來我從來沒有遇到問題,目前的交通從上週沒有跳過,一切正常。

我不知道會發生什麼。而且,我第一次發現自己被困在雲中,沒有一種具體的方式來控制任何東西。

也許是一次攻擊。那麼如何在Azure中檢測到這一點?有沒有辦法看到Azure實例上的傳入HTTP請求?

+0

Jérôme,你發現了什麼導致問題在這裏? – QFDev 2013-03-15 10:12:41

回答

1

雖然分析請求是一個開始的地方,但另一個地方是要準確理解數據庫中發生了什麼。這就是你正在解決問題的地方,對吧?如果你能找到流氓查詢,你應該找一個更好的地方來追蹤源代碼。不幸的是,Windows Azure SQL數據庫並不能爲您提供SQL Server可用的完整選項(例如性能分析),但有一些幫助。看看system views - sys.dm_exec_query_statssys.dm_tran_active_transactions可能是開始的好地方。通過每個視圖瞭解正好什麼都顯示。這將使您更好地瞭解數據庫中發生的情況,而不管您有什麼具體問題,這都是很好的信息。

如果您可以重新部署,請絕對嘗試Newrelic,該代理將您自己的應用程序作爲分析器掛鉤並提供有用的信息。如果您遇到嚴重問題,即使您在解決問題時只註冊試用期,也是值得的。請注意,Newrelic工作起來有點費勁,而且似乎不支持Azure上的.NET 4.5目標平臺。

+0

好的,我檢查了你的答案,因爲我必須選擇一個,你的建議很有趣。 事實上,簡單地將數據庫移動到另一個SQL Azure服務器似乎已經解決了這個問題。我不確定爲什麼,並懷疑先前的Azure服務器出現故障,這是我到目前爲止唯一的解釋。 – 2013-03-14 17:03:57

+0

這不是一個好兆頭,但有用的記住 – 2013-03-15 17:43:03

0

有點快速的谷歌應該指向你描述如何從Azure導出你的IIS日誌的文章。然後你就可以解析它們,就像你在本地運行IIS一樣。

但是,如果您遇到了這些問題,並且他們在沒有您進行更改的情況下突然啓動,那麼您可能希望僅與Microsoft支持人員聯繫。

0

您可以查看管理門戶中的CPU活動,儘管限制它可能允許您收集一些信息。您的網絡角色收集服務器日誌?如果是這樣,你可以使用像Cerebrata Diagnostics Manager這樣的工具來可視化日誌文件。

+0

我會嘗試Cerebrata。 CPÜ的活動很低,問題確實在於SQL AZURE,我現在正在調查索引問題,但看起來碎片率在14%以下的情況下更糟糕,重建僅在北部30%的情況下推薦。此外,這個應用程序自一個月起就像一個魅力,發生了什麼?另外,SQL Azure似乎不會釋放鎖,現在我的數據庫上根本沒有更新。 – 2013-03-13 20:56:22

0

如果您不介意使用第三方服務&產品,並且需要主動監控您當前的請求/秒或SQL Azure數據庫上的負載(活動查詢,阻止查詢,打開的連接等) AzureWatch @http://www.paraleap.com - 這是一個專門用於Azure的監視服務,並會在您的角色或SQL Azure數據庫出現任何問題的幾秒鐘內提醒您。

相關問題