Springboot/ amazon-linux 에 elk 설정하기

eden·2021년 10월 14일
0

elk

목록 보기
1/1

linux상에서 docker-elk clone

1.docker-elk clone

command)
1-1.mkdir ~/workspace
2-1.cd ~/workspace
3-1.git clone https://github.com/deviantony/docker-elk.git

2.docker-elk/logstash/pipeline/logstash.conf 파일을 수정

input {
tcp {
port => 5000
codec => json_lines
}
}

output {
elasticsearch {
hosts => "elasticsearch:9200"
index => "logstash-20211013"
user => "elastic"
password => "changeme"
}
}

3.docker-compose가 설정되어 있지 않은경우

command)
docker compose 설치
3-1.sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s-uname -m` | sudo tee /usr/local/bin/docker-compose > /dev/null

docker compose 권한 변경
3-2.sudo chmod +x /usr/local/bin/docker-compose

심볼릭 링크 생성
3-3sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4.build.gradle에 추가

tcp 통신을 통하여 바로 logstash 로 전송할 수 있는 appender 추가

implementation 'net.logstash.logback:logstash-logback-encoder:6.3'

5.logback설정

src/main/resources 디렉토리에 logback.xml 파일을 추가

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <pattern>%-5level %d [%thread] %logger - %msg%n</pattern>
    </encoder>
</appender>

<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>127.0.0.1:5000</destination>

    <!-- encoder is required -->
    <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>

<root level="INFO">
    <appender-ref ref="console"/>
    <appender-ref ref="stash"/>
</root>
src/main/resources/application.yml 다음값 추가

logging.config: classpath:logback.xml

6.Elasticsearch 에 Open Distro Alert 설치

docker-elk/elasticsearch/Dockerfile 을 다음과 같이 수정합니다.

ARG ELK_VERSION

FROM docker.elastic.co/elasticsearch/elasticsearch
RUN elasticsearch-plugin install -b https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-alerting/opendistro_alerting-1.3.0.1.zip
Kibana 에 Open Distro Alert 설치
docker-elk/kibana/Dockerfile 을 다음과 같이 수정합니다.

ARG ELK_VERSION

FROM docker.elastic.co/kibana/kibana
RUN kibana-plugin install https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-alerting/opendistro-alerting-1.3.0.0.zip
ELK 랑 Open Distro Alert 버전 맞추기
현재 opendistro_alert의 최신버전인 1.3.0.1 버전 에서 지원하는 elasticsearch 버전은 7.3.2 버전입니다.
docker-elk/.env 파일에서 elk 버전을 7.3.2 로 수정합니다.

ELK_VERSION=7.3.2

X-PACK 설정 Off 하기
docker-elk/elastic/config/elasticsearch.yml 파일에서 xpack 관련 설정을 false 로 변경합니다.
(해당 설정을 false 로 변경하지 않으면 opendistro_alert 을 사용할때 인증 관련 에러가 발생합니다)

xpack.security.enabled: false
xpack.monitoring.collection.enabled: false
새로운 이미지 Build 하고 재실행하기
새로 Docker 이미지를 빌드한 후, 이전 버전에서 사용된 elasticsearch volume 을 제거하고
다시 컨테이너를 실행합니다.

docker-compose build
docker volume rm docker-elk_elasticsearch
docker-compose up

  1. 접속
    http://{domain}:5601
    id,pw -> 2번 항목 참고

참고)https://techblog.woowahan.com/2659/
https://somjang.tistory.com/entry/Docker-Amazon-Linux2-AMI-%EC%97%90%EC%84%9C-docker-compose-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

profile
다양한 것에 관심있는 개발자입니다.

0개의 댓글