將資料從 Logstash 擷取至 Azure 資料總管
重要
此連接器可用於 Microsoft Fabric 中的 即時分析 。 使用本文中的指示,但有下列例外狀況:
- 如有需要,請使用 建立 KQL 資料庫中的指示來建立資料庫。
- 如有需要,請使用 建立空白資料表中的指示來建立資料表。
- 使用 複製 URI中的指示取得查詢或擷取 URI。
- 在 KQL 查詢集中執行查詢。
Logstash 是開放原始碼的伺服器端資料處理管線,可同時從許多來源擷取資料、轉換資料,然後將資料傳送至您最愛的「隱藏」。 在本文中,您會將該資料傳送至 Azure Data Explorer,這是記錄和遙測資料的快速且高度可調整的資料探索服務。 您一開始會在測試叢集中建立資料表和資料對應,然後指示 Logstash 將資料傳送至資料表並驗證結果。
注意
此連接器目前僅支援 json 資料格式。
必要條件
建立資料表
具備叢集和資料庫之後,即可建立資料表。
在資料庫查詢視窗中執行下列命令,以建立資料表:
.create table logs (timestamp: datetime, message: string)
執行下列命令,確認新的資料表
logs
已建立,並且是空的:logs | count
建立對應
Azure 資料總管會使用對應將傳入的資料轉換成目標資料表結構描述。 下列命令會建立名為 basicmsg
的新對應,以依照 path
的指示從傳入的 Json 擷取屬性,並將其輸出至 column
。
在查詢視窗中執行下列命令:
.create table logs ingestion json mapping 'basicmsg' '[{"column":"timestamp","path":"$.@timestamp"},{"column":"message","path":"$.message"}]'
安裝 Logstash 輸出外掛程式
Logstash 輸出外掛程式會與 Azure 資料總管通訊,並將資料傳送至服務。 如需詳細資訊,請參閱 Logstash 外掛程式。
在命令殼層中,流覽至 Logstash 根目錄,然後執行下列命令來安裝外掛程式:
bin/logstash-plugin install logstash-output-kusto
設定 Logstash 以產生範例資料集
Logstash 可產生用來測試端對端管線的範例事件。 如果您已使用 Logstash,並且可以存取您自己的事件串流,請跳至下一節。
注意
如果要使用您自己的資料,請變更前幾個步驟中所定義的資料表和對應物件。
編輯將包含必要管線設定的新文字檔 (使用 vi):
vi test.conf
貼上下列設定,以指示 Logstash 產生 1000 個測試事件:
input { stdin { } generator { message => "Test Message 123" count => 1000 } }
這項設定也包含 stdin
輸入外掛程式,此外掛程式可讓您自行撰寫更多訊息 (請務必使用 Enter 鍵將其提交至管線中)。
設定 Logstash 以將資料傳送至 Azure 資料總管
將下列設定貼到上一個步驟所使用的相同組態檔中。 請將所有預留位置都取代為設定的相關值。 如需詳細資訊,請參閱建立Microsoft Entra應用程式。
output {
kusto {
path => "/tmp/kusto/%{+YYYY-MM-dd-HH-mm-ss}.txt"
ingest_url => "https://ingest-<cluster name>.kusto.windows.net/"
app_id => "<application id>"
app_key => "<application key/secret>"
app_tenant => "<tenant id>"
database => "<database name>"
table => "<target table>" # logs as defined above
json_mapping => "<mapping name>" # basicmsg as defined above
}
}
參數名稱 | 描述 |
---|---|
path | Logstash 外掛程式會先將事件寫入至暫存檔,再傳送至 Azure 資料總管。 此參數會包含應寫入檔案的路徑,以及檔案輪替在觸發上傳至 Azure 資料總管服務的動作時所使用的時間運算式。 |
ingest_url | 擷取相關通訊的 Kusto 端點。 |
app_id、 app_key和 app_tenant | 連線至 Azure 資料總管所需的認證。 請務必使用具有擷取權限的應用程式。 |
database | 要放置事件的資料庫名稱。 |
table | 要放置事件的目標資料表名稱。 |
json_mapping | 對應可用來將傳入事件 Json 字串對應至正確的資料列格式 (定義哪個屬性會進入哪個資料行)。 |
執行 Logstash
我們現在已準備好執行 Logstash 並測試我們的設定。
在命令殼層中,流覽至 Logstash 根目錄,然後執行下列命令:
bin/logstash -f test.conf
您應該會看到列印在畫面上的資訊,然後看到我們的範例組態所產生的 1000 則訊息。 此時,您也可以手動輸入更多訊息。
在幾分鐘後執行下列資料總管查詢,以在您定義的資料表中查看這些訊息:
logs | order by timestamp desc
選取 Ctrl+C 以結束 Logstash
清除資源
在資料庫中執行下列命令,以清除 logs
資料表:
.drop table logs
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應