С помощью Keystore мы можем безопасно использовать пароли в файлах конфигураций ELK. Если просто, то мы создаём хранилище ключей, к которому будут иметь доступ только приложения ELK.

Для начала находим где именно лежит бинарный файл logstash-keystore, именно его мы будем использовать для создания keystore.

sudo find / -name logstash-keystore
/usr/share/logstash/bin/logstash-keystore

Создание keystore

Для создания keystore используем наш бинарный файл добавляя значение create.

cd /usr/share/logstash/bin/
./logstash-keystore create

Команда создания выведет сообщение что мы должны установить LOGSTASH_KEYSTORE_PASS, сообщение выглядит так: Please set the environment variable LOGSTASH_KEYSTORE_PASS. Т.е. требуется, чтобы пользователь, запускающий Logstash, определил переменную среды LOGSTASH_KEYSTORE_PASS.

Собственно, остаётся только так и cделать раз это настройка от самого ELK. Добавляем LOGSTASH_KEYSTORE_PASS в env и он в итоге окажется в файле /usr/share/logstash/config/logstash.keystore. Удостоверьтесь что у пользователя есть права на запись в эту директорию.

Если у вас logstash запущен как сервис, то необходимо также добавить эту переменную в сам сервис, используя сам файл описания сервиса (/etc/systemd/system/logstash.service) либо же добавить в файл /etc/default/logstash.

Добавляем переменную

Если вы хоть немного знакомы с иб, то уже должны понимать, что записывать пароли в историю команд не стоит поэтому перед выполнением export отключаем запись команд в bash history.

sudo set  +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
sudo set  -o history

И снова запускаем logstash-keystore create.

/usr/share/logstash/bin/logstash-keystore create --path.settings /etc/logstash
Created Logstash keystore at /etc/logstash/logstash.keystore

Добавление ключей в keystore

И осталось дело за малым а собственно осталось только добавить ключи в keystore, используя команду ./logstash-keystore add.

./logstash-keystore add USR --path.settings /etc/logstash/
./logstash-keystore add PASS --path.settings /etc/logstash/

Просмотр ключей в keystore

Для того чтобы просмотреть что там лежит в нашем keystore используем ./logstash-keystore list.

./logstash-keystore list --path.settings /etc/logstash/
usr
pass

Удаление ключей из keystore

./logstash-keystore remove USR --path.settings /etc/logstash/
./logstash-keystore remove PASS --path.settings /etc/logstash/

Использование ключей

Далее вы можете использовать эти ключи в любом месте любого файла конфигурации logstash. Для примера я укажу пароль для output в elasticsearch.

elasticsearch {
        user => "${usr}"
        password => "${pass}"
      }