2016-08-11 205 views
0

我的公司擁有300多臺基於Windows CE 5.0的移動設備,它們在白天都與Direct Store Delivery使用相同的軟件和使用模式,然後每天晚上在家中進行Tcom。有一件未知事件會導致設備在一天中間出現異常並重新啓動。每週6天,每週都會重新啓動計算機,這個問題的發生頻率爲每週10次左右。數學是300 * 6 = 1800每週(至少)10/1800 = 0.5%。我意識到這個數字很低,但比我的老闆想要的要多。日誌文件的數據分析 - 如何查找模式?

我的挑戰是找到一種方法來掃描數千個logfille.txt文件並嘗試找到某種模式。我知道這裏有一個模式。我已經有了一些關於從哪裏開始的想法,但是我想把它推薦給社區,看看你們可能會有哪些建議。

在這個問題上的一些背景。應用程序在每次啓動時啓動一個新的日誌文件。在一個有序的(控制)日誌文件中,您會看到應用程序的啓動,整天都在做它的事情,然後在8-10小時後以有序的方式啓動關機過程。在問題日誌文件中,您會看到設備啓動,然後日誌在不到8小時的時間內完全停止,並且沒有任何關閉順序。然後它會啓動一個新的日誌文件,它與重命名過程中創建的logfile1.old具有相同的日期。我們擁有的應用程序是由不在公司的Windows開發人員在家開發的。更好的是,他們目前還不知道誰有消息來源。

我知道可用於檢測內存泄漏(DevHealth,零售消息等)的各種CE工具,並且我們也在研究該路線,但是我確信存在一種模式被發現,我只是不夠聰明,找不到。必須有一種方法可以使用Perl或Python來完成,而我只是沒有看到。這裏有兩個想法。

想法1 - 尋找詞用法的趨勢。 創建整個日誌文件中使用的每個唯一字的數組,並輸出每個字的計數。一旦我計算了正在使用的單詞數量,我就可以對它們運行一些統計數據並查找非正常事件。也許「紫色」這個詞在一個1000行的日誌文件中使用了500次(可能有一些數學問題?),而在500行問題日誌中只有4次?也許有一個獨特的詞,只有在問題文件中才能看到。也許我可以得到一個反向的「詞雲」?

想法2 - 將行分類爲入門類型,然後查找入門類型序列中的趨勢? 日誌文件已經有一個可預測的模式,看起來像這樣= =水平|日期|時間|系統|源|消息
我99%肯定有一個可見的模式,我找不到。所有的日誌都變成了「超級冗長冗長」,所以有一小堆絨毛(每秒25個日誌文件,每個文件40K行),這使得這更加具有挑戰性。如果沒有一個獨特的詞,那麼這幾乎是真的。我該怎麼做呢?

項目3 - 僱用一個Windows CE平臺開發人員 是的,我們也正在走這條路,但我知道有一個我失蹤的模式。他們將使用我沒有的工具)或製作我們需要的工具來弄清楚發生了什麼。我懷疑可能會有內存泄漏,無線電事件或其他我肯定會展示的平臺工具的事件。

項目4 - 我甚至沒有想到你曾經使用過的東西。 有一些工具可以做到這一點,它不像一個執行得很好的python腳本那樣有聲望,我願意沿着這條路走下去,我只是不知道這些工具是什麼。

哦,是的,我不能發佈日誌文件到網上,所以不要問。用戶很有希望在看到它們時報告趨勢,但我並不十分樂觀。所有我需要找到的是日誌中的模式或複製步驟

所以你有它。我甚至可以用什麼工具或技術來開始呢?

回答

0

這個問題根本沒有輸入數據,所以這個答案基本上是純粹的理論,你可以考慮一些想法。

  1. 要analize模式了一堆許多日誌,你肯定可以創造一些圖形顯示相關數據,可能有助於縮小問題的,蟒蛇真的爲這些類型的任務非常好。

  2. 您也可以將日誌轉換/插入到數據庫中,這樣您就可以更快地查詢相關的可疑事件,甚至可以大量比較所有日誌。

  3. 一個更簡單的方法可能只是關注顯示崩潰的簡單日誌,而不是浪費大量努力或資源試圖找到某種通用模式,首先閱讀一個簡單的日誌以捕捉可疑的「事件「,可能會導致崩潰。

  4. 這些類型的棘手問題我最喜歡的方法是不同於以前的方法,而不是專注於分析或甚至解析日誌我只是試圖在當地以確定性的方式重現bug/s(你不要甚至不需要擁有源代碼)。有時在開發環境中複製生產環境非常困難,但絕對是時間投入的。您在此過程中付出的所有努力將幫助您不僅解決這些錯誤,還可以更快地提高軟件質量。請記住,你能夠越多地迭代越好。

  5. 另一種方法可能只是編寫一個小腳本,它可以讓你重播崩潰的日誌,但不確定這在你的環境中是否容易。通常這種策略對於使用Web服務的生產軟件來說工作得非常好,其中會有大量的數據請求和數據檢索的元組。

在任何情況下,如果沒有看到日誌中的數據類型,我不能更具體,也不能提供更具體的細節。

0

想知道你是否看過ELK堆棧?這是elasticsearch,kibana和log stash的縮寫,並且與您的使用案例密切相關;它經常用於分析大量的日誌文件。

Elasticsearch和kibana爲您提供了一個界面,可讓您以交互方式探索和繪製趨勢圖數據。在Linux平臺上設置非常強大而且非常簡單,並且也有Windows版本。 (花了我一兩天的時間,但你從中獲得了很多功能)。軟件可以免費下載和使用。你可以在類似的想法/ 2

https://www.elastic.co/webinars/introduction-elk-stack

http://logz.io/learn/complete-guide-elk-stack/

關於Python/4想法的問題(這麋鹿可以考慮的一部分),我沒有做過這樣的風格使用對於日誌文件,但我已經使用正則表達式來搜索和使用Python從文檔中提取文本模式。如果您在尋找某種模式上有一些潛在客戶,這也可以幫助您找到模式。

只是想一想;希望他們幫助。