Logstash數(shù)據(jù)寫入問題排查方案
在使用阿里云Logstash將數(shù)據(jù)寫入阿里云Elasticsearch(output指定為阿里云Elasticsearch)時,您可能會遇到網(wǎng)絡(luò)不通、管道配置錯誤、負(fù)載高、管道正常啟動但無數(shù)據(jù)寫入目標(biāo)端以及服務(wù)正常但缺少數(shù)據(jù)等問題,此時您可以參考本文的排查方案進行排查解決。
網(wǎng)絡(luò)不通
排查方案 | 常見錯誤案例 | 建議解決方案 |
分別檢查Logstash是否與源端和目標(biāo)端服務(wù)在同一網(wǎng)絡(luò)下。 說明 阿里云Logstash和阿里云Elasticsearch服務(wù)部署在專有網(wǎng)絡(luò)環(huán)境下,建議您將業(yè)務(wù)部署在相同的專有網(wǎng)絡(luò)下。 | 源端服務(wù)在公網(wǎng)環(huán)境下,而Logstash在專有網(wǎng)絡(luò)環(huán)境下。 | 選擇以下任意一種方式處理:
|
檢查NAT配置是否錯誤。 |
| 根據(jù)具體情況,按照以下方式處理:
|
檢查是否上傳了正確的JDBC驅(qū)動插件。 | PolarDB數(shù)據(jù)同步場景中,使用高版本的JDBC驅(qū)動,日志無報錯,但數(shù)據(jù)寫不到目標(biāo)端,換成低版本后正常。 | 選擇正確版本的JDBC驅(qū)動,詳細(xì)信息請參見配置擴展文件。 |
檢查白名單或安全組是否有限制。 | 通過Filebeat將數(shù)據(jù)采集到Logstash中處理,F(xiàn)ilebeat部署在用戶側(cè)ECS上,但ECS未在安全組開放監(jiān)聽端口。 | 根據(jù)具體情況,按照以下方式處理:
|
檢查Logstash管道配置的源端或目標(biāo)端是否涉及到RAM用戶未授權(quán),導(dǎo)致RAM用戶無法訪問對應(yīng)服務(wù)。 |
| 根據(jù)具體情況,按照以下方式處理:
|
管道配置錯誤
排查方案 | 常見錯誤案例 | 建議解決方案 |
未安裝插件。例如日志中出現(xiàn) | 選擇以下任意一種方式處理:
| |
配置中存在隱藏的特殊字符。 | 手動輸入配置。 | |
filter過濾代碼有誤,例如ruby代碼存在錯誤。 | 選擇以下任意一種方式處理:
| |
管道參數(shù)名或參數(shù)值寫入錯誤。例如logstash-output-elasticsearch插件中的hosts寫成了host、RDS實例名稱不正確等。 | 參見Logstash官方文檔或阿里云Elasticseatch官方最佳實踐文檔編寫管道配置。 | |
Logstash和源端或目標(biāo)端連接超時。例如無法訪問Elasticsearch時,會出現(xiàn) | 確保Logstash和Elasticsearch網(wǎng)絡(luò)互通,并輸入正確的源端和目標(biāo)端地址。 | |
Elasticsearch開啟了HTTPS協(xié)議,但Logstash管道配置時使用了http。 | 修改管道配置,使用與源端和目標(biāo)端相同的訪問協(xié)議。 |
負(fù)載問題
排查方案 | 常見錯誤案例 | 建議解決方案 |
參見集群監(jiān)控章節(jié),檢查節(jié)點磁盤使用率是否過高。 |
| 根據(jù)具體情況,按照以下方式處理:
|
參見集群監(jiān)控章節(jié),檢查節(jié)點內(nèi)存是否溢出OOM(Out Of Memory)。 | 內(nèi)存OOM,節(jié)點未拉起。 | 在控制臺重啟對應(yīng)節(jié)點。 |
檢查源端或目標(biāo)端是否存在負(fù)載問題。 | Elasticsearch集群不健康,影響寫入。 | 暫停寫入,優(yōu)先恢復(fù)集群健康,建議擴容。 |
管道正常啟動,但無數(shù)據(jù)寫入目標(biāo)端
排查方案 | 常見錯誤案例 | 建議解決方案 |
參見使用Logstash管道配置調(diào)試功能,開啟Logsatsh的管道配置調(diào)試功能(需要安裝logstash-output-file_extend插件),查看調(diào)試日志,判斷是否有數(shù)據(jù)流入Logstash服務(wù):
| 無數(shù)據(jù)流入Logstash:
| 根據(jù)具體情況,選擇以下方式處理:
|
有數(shù)據(jù)流入Logstash:
| 根據(jù)具體情況,選擇以下方式處理:
|
服務(wù)正常缺少數(shù)據(jù)
排查方案 | 常見錯誤案例 | 建議解決方案 |
根據(jù)管道配置場景,結(jié)合管道插件屬性排查:
| JDBC場景:
| 根據(jù)具體情況,選擇以下方式處理:
|
使用logstash-input-elasticsearch插件場景:
| Logstash不適用于數(shù)據(jù)實時同步場景。如果源端存在實時寫入,建議通過拉長定時查詢時間,減少頻繁在源端和目標(biāo)端查詢和寫入。 | |
源端和目標(biāo)端壓力均未達(dá)到瓶頸,但Logstash的管道工作線程數(shù)使用了官方的默認(rèn)值。 | 增加Logstash的管道批大小和工作線程數(shù),詳細(xì)信息請參見通過配置文件管理管道。 |