rsyslog 隊列介紹

rsyslog中有兩種類型的隊列

  1. main隊列,主要是將input進rsyslog的數據放于其中,等待處理;
  2. action隊列,當message進入到main隊列之后,filter engine會對從main隊列中讀取數據,并將message發送到action隊列,等待action將數據通過各種不同的output發到其他日志中轉介質。
    介紹http://www.rsyslog.com/doc/queues.html 隊列相關概念,具體如圖下
    rsyslog隊列圖

rsyslog有四種隊列設置:

1. direct queues:其實就是不進行處理,當接受方不能處理時便丟棄
2. disk queues:使用磁盤作為緩沖處理,這種隊列有一個特點就是不會使用任何內存空間進行隊列緩沖,所以這種隊列處理是可靠處理。同時由于進行磁盤讀寫所以這種隊列也是最慢的一種隊列模式。這種隊列處理比較適合那種對數據安全性要求較高的日志處理。
3. in-memory queues:使用內存作為緩沖,這種模式的速度最快,當然它不能逃脫系統故障。它甚至可以在目標系統down掉的情況下緩存日志文件。另外它不會在內存以外的地方緩存日志,但是當發送端出現問題的時候內存中的日志就over了。
它有兩種模式:LinkedList:動態分配; FixedArray:預分配。
4. disk-assisted memory queues:當一個disk queue 的QueueFileName被定義在in-memory queues隊列設置中時,這個in-memory queue 會自動變成disk-assisted memory queue。這種隊列模式集成了disk-queue和in-memory queue 的優點,當primary queue滿了或者需要關閉rsyslog的時候就會激活disk-queue的磁盤讀寫。
這種隊列官方推薦為通過 tcp action 發數據到database場景下的隊列。
原理:首先其內部設定了兩個變量:high watermark和low watermark,當queue達到high watermark 時,會將message寫進disk queue,直到達到 low watermark。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容