logfmon Google Log 行事曆 日誌

指令列串接Google日曆 打造超炫全自動系統日誌

2016-05-24
Google提供的服務很多,透過即時監控系統記錄的方式,就能夠利用命令列型式的行事曆管理程式,將相關的系統事件記錄至Google行事曆內,輕鬆打造出全自動系統日誌。
·add:新增行事曆功能,這也是本文最主要會用到的功能,使用語法如下:


以下說明這個指令中各個欄位的代表意義:

--calendar:設定要增加行事曆事件資訊的行事曆名稱,行事曆名稱可由「gcalcli list」指令來取得。

--title:設定行事曆事件上的標題。

--where:設定行事曆事件所在的地點。

--when:設定行事曆事件的時間,時間格式為「月/日/西元年 時:分」,例如「03/14/2016 10:00」。

--duration:該行事曆事件持續的時間,以分鐘為單位,例如「duration 60」即表示該行事曆事件持續60分鐘,或者設定「--allday」表示該事件持續一整天。

--description:描述該行事曆事件的詳細內文。

--reminder:設定在多早之前必須利用某種方式來提醒使用者該行事曆事件的時間,其格式為「--reminder ‘時間 通知方式’」。其中時間可設定單位為w(weeks,週)、d(days,日)、h(hours,時)、m(minutes,分)。通知方式可分為popup(在登入時以彈出視窗來提醒使用者)、email(以電子郵件的方式通知使用者)以及sms(以簡訊通知使用者,不過經筆者測試結果,此功能似乎不會正常運作)。

以下範例則表示在行事曆事件開始前5分鐘,以電子郵件的方式通知使用者:


如圖5所示,則為設定新增行事曆的指令以及相對於該行事曆事件的資訊。


▲圖5 設定新增行事曆之指令及相對於該行事曆事件的資訊。

·delete:以關鍵字或時間區間來刪除行事曆事件,使用語法如下:


如圖6所示,為刪除含有HTTP字樣的行事曆事件。


▲圖6 刪除含有HTTP字樣的行事曆事件。

在了解gcalcli相關用法後,筆者撰寫一個簡單的Perl程式(檔案名稱為setcal.pl)來設定新增行事曆事件:


這個程式由使用者指定「行事曆事件標頭」及「行事曆事件內文」的傳入參數,即可新增行事曆事件,如下例:


簡介logfmon

如果說魔鬼藏在細節裡,那系統的細節即是藏在系統記錄(Log)中,只要能掌握系統記錄,就可以完整掌握系統狀況。

一般來說,系統記錄通常儲存在檔案內,具有資訊繁雜的特性,令人無法即時有效地分析系統記錄的內容,進而獲知系統的狀態,所以如果想要即時掌握檔案型的系統記錄,必須具有下列兩項功能:

1. 能夠即時地監控系統記錄檔內容變化,一旦發現有 新增情況,可立即取出該新增的的資訊做分析。

2. 可利用樣式(Pattern,最好是可支援正規表示法) 來解析該新增的樣式,進而判別該新增資訊的事件。


▲圖7 比對流程。

而開源碼社群中知名的logfmon,正好可以完整地支援上述的兩項功能。

logfmon是一種即時監控Linux系統檔案變動情況的程式,主要利用正規表示法(Regular Expression,RE)來設定規則樣式,一旦所監控的檔案內容發生變動,就與此規則樣式進行比對,並根據比對的結果來決定是否要執行使用者自定義的指令或程式。相關比對流程如圖7所示。

接著就來安裝logfmon程式,先至「http://sourceforge.net/projects/logfmon/」網頁取得最新版本(本文使用1.1版)。解壓縮後,直接使用make編譯。在編譯過程中,可能會發生找不到y.tab.h的錯誤訊息而編譯失敗。

碰到這種情況時,只要利用「make y.tab.c y.tab.h」指令產生y.tab.h,再重新執行下列指令即可:


logfmon僅提供一個主程式(檔名為logfmon)及主要組態檔(預設檔名是logfmon.conf)。在logfmon原始碼目錄下的「example」目錄內提供了相關範本組態檔,可用來參考。接著,說明logfmon常用的組態:


以下是logfmon.conf組態檔中常用的組態設定:

·User:設定執行logfmon時所使用的使用者權限。
·Group:設定執行logfmon時所使用的權組權限。
·File:設定所要監控的檔案,其語法如下:



追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!