1. Elasticsearch에서 logstash_internal 비밀번호 확인 및 재설정
Elasticsearch에서 logstash_internal 사용자의 비밀번호를 확인하거나 재설정합니다.
- Elasticsearch 초기 비밀번호 확인: Elasticsearch가 처음 시작될 때 logstash_internal 사용자의 비밀번호가 자동 생성됩니다. Docker 로그에서 이를 확인하세요:
docker logs elasticsearch
- 비밀번호 재설정: 비밀번호를 모르거나 잘못된 경우, 수동으로 재설정합니다:
- Elasticsearch 컨테이너에 접속:
docker exec -it elasticsearch bash
- 비밀번호 재설정 명령 실행:
bin/elasticsearch-reset-password -u logstash_internal
- 생성된 비밀번호를 복사하여 Logstash의 logstash.conf 또는 환경 변수에 반영합니다.
- Elasticsearch 컨테이너에 접속:
elasticsearch-reset-password | Elastic 문서
elasticsearch-reset-password | Elastic Documentation
The elasticsearch-reset-password command resets the passwords of users in the native realm and built-in users. Use this command to reset the password...
www.elastic.co
다음 예시에서는 username이 있는 기본 사용자의 암호를 자동 생성된 값으로 재설정하고 콘솔에 새 암호를 인쇄합니다. 지정된 URL은 elasticsearch-reset-password 도구가 로컬 Elasticsearch 노드에 연결하려고 시도하는 위치를 나타냅니다.
bin/elasticsearch-reset-password --url "http://elasticsearch:9200" --username logstash_internal -i

이후에 해당 docker compose를 restart 해줍니다.
docker compose restart
2. Elasticsearch 보안 설정 점검
Elasticsearch에서 X-Pack Security가 활성화되어 있는지 확인하고, 필요하면 일시적으로 비활성화하여 테스트합니다.
- 보안 설정 확인: Elasticsearch의 설정 파일(예: elasticsearch.yml) 또는 docker-compose.yml에서 보안 설정을 확인하세요. 기본적으로 7.10.0 이상에서는 보안이 활성화되어 있습니다. docker-compose.yml에서 다음이 설정되어 있는지 확인:
services: elasticsearch: environment: - xpack.security.enabled=true ...
- 보안 비활성화 테스트 (임시): 인증 문제를 배제하기 위해 일시적으로 보안을 비활성화할 수 있습니다:
services: elasticsearch: environment: - discovery.type=single-node - xpack.security.enabled=false ...
- Docker Compose를 재시작:
docker-compose down && docker-compose up
이후에 logstash 에서 아래와 같은 오류가 또 발생 - 403에러
비밀번호를 바꿔줬는데도 뭔가 에러가 계속 발생하고 있었는데, 이번엔 좀 다른 종류의 에러였습니다. (아래)
[2025-04-17T04:07:20,233][WARN ][logstash.outputs.elasticsearch][main] Health check failed {:code=>403, :url=>http://elasticsearch:9200/, :message=>"Got response code '403' contacting Elasticsearch at URL 'http://elasticsearch:9200/'"} [2025-04-17T04:07:20,304][WARN ][logstash.outputs.elasticsearch][main] Elasticsearch main endpoint returns 403 {:message=>"Got response code '403' contacting Elasticsearch at URL 'http://elasticsearch:9200/'", :body=>"{\"error\":{\"root_cause\":[{\"type\":\"security_exception\",\"reason\":\"action [cluster:monitor/main] is unauthorized for user [logstash_internal] with effective roles [] (assigned roles [logstash_writer] were not found), this action is granted by the cluster privileges [monitor,manage,all]\"}],\"type\":\"security_exception\",\"reason\":\"action [cluster:monitor/main] is unauthorized for user [logstash_internal] with effective roles [] (assigned roles [logstash_writer] were not found), this action is granted by the cluster privileges [monitor,manage,all]\"},\"status\":403}"}
오류 원인
로그를 분석해보면 다음과 같은 주요 원인을 확인할 수 있습니다:
- 권한 부족 (HTTP 403 Forbidden)
- logstash_internal 사용자가 Elasticsearch에서 필요한 작업(cluster:monitor/main)을 수행할 권한이 없습니다.
- 역할 설정 문제
- logstash_writer 역할이 logstash_internal 사용자에게 할당되었지만, Elasticsearch에서 이 역할이 정의되지 않았거나 찾을 수 없습니다.
- 보안 설정 오류
- Elasticsearch에서 X-Pack Security가 활성화된 상태에서 사용자와 역할이 올바르게 구성되지 않았을 가능성이 있습니다.
해결 방법
1. Elasticsearch에서 사용자와 역할 확인
먼저, logstash_internal 사용자와 logstash_writer 역할이 Elasticsearch에 제대로 설정되어 있는지 확인합니다.
- Elasticsearch 컨테이너에 접속:
docker exec -it elasticsearch bash
- 사용자 역할 확인:
bin/elasticsearch-users roles logstash_internal
- 출력 결과에 logstash_writer 역할이 포함되어 있는지 확인하세요.
- 역할 정의 확인:
bin/elasticsearch-roles list logstash_writer
- logstash_writer 역할이 존재하지 않거나, 필요한 권한(monitor, manage_index_templates, write 등)이 누락되었는지 확인합니다.
제 경우, bin/elasticsearch-roles list 에서 사용자가 아무것도 나타나지 않았습니다.
그래서 kibana web console로 접속(http://kibana:5601/app/dev_tools#/console/shell) 한 뒤에
아래 3개의 POST 명령을 각각 실행해줬습니다.
재생 표시 아이콘을 누르면 각 POST 마다 명령을 실행할 수 있습니다.
이후 logstash_internal 에 role이 잘 부여되었는지 보기 위해 아래 GET 명령을 실행합니다.
그러면 아래 이미지와 같이 명령어 결과를 확인할 수 있습니다.
logstash_reader의 role은 반영이 안되었지만 writer 역할이 없어 오류가 난 것이기 때문에 문제 해결은 되었습니다.
'Tech' 카테고리의 다른 글
ubuntu에 다른 스토리지를 SMB로 마운트 하기 (0) | 2025.04.10 |
---|---|
[proxmox] 노트북의 CPU의 core 수가 계속 1로만 뜨는 오류 (0) | 2025.04.10 |
[proxmox] 안쓰는 노트북에 proxmox 설치 (0) | 2025.04.10 |
[proxmox] QEMU 에이전트 설치 (0) | 2025.04.10 |
Proxmox (ubuntu 환경)에 Tailscale 설치하는 방법 (0) | 2025.03.31 |