메일 링리스트에서이 질문을 몇 번 보았지만 만족스러운 답변을 얻지 못했습니다.
파이프 라인이 막히지 않았는지 모니터링하는 가장 좋은 방법은 무엇입니까? 클라이언트-> logstash-> elasticsearch.
Logstash 및 특히 탄력적 검색은 리소스 부족 현상이 발생하기 쉽습니다. 그들은 둘 다 그들이 어디에서 멈췄는지 환상적이지만 사람들이 정확히 어떻게 감시자를보고 있습니까?
의견 환영합니다.
답변
개인적으로 저는 redis가 여전히 LS + ES의 업스트림 인 중앙 로깅 호스트에서 대기 중인지 확인합니다.
즉, redis-cli llen logstash
일부 고정 숫자보다 작습니다.
이것은 로그가 redis로 전혀 나타나지 않음을 나타내지 않을 수도 있지만 너무 체크 될 수 있습니다.
확인과 같은 것이 redis-cli info | grep total_commands_processed
계속 증가하고 있습니까?
답변
내 환경에서 zabbix를 사용하지만이 방법이 다른 설정에서도 작동 할 수 있다고 생각합니다. zabbix가 사용할 수 있도록 다음 명령을 구성했습니다.
UserParameter=elasticsearch.commits,/usr/bin/curl -s 'localhost:9200/_cat/count?v' | /bin/sed -n '2p' | /bin/awk '{print $3}'
커밋 된 총 검색 레코드 수를 반환합니다. 따라서이 값을 가져 와서 마지막 샘플을 채취 한 후 초 단위로 나눕니다 (매분 확인).이 숫자가 임의의 한계 아래로 떨어지면 경고 할 수 있습니다. 또한 zabbix를 사용하여 logstash PID가 사망했는지 확인하고 경고하고 다음 명령을 실행하십시오.
UserParameter=elasticsearch.health,/usr/bin/curl -s 'http://localhost:9200/_cluster/health?pretty=true' | /bin/sed -n '3p' | /bin/awk -F'\"' '{print $4}' | /bin/sed s/yellow/0/ | /bin/sed s/green/0/ | /bin/sed s/red/1/
클러스터 상태가 빨간색으로 바뀌면 (노란색과 녹색이면 괜찮음) 1을 반환하며 경고 할 수도 있습니다.
답변
최종 엔드 포인트 (예 : elasticsearch)에서 초당 로그가 일부 기준을 초과하는지 확인하십시오.
즉, 엔드 투 엔드 검사를 수행하십시오. 최종 결과가 올바르게 작동하면 파이프 라인의 모든 단계가 올바르게 작동한다는 것을 알고 있습니다.
문제가 자주 있거나 더 나은 검사가 필요한 경우 위에서 제안한대로 redis와 같이 파이프 라인의 각 부분을 계측하십시오.
답변
우리는 몇 가지 접근 방식을 사용합니다.
- Monit , Elastic 및 Logstash 포트를 청취하고 다시 시작
- 나쁜 일이 발생하고 모든 것이 예상대로 발생하지만 로그가 소비 / 저장되지 않은 경우 간단한 스크립트가 있습니다. 매시간마다 활성 색인을 확인하고 지난 1 시간 동안 문서 수가 변경되지 않은 경우 경고합니다.