[TOC]
### Secrets keystore for secure settings
当你配置Logstash的时候,你可能需要指定敏感设置或配置,如密码。你可以使用Logstash keystore安全的存储这些秘密的数据以便在配置中使用,而不是依赖文件系统权限来保护这些数据。
在往keystore添加一个key和其Secret value之后,你就可以在配置敏感设置的时候使用key来替代Secret value。
引用key的方式(语法)和引用[变量](https://www.elastic.co/guide/en/logstash/current/environment-variables.html)的方式(语法)是一样的:
`${KEY}`
花括号中是key的名字。
如:假定keystore中包含一个名为`ES_PWD`值为`yourelasticsearchpassword`:
+ 在配置文件中,使用方式:`output { elasticsearch {...password => "${ES_PWD}" } } }`(不是我多了一个括号,文档中就是多了一个括号。)
+ 在`logstash.yml`文件使用方式:`xpack.management.elasticsearch.password: ${ES_PWD}`
注意Logstash keystore有别于Elasticsearch keystore。Elasticsearch的keystore让你以名字的方式存储`elasticsearch.yml`中的值,Logstash的keystore允许你自定义在Logstash配置中引用的名字。(原文:Whereas the Elasticsearch keystore lets you store `elasticsearch.yml` values by name, the Logstash keystore lets you specify arbitrary names that you can reference in the Logstash configuration.)
> <font color=#DC143C size=4>NOTE</font>:目前不支持从`pipeline.yml`文件和命令行(-e)选项引用keystore 数据。
> <font color=#DC143C size=4>NOTE</font>:从[centralized pipeline management](http://www.elastic.co/guide/en/logstash/6.x/logstash-centralized-pipeline-management.html)引用keystore数据,需要每一个部署Logstash的实例本地有一个keystore副本。
当Logstash分析设置(`logstash.yml`)或配置(`/etc/logstash/conf.d/*.conf`)的时候,会在解析变量之前从keystore解析key。
### Keystore password
你可以通过在环境变量`LOGSTASH_KEYSTORE_PASS`中存储密码来保护对Logstash keystore的访问。如果你在设置了这个变量之后创建Logstash keystore,这个keystore会被密码保护。这意味着这个环境变量必须可以被运行的Logstash实例访问。对于任何需要发出keystore命令的用户,也必须正确设置此环境变量。
我们推荐使用keystore密码,但这并不是强制的。即使你没有设置密码,数据依然会被加密。但是,我们仍然强烈建议您设置密码,并且对任何可能包含密码的环境变量的文件进行权限控制。如果你决定不设置密码,你可以跳过此章节。
示例:
```shell
set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
bin/logstash-keystore create
```
此设置要求运行Logstash的用户定义环境变量LOGSTASH_KeyStore_PASS=mypassword。如果未定义环境变量,则Logstash无法访问keystore。(原文:This setup requires the user running Logstash to have the environment variable`LOGSTASH_KEYSTORE_PASS=mypassword` defined. If the environment variable is not defined, Logstash cannot access the the keystore.)
当你运行RPM或DEB包安装的Logstash的时候,环境变量来自于`/etc/sysconfig/logstash`。
> <font color=#DC143C size=4>NOTE</font>:你可能需要手动创建`/etc/sysconfig/logstash`文件。文件的属主必须是`root`权限`600`。文件内容的格式是`ENVIRONMENT_VARIABLE=VALUE`,每行一个条目。
对于如其他分发版,如Docker或ZIP,查看你的运行环境的文档(Windows,Docker,etc)来学习如何给运行Logstash的用户设置变量。并确保变量(以及密码)只能被那个用户访问。
### Keystore location(Keystore的位置)
Keystore必须位于Logstash的`path.settings`目录。此目录和包含`logstash.yml`文件的目录是同一个目录。当对Keystore执行任何操作的时候,建议为Keystore 命令设置`path.settings`。如,对于使用RPM和DEB安装的Logstash创建一个keystore:
```shell
set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
sudo -E /usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash create
```
查看[Logstash目录布局](https://www.elastic.co/guide/en/logstash/current/dir-layout.html)来获取更多关于默认目录位置的信息。
> <font color=#DC143C size=4>NOTE</font>:如果给`path.settings`指定了一个和`logstash.yml`所在目录不同的目录,你将会收到一个警告。
### Create a keystore
使用`create`来创建一个keystore:
```shell
bin/logstash-keystore create
```
创建的keystore所在目录是在`path.settings`配置中定义的。
> <font color=#DC143C size=4>NOTE</font>:创建keystore的时候建议设置一个[keystore password](https://www.elastic.co/guide/en/logstash/current/keystore.html#keystore-password)。
### Add keys
要存储敏感信息,如Elasticsearch的认证凭据,使用`add`命令:
```shell
bin/logstash-keystore add ES_PWD
```
当出现提示的时候,为key输入一个值。
### List keys
要查看keystore中定义的key列表,使用:
```shell
bin/logstash-keystore list
```
### Remove keys
从keystore中移除key,使用:
```shell
bin/logstash-keystore remove ES_PWD
```
- Emmm
- Logstash简介
- 开始使用Logstash
- 安装Logstash
- 储存你的第一个事件
- 通过Logstash解析日志
- 多个输入和输出插件的混合使用
- Logstash是如何工作的
- 执行模型Execution Model
- 设置并运行Logstash
- Logstash目录布局
- Logstash配置文件
- logstash.yml
- Secrets keystore for secure settings
- 从命令行运行Logstash
- 以服务的方式运行Logstash
- 在Docker中运行Logstash
- 配置容器版Logstash
- Logging
- 关闭Logstash
- 安装X-Pack
- 设置X-Pack
- 升级Logstash
- 使用包管理升级
- 直接下载进行升级
- 升级至6.0
- Upgrading with the Persistent Queue Enabled
- 配置Logstash
- 管道配置文件的结构
- 访问配置中的事件数据和字段
- 在配置中使用环境变量
- Logstash配置示例
- 多管道
- 管道间通信(beta)
- 重载配置文件
- 管理多行事件
- Glob Pattern Support
- Converting Ingest Node Pipelines
- Logstash间通信
- 配置集中式管道管理
- X-Pack Monitoring
- X-Pack Security
- X-Pack Settings
- Field References Deep Dive(深入字段引用)
- 管理Logstash
- 集中式管道管理
- 使用Logstash模块
- 使用Elastic Cloud
- Logstash ArcSight模块