Self-Study/계란으로 바위치기

[Elastic] Ubuntu OS + ELK 환경설정 - 2

Raadian 2022. 9. 13. 15:20

References

https://t-okk.tistory.com/192

https://nan491.tistory.com/entry/VMware-Ubuntu에서-ElasticsearchELK-설치하기?category=306998

https://velog.io/@munang/Centos7-에-ElasticSearch-설치하기

https://www.elastic.co/guide/kr/x-pack/current/security-getting-started.html

 

 

서론

본 포스트는 Linux(Ubuntu OS) + ELK 환경설정 과정을 재구성 하였습니다.

지난 시간 Virtual Machine 내 Ubuntu 설치 및 ELK 세팅에 필요한 기본 패키지 설정을 진행하였다.

따라서, 이번 포스트에는 ELK 설치 및 yml 파일 설정을 진행한다.

 

 

주의 사항

Elasticsearch, Kibana, Logstash, Filebeat 모두 버전이 동일해야 합니다.

본 포스트에서는 8.2.0 버전으로 진행하였습니다. 만약, 최신 버전을 이용하고자 하신다면 최소 JDK 11 버전 이상으로 사전 설정이 필요하고, 본 포스트에 기재되는 설정 내용이 달라질 수 있다는 점 유의 해주시길 바랍니다.

 

 

ELK 설치 파일 다운로드

Ubuntu OS에 있는 Firefox 웹 브라우저를 키고 다음과 같은 설치 링크로 접속한다.

  • Elasticsearch

https://www.elastic.co/kr/downloads/past-releases/elasticsearch-8-2-0

  • Kibana

https://www.elastic.co/kr/downloads/past-releases/kibana-8-2-0

  • Logstash

https://www.elastic.co/kr/downloads/past-releases/logstash-8-2-0

  • Filebeat

https://www.elastic.co/kr/downloads/past-releases/filebeat-8-2-0


네 파일 모두 DEB X86_64를 클릭하여 deb 확장자 파일을 다운로드 한다.

 

 

Elasticsearch

Elasticsearch 설치

다운로드 받은 Elasticsearch 설치 파일을 실행한다.

$ sudo dpkg -i elasticsearch-8.2.0-amd64.deb

 

Elasticsearch 설정

설치 완료 후 Elasticseatch를 Service에 등록한다.

$ sudo systemctl enable elasticsearch.service

service 명령어를 통해 실행한다.

$ sudo service elasticsearch start

curl 모듈을 통해 연결이 정상적으로 되었는지 확인한다.

$ curl -XGET 'localhost:9200'

// JSON 형태의 내용이 출력되면 정상!
{
	"name" : "wrlmwrg"
	...
}

 

※ Elasticsearch 설정 오류 발생 시 해결

elasticsearch.service failed

Job for elasticsearch.service failed because the control process exited with error code. See "systemctl status elasticsearch.service" and "journalctl -xe" for details.

가상머신 메모리 부족이므로 다음과 같이 진행한다.


// nano 에디터로 JVM 옵션 설정 파일을 연다
$ sudo nano /etc/elasticsearch/jvm.options

...

// 해당 문구에 있는 주석을 해제 후 저장한다
-Xms4g
-Xmx4g

Permission denied

./elasticsearch-env: line 88: /etc/default/elasticsearch: Permission denied

Elasticsearch YML 설정 파일의 보안 옵션 활성화가 원인이므로 다음과 같이 진행한다.


// nano 에디터로 Elasticsearch YML 옵션 설정 파일을 연다
$ sudo nano /etc/elasticsearch/elasticsearch.yml

...

// 해당 문구에 있는 옵션을 false로 설정 후 저장한다
xpack.security.audit.enabled: false

 

 

Logstash

다운로드 받은 Logstash 설치 파일을 실행한다.

$ sudo dpkg -i logstash-8.2.0-amd64.deb

Logstash의 경우 이 후 작업 과정에서 추가적으로 만질 곳이 필요하니 지금은 패스한다.

 

 

Kibana

Kibana 설치

다운로드 받은 Kibana 설치 파일을 실행한다.

$ sudo dpkg -i kibana-8.2.0-amd64.deb

 

Kibana 설정

Kibana YML 설정 파일 내용을 수정 후 저장한다.

$ sudo nano /etc/kibana/kibana.yml

...

// Elasticsearch와 연동할 url을 설정한다
elasticsearch.url: "<http://localhost:9200>"

// Kibana 서버 호스트를 설정한다
server.host: "localhost"

 

 

Filebeat

Filebeat 설치

다운로드 받은 Filebeat 설치 파일을 실행한다.

$ sudo dpkg -i filebeat-8.2.0-amd64.deb

 

Filebeat 설정

Filebeat YML 설정 파일 내용을 수정 후 저장한다.

$ sudo nano /etc/filebeat/filebeat.yml

...

// 설정 변경 옵션을 활성화한다
# Change to true to enable this input configuration
enabled: true

// 로그 파일의 경로를 지정한다
// 만약 별도로 생성되는 로그 파일이 있다면 해당 경로로 지정한다
# Path that should crawled and fetched. Glob based paths.
paths:
	- /var/log/*.log
	- /var/log/syslog
	- /var/log/apache2/*.log
  - ( 필요시 로그 경로 추가 ...)

 

 

구동 테스트

사전 작업

실행 전 서비스를 전부 종료한다.

$ sudo service filebeat stop
$ sudo service kibana stop
$ sudo service elasticsearch stop
$ sudo service apache2 stop

역 순으로 다시 서비스를 전부 실행한다.

$ sudo service apache2 start
$ sudo service elasticsearch start
$ sudo service kibana start
$ sudo service filebeat start

 

Elasticsearch 정상 실행 여부 확인

Elasticsearch가 정상적으로 실행되는지 확인한다.

$ curl -XGET 'localhost:9200'

// JSON 형태의 내용이 출력되면 정상!
{
	"name" : "wrlmwrg"
	...
}

Firefox 웹 브라우저를 열어 127.0.0.1:9200/_cat/indices 링크로 접속하여 Filebeat와 정상적으로 연동이 되는지 확인한다.

페이지 내용에  yellow open …  관련 문구가 뜨면 정상!

 

Kibana 접속 확인

127.0.0.1:5601 링크로 접속하여 Kibana 메인 페이지가 뜨는지 확인한다.