Ftp

Zabbix 不使用日誌更新文件中的值也不用 vfs.file.regexp物品

  • May 27, 2014

我正在使用 Zabbix 2.2。

我有一個非常具體的環境,我必須通過腳本生成所需的數據到文件,然後將該文件從主機上傳到 ftp 並從 ftp 下載到 Zabbix 伺服器。

文件下載後,我用日誌檢查它

$$ $$和 vfs.file.regexp$$ $$項目。 我使用這些項目如下:

log[/path/to/file.txt,"C.*\s([0-9]+\.[0-9])$",Windows-1250,,"all",\1]
vfs.file.regexp[/path/to/file.txt,"C.*\s([0-9]+\.[0-9])$",Windows-1250,,,\1]

我正在解析的行如下所示:

               C:      8195Mb  5879Mb  2316Mb  28.2

我要提取的值是文件末尾的 28.2。

我目前正在嘗試解決的問題是,當我更新文件時(從主機上傳到 ftp,然後從 ftp 下載到 Zabbix 伺服器),值不會更新。

我只嘗試記錄

$$ $$一開始,但我懷疑,那個日誌$$ $$將文件視為真正的日誌文件並且不檢查相同的行(儘管按照文件,它應該具有“all”值),所以我添加了 vfs.file.regexp$$ $$項目太。 日誌

$$ $$過去收到了一個值,但它沒有更新。

vfs.file.regexp$$ $$到目前為止還沒有收到任何價值。

file.txt 已經重新上傳和重新下載了幾次,情況沒有改變。

看來日誌$$ $$僅讀取文件中的新行,如果有任何更改,它不會檢查已擷取的行。 zabbix_agentd.log 文件沒有報告訪問文件的任何問題,也沒有報告正則表達式構造(它確實報告了“不支持”日誌

$$ $$鍵,當我設置錯誤時)。 我對代理使用調試日誌記錄級別 - 我沒有找到任何有關該問題的有趣資訊。

我不知道我可能做錯了什麼,也不知道 Zabbix 如何執行這些檢查。我看到了 2 個解決方案:向文件添加更多行而不是創建新行或創建新文件並使用 logrt 檢查它們

$$ $$,但那些並不能滿足我的願望。

任何幫助是極大的讚賞。

當然,如果需要,我會提供更多資訊——目前我不知道還有什麼有用的。

項目日誌

$$ $$用於逐行增長的文件,因此在您的情況下,正確的方法是堅持使用 vfs.file.regexp$$ $$. 使用 vfs.file.regexp

$$ $$,您所做的一切都是正確的,除了 Zabbix 中存在一個錯誤(報告為ZBX-8248),該錯誤會阻止正則表達式中的“$”符號匹配 Windows 行尾。 因此,為了使其同時工作,您應該從正則表達式中省略“$”。

我沒有嘗試過 Zabbix 的日誌功能,但我的猜測是日誌文件在 Zabbix 代理啟動期間打開一次,然後保持打開狀態。這意味著即使你覆蓋了你的文件,舊的文件句柄仍然保持打開狀態,Zabbix 從那裡讀取數據。

如果是這種情況,我建議您兩種解決方案:

1)以某種方式向 Zabbix 代理髮送 HUP 信號(因此它會重新打開文件以供讀取)

或者

  1. 使用External scriptZabbix 中的功能並創建一個解析文件的 shell 腳本。

引用自:https://serverfault.com/questions/597010