logstash-keystore保存Elasticsearch或其他密码

2024-04-02 23:48

本文主要是介绍logstash-keystore保存Elasticsearch或其他密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考:https://www.phpmianshi.com/?id=249

背景

在配置Logstash时,你可能需要指定敏感设置或配置,比如密码,与依赖文件系统权限来保护这些值不同,你可以使用Logstash keystore来安全地存储用于配置设置的secret值。

在向keystore中添加key及其secret值之后,你可以在配置敏感设置时使用key代替secret值。

引用key的语法与环境变量的语法相同:${KEY}KEY是key的名称。例如:

jdbc_password => "${MYSQL_PWD}"

注意,Logstash keystore与Elasticsearch keystore不同,虽然Elasticsearch keystore允许你按名称存储elasticsearch.yml值,但是Logstash keystore允许你指定可在Logstash配置中引用的任意名称。

当前不支持从pipelines.yml或命令行(-e)引用keystore数据。

 

keystore密码

 

你可以通过在名为LOGSTASH_KEYSTORE_PASS的环境变量中存储密码来保护对Logstash keystore的访问,如果在设置此变量后创建Logstash keystore,它将受到密码保护。这意味着环境变量需要被正在运行的Logstash实例访问,这个环境变量还必须为需要发出keystore命令(添加、列表、删除等)的任何用户正确设置。

建议使用keystore密码,但这是可选的,即使你没有设置密码,数据也会被加密。但是,强烈建议配置keystore密码并对任何可能包含环境变量值的文件授予限制性权限,如果你选择不设置密码,那么你可以跳过本节的其余部分。

 

环境

logstash7.5.1 + supervisor

 

keystore位置

keystore必须位于Logstash的path.settings目录,这是包含logstash.yml文件的同一个目录。在对keystore执行任何操作时,建议为keystore命令设置path.settings

 

示例

这次我们logstash采用源码安装,安装目录为 /usr/local/logstash ,运行使用supervisor

 

#设置隐藏history记录
set +o history
#设置访问Logstash keystore的密码
export LOGSTASH_KEYSTORE_PASS=这里设置一个密码
#设置记录history
set -o history
cd /usr/local/logstash/bin
#创建
./logstash-keystore --path.settings /usr/local/logstash/config create
./logstash-keystore --path.settings /usr/local/logstash/config add MYSQL_PWD
#这里会提示我们设置密码 Enter value for MYSQL_PWD:  我们输入一个密码回车提示:Added 'mysql_pwd' to the Logstash keystore.
#查看设置过的参数
./logstash-keystore --path.settings /usr/local/logstash/config list
#移除一个key
./logstash-keystore remove MYSQL_PWD

 

 

当你从RPM或DEB包安装中运行Logstash时,环境变量来自/etc/sysconfig/logstash

# Have to save the password for service to kick start (installed by RPM), otherwise service will fail.
echo "LOGSTASH_KEYSTORE_PASS=changeme" > /etc/sysconfig/logstash

这个设置要求运行Logstash的用户定义环境变量LOGSTASH_KEYSTORE_PASS=mypassword,如果没有定义环境变量,Logstash就无法访问keystore。

你可能需要创建/etc/sysconfig/logstash,这个文件应该由具有600权限的root用户拥有,/etc/sysconfig/logstash的格式应该是ENVIRONMENT_VARIABLE=VALUE,每行一个条目。

对于其他发行版,如Docker或ZIP,请参阅运行时环境(Windows、Docker等)的文档,了解如何为运行Logstash的用户设置环境变量,确保该环境变量(以及密码)只能被该用户访问。

 

这时候,我们再去修改logstash同步的配置文件,把需要mysql密码的地方都改成 ${MYSQL_PWD}

 

jdbc_password => "${MYSQL_PWD}"

重新启动logstash

 

supervisorctl restart logstash

观察日志发现报错:

 

Found a file at /usr/local/logstash/config/logstash.keystore, but it is not a valid Logstash keystore.

原因是supervisor接管logstash的时候,没有设置环境变量  LOGSTASH_KEYSTORE_PASS,上面我们已经介绍过了,需要设置该变量才能访问logstash-keystore,我们设置下环境变量 environment

 

[program:logstash]
command = /usr/local/logstash/bin/logstash
directory = /usr/local/logstash/
numprocs = 1
process_name = %(program_name)s
user=root
environment=LOGSTASH_KEYSTORE_PASS=这里设置刚才设置的密码
autostart = false
autorestart = true
startsecs = 10
startretries = 10
redirect_stderr = true
stdout_logfile = /dev/null
stdout_logfile_maxbytes = 1000MB
loglevel = info

重新启动logstash

 

supervisorctl reload
supervisor start logstash

修改一条数据,测试一下,大功告成,这样我们就可以安全的设置一些敏感的密码等信息了

这篇关于logstash-keystore保存Elasticsearch或其他密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871385

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

下载/保存/读取 文件,并转成流输出

最近对文件的操作又熟悉了下;现在记载下来:学习在于 坚持!!!不以细小而不为。 实现的是:文件的下载、文件的保存到SD卡、文件的读取输出String 类型、最后是文件转换成流输出;一整套够用了; 重点: 1:   操作网络要记得开线程; 2:更新网络获取的数据 切记用Handler机制; 3:注意代码的可读性(这里面只是保存到SD卡,在项目中切记要对SD卡的有无做判断,然后再获取路径!)

ElasticSearch的DSL查询⑤(ES数据聚合、DSL语法数据聚合、RestClient数据聚合)

目录 一、数据聚合 1.1 DSL实现聚合 1.1.1 Bucket聚合  1.1.2 带条件聚合 1.1.3 Metric聚合 1.1.4 总结 2.1 RestClient实现聚合 2.1.1 Bucket聚合 2.1.2 带条件聚合 2.2.3 Metric聚合 一、数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如:

FFmpeg系列-视频解码后保存帧图片为ppm

在正常开发中遇到花屏时怎么处理呢?可以把解码后的数据直接保存成帧图片保存起来,然后直接看图片有没有花屏来排除是否是显示的问题,如果花屏,则代表显示无问题,如果图片中没有花屏,则可以往显示的方向去排查了。 void saveFrame(AVFrame* pFrame, int width, int height, int iFrame){FILE *pFile;char szFilename[

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

【docker】基于docker-compose 安装elasticsearch + kibana + ik分词器(8.10.4版本)

记录下,使用 docker-compose 安装 Elasticsearch 和 Kibana,并配置 IK 分词器,你可以按照以下步骤进行。此过程适用于 Elasticsearch 和 Kibana 8.10.4 版本。 安装 首先,在你的工作目录下创建一个 docker-compose.yml 文件,用于配置 Elasticsearch 和 Kibana 的服务。 version:

ElasticSearch底层原理简析

1.ElasticSearch简述 ElastiaSearch(以下简称ES)是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,支持RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。ES设计用于云计算中,能够进行实时搜索,支持PB级搜索,具有稳定,可靠,快速,安装使用方便等

html记账本改写:数据重新布局,更好用了,没有localStorage保存版本

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>htm记账本</title><style>table {user-select: none;/* width: 100%; */border-collapse: collapse;}table,th,td {border: 1px solid bla