logstash
: 7.17.0암호
와 같은 민감한 설정이나 구성을 지정해야 할때, 이러한 값을 보호
하기 위해 파일 시스템 권한에 의존하는 대신 Logstash 키 저장소
를 사용하여 구성 설정에서 사용할 비밀 값
을 안전하게 저장
하는 곳이다.$ sudo mkdir /etc/sysconfig
$ sudo vi /etc/sysconfig/logstash
LOGSTASH_KEYSTORE_PASS=logstashpassword1q2w3e4r5T#
$ sudo chmod 755 /etc/sysconfig/logstash
set +o history는 비밀정보를 history에 남기지 않기 위해 +o 옵션( +off 의미)으로 끕니다.
설정이 완료된 후에는 -o 옵션으로 history를 켭니다.
$ set +o history
$ export LOGSTASH_KEYSTORE_PASS=logstashpassword1q2w3e4r5T
$ set -o history
$ 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
$ sudo -E ./logstash-keystore --path.settings
logstash.yml 이 있는 경로
add
MY_PASSWORD(비밀번호 변수 명)Enter value for MY_PASSWORD: `이 부분에 실 비밀번호 입력` Added 'my_password' to the Logstash keystore.
$ sudo -E ./logstash-keystore --path.settings
logstash.yml 이 있는 경로
list
my_password
$ unset LOGSTASH_KEYSTORE_PASS
$ echo $LOGSTASH_KEYSTORE_PASS
빈 값
${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 } } }
📌 여담
📚 참고