將數據從 Logstash 擷取至 Azure 數據總管
重要
此連接器可用於 Microsoft Fabric 中的即時智慧 。 使用本文中的指示,但有下列例外狀況:
- 如有需要,請使用建立 KQL 資料庫中的 指示建立資料庫。
- 如有需要,請使用建立空白數據表中的 指示建立數據表。
- 使用複製 URI 中的 指示取得查詢或擷取 URI。
- 在 KQL 查詢集中執行查詢。
Logstash 是開放原始碼的伺服器端資料處理管線,可同時從許多來源擷取資料、轉換資料,然後將資料傳送至您最愛的「隱藏」。 在本文中,您會將數據傳送至 Azure 數據總管,這是記錄和遙測數據的快速且高度可調整的數據探索服務。 您一開始會在測試叢集中建立數據表和數據對應,然後指示Logstash將數據傳送至資料表並驗證結果。
注意
此連接器目前僅支援 json 資料格式。
必要條件
- Microsoft帳戶或Microsoft Entra 使用者身分識別。 不需要 Azure 訂用帳戶。
- Azure 資料總管叢集和資料庫。 建立叢集和資料庫。
- Logstash 第 6 版+ 安裝指示。
建立表格
擁有叢集和資料庫之後,就可以建立數據表了。
在資料庫查詢視窗中執行下列命令,以建立資料表:
.create table logs (timestamp: datetime, message: string)
執行下列命令來確認已建立新的資料表
logs
,而且它是空的:logs | count
建立對應
Azure 資料總管會使用對應,將傳入數據轉換成目標數據表架構。 下列命令會建立名為 basicmsg
的新對應,從 傳入 JSON 擷取屬性,如 所 path
指出,並將其輸出至 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