通過logstash-output-datahub插件,您可以將數據傳輸到DataHub中。本文介紹如何使用logstash-output-datahub插件。
前提條件
您已完成以下操作:
使用logstash-output-datahub插件
參見通過配置文件管理管道,在創建管道任務時,按照以下說明配置Pipeline參數,保存并部署后,即可觸發阿里云Logstash向DataHub傳送數據。
Logstash的Pipeline配置如下,相關參數說明請參見參數說明。
input {
elasticsearch {
hosts => ["http://es-cn-mp91cbxsm000c****.elasticsearch.aliyuncs.com:9200"]
user => "elastic"
index => "test"
password => "your_password"
docinfo => true
}
}
filter{
}
output {
datahub {
access_id => "Your accessId"
access_key => "Your accessKey"
endpoint => "Endpoint"
project_name => "project"
topic_name => "topic"
#shard_id => "0"
#shard_keys => ["thread_id"]
dirty_data_continue => true
dirty_data_file => "/ssd/1/<Logstash實例ID>/logstash/data/文件名"
dirty_data_file_max_size => 1000
}
}
重要 阿里云Logstash目前只支持在同一專有網絡下進行數據傳輸,如果源端數據在公網下,請參見配置NAT公網數據傳輸,在公網環境下進行數據傳輸。
參數說明
logstash-output-datahub插件支持的參數如下。
參數 | 類型 | 是否必選 | 說明 |
---|---|---|---|
endpoint | string | 是 | DataHub對外服務的訪問域名,詳細信息請參見域名列表。 |
access_id | string | 是 | 阿里云賬號的AccessKey ID。 |
access_key | string | 是 | 阿里云賬號的Access Key Secret。 |
project_name | string | 是 | DataHub的項目名稱。 |
topic_name | string | 是 | DataHub的Topic名稱。 |
retry_times | number | 否 | 重試次數。-1表示無限重試(默認)、0表示不重試、大于0表示按照設置的次數重試。 |
retry_interval | number | 否 | 重試的間隔,單位為秒,默認為5。 |
skip_after_retry | boolean | 否 | 當由DataHub異常導致的重試次數超過retry_times設置的值,是否跳過這一輪上傳的數據。默認為false。 |
approximate_request_bytes | number | 否 | 用于限制每次發送請求的字節數,是一個近似值,防止因Request body過大而被拒絕接收,默認為2048576(2 MB)。 |
shard_keys | array | 否 | 數據的字段名稱,插件會根據這些字段的值計算Hash值,將每條數據寫入到某個shard。 說明 shard_keys和shard_ids都未指定,默認輪詢寫入各shard。 |
shard_ids | array | 否 | 所有數據寫入指定的shard。 說明 shard_keys和shard_ids都未指定,默認輪詢寫入各shard。 |
dirty_data_continue | string | 否 | 處理數據時遇到臟數據是否繼續運行,默認為false。設置為true時,必須指定dirty_data_file文件,表示處理數據時忽略臟數據。 |
dirty_data_file | string | 否 | 臟數據文件名稱。當dirty_data_continue為true時,必須指定該參數值。 說明 處理數據時,臟數據文件會被分割成兩個部分part1和part2,part1為原臟數據,part2為替換后的臟數據。 |
dirty_data_file_max_size | number | 否 | 臟數據文件大小的最大值,單位:KB。 |
enable_pb | boolean | 否 | 是否使用pb傳輸,默認為true。如果不支持pb傳輸,請將該參數值設置為false。 |