Graylog: 選擇輸入格式
本文件是選擇輸入類型指南的一部分。請在此處查看完整指南:如何選擇正確的 Graylog 輸入類型。
👋 歡迎使用 Stackhero 文件
Stackhero 提供全代管的 Graylog cloud 解決方案,專為速度與簡易性設計。您可以:
- 依賴隨服務附贈的無限制、專屬 SMTP 電子郵件伺服器。
- 只需一鍵即可輕鬆更新,無需手動操作。
- 使用由 HTTPS 保護的自訂網域名稱(例如 https://logs.your-company.com),讓您的團隊能安全且直接地存取。
- 在專屬私有基礎架構上享有卓越的效能與安全性,無需與他人共用資源,也沒有「吵雜鄰居」問題。
專注於您的資料,而非工具本身:只需幾分鐘,即可開始使用 Stackhero 的 Graylog cloud hosting 解決方案。
第一步是選擇您的日誌訊息格式。主要有三種選項:RAW/Plaintext、Syslog 或 GELF。
RAW/Plaintext 格式
這是最簡單的格式。它適用於任何系統,因為它傳送的是純文字訊息。非常容易使用,非常適合初步測試,例如使用 netcat 工具傳送訊息。
要測試時,您可以建立一個「Raw/Plaintext UDP」輸入,然後使用以下其中一條指令傳送測試日誌:
- macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Linux:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
是不是很簡單?但由於這是基礎格式,很快就會遇到限制。因此,我們不建議將它用於簡單測試以外的情境。
Syslog 格式
這是一種廣泛用於伺服器環境中儲存與傳送日誌的知名格式。您可以在 Linux、Windows、*BSD 及其他作業系統中找到它。
如果您正在使用 Syslog、Rsyslog 或其他相容服務,並希望從伺服器傳送日誌到 Graylog,syslog 輸入是最簡單的選擇。
不過,由於 GELF 更加強大,如果您能以 GELF 格式傳送訊息,我們建議您這麼做,詳情請見下文。
請注意,syslog 格式的訊息長度限制為 1024 個字元。
GELF 格式(推薦)
GELF 代表「Graylog Extended Log Format」。這個格式由 Graylog 創建,現已被許多產品廣泛採用,成為業界標準。
GELF 格式的優勢在於它能以結構化方式傳送日誌。結構化日誌讓您可以傳送多個欄位與數值,而不是單一未結構化的文字訊息。這讓 Graylog 更容易解析與檢索資訊。
例如,若您想傳送一則包含 IP 位址與請求類型的日誌,可以傳送一則包含 ip 與 request_type 兩個欄位的訊息。在 Graylog 端,您可以直接針對這些欄位查詢,例如搜尋所有 request_type: POST 的請求。
GELF 以 JSON 為基礎,至少必須包含 version、host 與 short_message 欄位。您也可以加入其他欄位,但必須以底線(_)開頭。
例如,包含額外欄位 device_id 的簡單訊息如下:
{
"version": "1.1",
"host": "myIotDevice",
"short_message": "Something is happening",
"_device_id": "abcd"
}
之後,您可以在 Graylog 上用查詢 device_id: abcd 搜尋所有來自 "abcd" 裝置的訊息。
更多 GELF 詳細資訊,請參考官方規範:https://docs.graylog.org/en/4.0/pages/gelf.html。
如果您想從伺服器或應用程式傳送日誌,可以使用許多現成的函式庫自動建立並傳送訊息。範例可參考 Node.js、.NET 及 Python。