當前位置:
首頁 > 最新 > 基於Pyinotify打造系統完整性檢測工具

基於Pyinotify打造系統完整性檢測工具

本篇文章介紹了Pyinotify的特性、如何安裝及使用示例,方便入門學習。

回顧上篇文章:你真的會使用搜索引擎嗎?

特性

Pyinotify 是一個監控文件系統變化的 Python 模塊,Pyinotify 是基於一個叫 inotify 的 Linux 內核功能而開發的。inotify 是一個事件驅動通知程序,它的作用是通過系統調用將系統事件從內核態導出到用戶態。Pyinotify 綁定了這些系統調用,並且在其上提供了一系列的介面實現,提供通用和抽象的方式來操作這些功能。

安裝

使用 Python 的 pip 工具安裝 Pyinotify 模塊。

Quick start

安裝好 Pyinotify 後,你可以參考下面的例子來快速的使用 Pyinotify 監控指定文件或目錄變化。如果你指定了一個目錄,Pyinotify 將監聽這個目錄下的所有文件,但不會監聽子目錄。

下面讓我們對 / tmp 目錄進行一些操作:

操作命令的同時 pyinotify 會監聽到命令所產生的事件:

值得注意的是,Pyinotify 默認監聽系統產生的所有事件。

默認事件欄位解讀如下:

Pyinotify 事件列表

使用示例

了解 Pyinotify 以及它所支持的系統事件後,我們可以覆寫 Pyinotify 的事件方法,將事件輸出成指定的格式。

code:

運行示例代碼後,下面讓我們對 / tmp 目錄再次進行操作:

同時 Pyinotify 按照我們預期的結果將事件進行輸出:

以上的示例代碼中監聽了所有事件,若想監聽部分事件請修改 add_watch 參數部分:

你可以增加更多的事件方法,監控更多的系統關鍵目錄。

總結

目前 Unix/Linux 下有許多類似的檢查工具,如 Tripwire、Afick 等。這樣的工具配置使用起來相對簡單,但是不能重新定義系統產生的事件,事件報告需要通過郵件輸出。使用 Pyinotify 可以根據使用需求進行簡單開發並使用。它的好處是可以很方便的集成到各個系統,系統產生的事件數據還可以稍作整理然後推送到 ELK、OpenFalcon 等平台進行可視化展示和告警。

Pyinotify 更多的功能請參考官方用例:

https://github.com/seb-m/pyinotify/wiki/List-of-Examples


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小米運維 的精彩文章:

nginx+lua 入門

TAG:小米運維 |