문제
- 갑자기 로그가 수집이 안되는 현상이 발생
원인
- logstash 로그를 확인해보았는데, 아래와 같은 로그가 찍혀있는데, 확인해보니 샤드 개수 부족이었다.
- [logstash.outputs.elasticsearch][main] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"인덱스인덱스인덱스", :routing=>nil, :_type=>"_doc"}, #], :response=>{"index"=>{"_index"=>"인덱스인덱스인덱스", "_type"=>"_doc", "_id"=>nil, "status"=>400, "error"=>{"type"=>"validation_exception", "reason"=> "Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [999]/[1000] maximum shards open;"}}}} |
※ total shards, but this cluster currently has [999]/[1000] maximum shards open;
정확한 확인을 위해 현재 서버의 노드 최대치를 조회
- postman을 사용하여 아래의 갑을 넣어 send 했음.
- [GET] http://localhost:9200/_cluster/settings?include_defaults&flat_settings
- 이때 localhost 부분에 elasicsearch 장비가 설정된 ip 주소를 입력하면 된다.
확인해 보니 "cluster.max_shards_per_node" 값이 기본 1000으로 설정되어있었다.
해결
- postman을 키고, put 메서드 사용하여 샤드 개수를 늘리고 logstash를 재시작 했다.
- 주소 : http://localhost:9200/_cluster/settings
Body { "persistent": { "cluster.max_shards_per_node": "3000" } } |
- 설정하여 [Send]하여 shard 개수를 늘리고, logstash를 재시작 한다.
결과
[GET] http://localhost:9200/_cluster/settings?include_defaults&flat_settings 를 사용하여 다시 확인해보면
shard가 3000개로 바뀐것을 확인할 수 있다.
"cluster.max_shards_per_node": "3000"
{
"persistent": {
"action.destructive_requires_name": "true",
"cluster.max_shards_per_node": "3000"
},
"transient": {},
"defaults": {
............. (생략)
}
}
그리고 다시 로그 수집이 정상화되었다.
반응형
'프로그래밍 > ELK' 카테고리의 다른 글
[ElasticSearch] data too large data... (0) | 2021.06.15 |
---|---|
[elasticsearch error] overhead,spent (0) | 2021.06.15 |
[logstash] logstash로 'file' 수집하기 (0) | 2020.10.12 |
[오류] elasticsearch - index가 갑자기 사라지는 문제 발생 !! (0) | 2020.10.12 |
[ElasticSearch] ElasticSearch 서비스로 설치 (0) | 2020.07.30 |
댓글