Logstash FAQ
本文介紹使用阿里云Logstash的常見問題。
使用自建Kafka作為L(zhǎng)ogstash的輸入或者輸出時(shí),出現(xiàn)錯(cuò)誤日志,如何處理?
通過logstash同步數(shù)據(jù)時(shí)報(bào)錯(cuò) "[routing] is missing for join field [joinField]", 是什么原因?
Logstash支持將數(shù)據(jù)源配置為DRDS嗎?
支持??蓞⒖糝DS MySQL數(shù)據(jù)遷移方案進(jìn)行配置,具體操作請(qǐng)參見通過Logstash將RDS MySQL數(shù)據(jù)同步至Elasticsearch。
如何將公網(wǎng)數(shù)據(jù)導(dǎo)入或?qū)С龅絃ogstash中?
Logstash實(shí)例部署在專有網(wǎng)絡(luò)VPC(Virtual Private Cloud)下,可以通過配置NAT網(wǎng)關(guān)實(shí)現(xiàn)與公網(wǎng)的連通。具體操作,請(qǐng)參見配置NAT公網(wǎng)數(shù)據(jù)傳輸。
使用自建Kafka作為L(zhǎng)ogstash的輸入或者輸出時(shí),出現(xiàn)錯(cuò)誤日志,如何處理?
常見錯(cuò)誤日志如下:
No entry found for connection
原因:Logstash節(jié)點(diǎn)無法解析到Kafka服務(wù)的hostname對(duì)應(yīng)的IP地址。
解決方法:在
server.properties
中添加配置信息,以Kafka服務(wù)運(yùn)行在10.10.10.10的9092端口為例,配置信息如下。listeners=PLAINTEXT://10.10.10.10:9092 advertised.listeners=PLAINTEXT://10.10.10.10:9092
重要在配置信息時(shí),請(qǐng)將
10.10.10.10:9092
替換為您Kafka集群的IP地址和端口號(hào)。推薦您使用阿里云Kafka服務(wù),并且保證Logstash所在節(jié)點(diǎn)的IP地址在Kafka的訪問白名單內(nèi)。
could not be established. Broker may not be available
原因:Kafka服務(wù)不存在或者無法連接。
解決方法:檢查Kafka服務(wù)是否正常運(yùn)行,或者Logstash管道配置中的
bootstrap_servers
配置是否正確。
阿里云Logstash的JDBC支持MySQL數(shù)據(jù)庫(kù)嗎?
支持。需要上傳mysql-connector-java驅(qū)動(dòng)文件,具體操作請(qǐng)參見配置擴(kuò)展文件。
Logstash支持節(jié)點(diǎn)監(jiān)控嗎?
支持??赏ㄟ^配置X-Pack,關(guān)聯(lián)阿里云Elasticsearch實(shí)例后,在Kibana中監(jiān)控Logstash節(jié)點(diǎn)。具體操作,請(qǐng)參見配置X-Pack監(jiān)控。
Logstash支持上傳腳本文件嗎?
不支持。目前,Logstash只支持通過Config配置文件配置管道,實(shí)現(xiàn)數(shù)據(jù)傳輸。詳細(xì)信息,請(qǐng)參見通過配置文件管理管道。
Logstash支持配置HTTP采集協(xié)議嗎?
支持。Logstash支持通過HTTP或HTTPS接收單行或多行事件,詳細(xì)信息請(qǐng)參見Http input plugin。
阿里云Logstash默認(rèn)不提供公網(wǎng)訪問能力,如果您需要采集公網(wǎng)HTTP請(qǐng)求,可通過配置NAT網(wǎng)關(guān)實(shí)現(xiàn)。具體操作,請(qǐng)參見配置NAT公網(wǎng)數(shù)據(jù)傳輸。
如何通過Logstash,將日志服務(wù)數(shù)據(jù)同步到Elasticsearch上?
您可以通過logstash-input-sls插件實(shí)現(xiàn),具體操作請(qǐng)參見logstash-input-sls插件使用說明。
Logstash能夠?qū)崟r(shí)同步數(shù)據(jù)嗎?
Logstash是準(zhǔn)實(shí)時(shí)同步工具。只要您不停止管道任務(wù),且源端有數(shù)據(jù),Logstash就會(huì)一直向目標(biāo)端寫入數(shù)據(jù)。
通過logstash同步數(shù)據(jù)時(shí)報(bào)錯(cuò) "[routing] is missing for join field [joinField]"
, 是什么原因?
包含子文檔的數(shù)據(jù)路由值是強(qiáng)制性的,父文檔和子文檔必須保持寫入同一分片。建議設(shè)置目標(biāo)端索引主分片為1,同時(shí)管道中增加參數(shù)routing =>"0"
。
管道創(chuàng)建后,進(jìn)程卡住了,實(shí)例變更進(jìn)度不變,如何處理?
查看實(shí)例的主日志是否有報(bào)錯(cuò),根據(jù)報(bào)錯(cuò)判斷原因,具體操作請(qǐng)參見查詢?nèi)罩?/a>。常見的原因及解決方法如下。
原因 | 解決方法 |
管道配置錯(cuò)誤。 | 中斷變更,等到實(shí)例處于變更中斷狀態(tài)后,修改管道配置,觸發(fā)重啟恢復(fù)。具體操作,請(qǐng)參見查看實(shí)例任務(wù)進(jìn)度詳情。 |
集群磁盤使用率過高。 | 升級(jí)實(shí)例規(guī)格。具體操作,請(qǐng)參見升配集群。完成后,刷新實(shí)例,觀察變更進(jìn)度。 |
output為elasticsearch時(shí),沒有開啟Elasticsearch實(shí)例的自動(dòng)創(chuàng)建索引功能。 | 開啟Elasticsearch實(shí)例的自動(dòng)創(chuàng)建索引功能。具體操作,請(qǐng)參見配置YML參數(shù)。完成后,刷新實(shí)例,觀察變更進(jìn)度。 |
input為beats時(shí),port沒有使用8000~9000的端口。 | 中斷變更,等到實(shí)例處于變更中斷狀態(tài)后,在管道配置中,修改port為8000~9000的端口,觸發(fā)重啟恢復(fù)。 |
源端或目標(biāo)端都使用了外網(wǎng)地址。 | 選擇以下任意一種方式處理:
|
管道配置中包含了file_extend,但沒有安裝logstash-output-file_extend插件。 | 選擇以下任意一種方式處理:
|
Logstash私網(wǎng)地址是否能ping通?
Logstash私網(wǎng)地址默認(rèn)禁止ping,可以使用telnet測(cè)試。
Logstash在兩個(gè)Elasticsearch之間同步數(shù)據(jù),如何保證mapping一致?
阿里云Elasticsearch為了保證用戶操作數(shù)據(jù)的安全性,默認(rèn)將自動(dòng)創(chuàng)建索引配置設(shè)置為不允許。阿里云Logstash在傳輸數(shù)據(jù)的時(shí)候,使用提交數(shù)據(jù)的方式創(chuàng)建索引,而不是Create index API自動(dòng)創(chuàng)建索引的方式。所以在使用阿里云Logstash上傳數(shù)據(jù)之前,需要先把集群的自動(dòng)創(chuàng)建索引設(shè)置為允許,或提前創(chuàng)建好索引和mapping。
阿里云Logstash支持rubydebug模式嗎?
不支持。阿里云Logstash提供logstash-output-file_extend插件來打印調(diào)試日志,不推薦使用stdout,并且沒提供相關(guān)的接口,因此不支持rubydebug等模式。