sudo apt update
sudo apt install -y wget gnupg curl apt-transport-https
.deb
패키지 다운로드 및 설치wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.18.3-amd64.deb
sudo dpkg -i elasticsearch-8.18.3-amd64.deb
※
apt-key
는 더 이상 권장되지 않으며,.deb
파일 설치 방식은 GPG 키를 따로 추가하지 않아도 됩니다.
sudo apt update
sudo apt install elasticsearch
dpkg
로 패키지를 등록한 후 apt로 종속성 포함 설치
elasticsearch.yml
)sudo nano /etc/elasticsearch/elasticsearch.yml
기본 테스트 용 설정 예시:
network.host: 0.0.0.0
discovery.type: single-node
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
운영 환경이라면
network.host
는 특정 IP로 지정, 인증 설정도 유지
sudo systemctl daemon-reexec
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
상태 확인:
sudo systemctl status elasticsearch
무작위설정 :
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
직접입력 :(단순비번은 거부당함)
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic --interactive
초기 실행 로그 또는
/var/lib/elasticsearch
에 자동 생성된 비밀번호를 확인할 수도 있음
curl -k --cacert /etc/elasticsearch/certs/http_ca.crt https://localhost:9200
-k
는 인증서 무시 옵션, 실제 사용 시엔 인증서를 등록하거나 키바나에서 인증 진행
curl -k --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200
curl -k --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200/_cluster/health?pretty
Enter host password for user 'elastic':
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 3,
"active_shards" : 3,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"unassigned_primary_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
생성한 비밀번호 입력
sudo apt update
sudo apt install -y wget apt-transport-https gnupg
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update
sudo apt install kibana
이 명령으로 현재 저장소에서 가장 최신의 8.x 버전이 설치됩니다. Elasticsearch 8.18.3에 맞춰 Kibana도 8.18.3이 설치됩니다.
/usr/share/kibana/bin/kibana --version
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system
여기서는 자동생성을 하도록 하겠다. 직접입력은 "--interactive"
jluFPIl8n*ibGndzDhb-
id kibana
uid=112(kibana) gid=114(kibana) groups=114(kibana)
sudo cp /etc/elasticsearch/certs/http_ca.crt /etc/kibana/http_ca.crt
sudo chown root:kibana /etc/kibana/http_ca.crt
sudo chmod 640 /etc/kibana/http_ca.crt
이렇게 하면 kibana 그룹에 속한 프로세스가 읽을 수 있게 됩니다.
sudo systemctl restart kibana
sudo systemctl status kibana
sudo nano /etc/kibana/kibana.yml
server.host: "0.0.0.0"
elasticsearch.hosts: ["https://localhost:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "jluFPIl8n*ibGndzDhb-" # 또는 직접 설정한 값
elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/http_ca.crt"]
sudo systemctl enable kibana
sudo systemctl start kibana
sudo systemctl status kibana
sudo lsof -i :5601
결과물
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 3729 kibana 19u IPv4 23886 0t0 TCP *:5601 (LISTEN)
다음 인바운드 규칙을 EC2 보안 그룹에 추가:
유형 | 프로토콜 | 포트 | 소스 |
---|---|---|---|
TCP | TCP | 5601 | 0.0.0.0/0 (또는 본인 IP만) |
브라우저에서 접속:
http://[EC2 퍼블릭 IP]:5601
예:
http://3.38.100.123:5601
정상 접속 시 Kibana UI 로그인창이 보입니다 .
이때 6. Elastic 비밀번호 재설정 에서 생성한 elastic // pwd 를 입력하거나
새로운 계정을 만들어 입력 하면됩니다.
sudo /usr/share/elasticsearch/bin/elasticsearch-users useradd myuser -p mypassword -r superuser
필요 시 kibana_admin, viewer 등의 사용자 계정을 추가로 생성하여 로그인에 사용할 수 있습니다
계정 | 사용 목적 | Kibana 로그인 가능 |
---|---|---|
elastic | 관리자 계정 | ✅ 가능 |
kibana_system | Kibana ↔ Elasticsearch 내부 연동 | ❌ 불가능 |
사용자 생성 계정 (myuser ) | 사용자별 접근 통제 | ✅ 가능 |
Kibana 설치 전에 Elasticsearch가 먼저 정상 실행되고 있어야 합니다.
elasticsearch.yml에서 보안(xpack.security.enabled)을 꺼놨다면, Kibana도 TLS/인증 관련 설정을 제거해야 연결됩니다.
Kibana가 http://localhost:9200에 HTTP로 연결하려면 Elasticsearch도 보안 비활성화 상태여야 합니다.
항목 | 상태 |
---|---|
Kibana 설치 및 실행 | ✅ |
포트 5601 리슨 확인 | ✅ |
kibana.yml 에서 HTTP 설정 | ✅ |
EC2 보안 그룹에서 포트 허용 | ✅ |
브라우저 접속 성공 | ✅ |