Logstash keystore를 적용해보자!

Karim·2022년 6월 2일
3

Logstash 운영

목록 보기
1/1
post-thumbnail

1. Version

💬

  • logstash : 7.17.0
  • OS : CentOS Linux release 7.8.2003(Core)

2. keystore란

  • Logstash를 구성할 때 암호와 같은 민감한 설정이나 구성을 지정해야 할때, 이러한 값을 보호하기 위해 파일 시스템 권한에 의존하는 대신 Logstash 키 저장소를 사용하여 구성 설정에서 사용할 비밀 값안전하게 저장하는 곳이다.

3. 설치 전 확인상항

💡

  • logstash가 미리 설치가 되어있어야 합니다.

4. logstash keysotre 암호 저장

💻 설정 정보를 저장할 dir 생성

$ sudo mkdir /etc/sysconfig

✒️ Logstash Keystore 암호를 저장할 파일 생성

$ sudo vi /etc/sysconfig/logstash

LOGSTASH_KEYSTORE_PASS=logstashpassword1q2w3e4r5T#

💻 Logstash Keystore 암호를 저장할 파일 chmod 설정

$ sudo chmod 755 /etc/sysconfig/logstash

5. 계정 환경 변수 암호 설정

💻 계정 환경변수 LOGSTASH_KEYSTORE_PASS에 Keystore 암호 설정

set +o history는 비밀정보를 history에 남기지 않기 위해 +o 옵션( +off 의미)으로 끕니다.
설정이 완료된 후에는 -o 옵션으로 history를 켭니다.

$ set +o history

$ export LOGSTASH_KEYSTORE_PASS=logstashpassword1q2w3e4r5T

$ set -o history

6. Keystore 파일 생성

💻

  • logstash 실행 파일이 있는 경로로 이동

    $ sudo -E ./logstash-keystore --path.settings logstash.yml 이 있는 경로 create

    [2022-06-02T11:31:32,130][INFO ][org.logstash.secret.store.backend.JavaKeyStore] Created Logstash keystore at /logstash/bin/../config/logstash.keystore
    Created Logstash keystore at ../config/logstash.keystore

7. Keystore에 비밀번호 저장

✒️

  • logstash 실행 파일이 있는 경로로 이동

    $ sudo -E ./logstash-keystore --path.settings logstash.yml 이 있는 경로 add MY_PASSWORD(비밀번호 변수 명)

    Enter value for MY_PASSWORD: `이 부분에 실 비밀번호 입력`
    Added 'my_password' to the Logstash keystore.

8. Keystore에 비밀정보 리스트를 조회

💻

  • logstash 실행 파일이 있는 경로로 이동

    $ sudo -E ./logstash-keystore --path.settings logstash.yml 이 있는 경로 list

    my_password

9. 계정 환경 변수의 암호를 삭제

💻

$ unset LOGSTASH_KEYSTORE_PASS

$ echo $LOGSTASH_KEYSTORE_PASS
빈 값

10. logstash.conf에 적용

  • logstash conf 파일이 있는 경로로 이동
  • 비밀번호 부분을 "${MY_PASSWORD}" 로 설정하면 된다.

    vi logstash.conf

    input {
      jdbc {
        jdbc_driver_library => "../mysql-connector-java-5.1.38.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/karim"
        jdbc_user => "karim"
        jdbc_password => "${MY_PASSWORD}"
        schedule => "* * * * *"
        charset => "UTF-8"
        tracking_column => karim_no
        use_column_value => true
        tracking_column_type => "numeric"
        statement => "SELECT * FROM TB_KARIM"
       }
    }
    filter {
    }
    output {
         kafka {
             bootstrap_servers => "127.0.0.1:9092"
             topic_id => "karim_topic"
             codec => plain }
         }
    }

📌 여담

  • logstash keystore를 주기적으로 자동화 해야하는데!!

📚 참고

profile
나도 보기 위해 정리해 놓은 벨로그

0개의 댓글