這是堅持技術寫作計劃(含翻譯)的第5篇,定個小目標999,每週最少2篇。
吐槽一下,最近有點招bug,前兩天磁碟異常爆滿,今天es又掛了。
Logstash ClusterBlockException
logstash 日誌中週期性出現 FORBIDDEN/12/index read-only / allow delete (api)]
,並且es中無法寫入新資料。
原因是 ES 主動保護功能,防止es叢集狀態變成紅色(RED)或者黃色(YELLOW)
原因有兩個:
- 記憶體不足:JVMMemoryPressure 超過92%並持續30分鐘時,ES觸發保護機制,並且阻止寫入操作,以防止叢集達到紅色狀態,啟用防寫後,寫入操作將失敗,並且丟擲
ClusterBlockException
,無法建立新索引,並且丟擲IndexCreateBlockException
,當五分鐘內恢復到88%以下時,將禁用防寫 - 磁碟空間不足:es的預設磁碟水位警戒線是85%,一旦磁碟使用率超過85%,es不會再為該節點分配分片,es還有一個磁碟水位警戒線是90%,超過後,將嘗試將分片重定位到其他節點。
解決方案
- 磁碟擴容
- 刪除無用索引
- 將舊索引的副本數調小
- 增加資料節點
- 手動將
index.blocks.read_only_allow_delete
改成false
另
還有一種報錯是 blocked by: [FORBIDDEN/8/index write (api)];
後續再補充
參考資料
招聘小廣告
山東濟南的小夥伴歡迎投簡歷啊 加入我們 , 一起搞事情。
長期招聘,Java程式設計師,大資料工程師,運維工程師,前端工程師。