针对带有 HTTPS 访问的 Elasticsearch 集群来说,在我之前的很多文章,我都习惯于使用集群的证书来访问 Elasticsearch。你可以参考我之前的文章 “Elastic Stack 8.0 安装 - 保护你的 Elastic Stack 现在比以往任何时候都简单”。这是一种非常简便的方法。好处是,我们可以随时使用在安装过程中的证书来访问 Elasticsearch。一个很大的缺点就是,我们必须拷贝证书,并把它放到 Beats 或者 Logstash 可以访问的位置进行配置。这个在使用的过程中非常不方便。相反,我们可以使用 fingerprint 来进行配置 Beats 及 Logstash。Fingerprint 的好处是它不用带路径。在配置的时候,我们所需要做的就是把 fingerprint 的值拷贝进来就可以了,而无须去配置路径。

使用 fingerprint 来连接 Beats:Logstash 和 Elasticsearch

如何得到 fingerprint ?

我们可以通过如下的几种方法来得到 Elasticsearch 集群的 fingerprint。

第一次 Elasticsearch 启动时的输出

针对 Elastic Stack 8.x 的安装来说,在我们第一次启动的时候,我们就可以看到 fingerprint 的输出:

从上面的输出中我们可以看到 fingerprint 的输出。

从 Kibana 的配置中得到

在很多的时候,我们没有记下 Elasticsearch 第一次启动时的 fingerprint 的输出。那我们该怎么办呢?另外一种方法就是从 Kibana 的配置文件中,我们可以得到这个信息。我们打开 config/kibana.yml 文件,并查看最后的一行:

config/kibana.yml

很显然,我们在上面的文件中查看到 fingerprint 的值。

通过证书来获得

我们可以在 Elasticsearch 的安装目录中查看到证书所在的位置:

$ pwd
/Users/liuxg/elastic/elasticsearch-8.6.1
$ ls config/certs/
http.p12      http_ca.crt   transport.p12

从上面的显示中,我们可以看到在安装过程中,Elasticsearch 生成的三个证书文件。我们使用如下的命令来获得 fingerprint:

openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt

在实际的使用中,我们需要使用到没有冒号的 fingerprint。我们可以使用如下的命令来进行生成:

openssl x509 -in config/certs/http_ca.crt -sha256 -fingerprint | grep sha256 | sed 's/://g'
$ pwd
/Users/liuxg/elastic/elasticsearch-8.6.1
$ openssl x509 -in config/certs/http_ca.crt -sha256 -fingerprint | grep sha256 | sed 's/://g'
sha256 Fingerprint=F8FA6EA4326C13224D952C5E0B2D36AFB18135A505EF41FC25490EBB5A652122

上面的输出结果显示的是没有冒号的 fingerprint。

通过 openssl s_client 来获得

如果你无权访问 Elasticsearch 生成的 CA 文件,你可以使用以下脚本通过 openssl s_client 输出 Elasticsearch 实例的根 CA fingerprint:

openssl s_client -connect localhost:9200 -servername localhost -showcerts </dev/null 2>/dev/null | while openssl x509 -sha256 -subject -issuer -fingerprint -noout 2>/dev/null; do :; done
$ openssl s_client -connect localhost:9200 -servername localhost -showcerts </dev/null 2>/dev/null | while openssl x509 -sha256 -subject -issuer -fingerprint -noout 2>/dev/null; do :; done
subject=CN = liuxgm.local
issuer=CN = Elasticsearch security auto-configuration HTTP CA
sha256 Fingerprint=F1:C7:FD:E5:3F:0D:9D:AD:54:FD:6A:C9:76:7B:C4:E9:37:F3:C7:F5:C1:5A:8B:FC:E3:7C:AD:C2:25:96:2D:F8
subject=CN = Elasticsearch security auto-configuration HTTP CA
issuer=CN = Elasticsearch security auto-configuration HTTP CA
sha256 Fingerprint=F8:FA:6E:A4:32:6C:13:22:4D:95:2C:5E:0B:2D:36:AF:B1:81:35:A5:05:EF:41:FC:25:49:0E:BB:5A:65:21:22

配置 Beats

一旦得到 Elasticsearch 集群证书的 fingerprint,我们可以通过如下的方式来配置 Beats,比如 Metricbeat。我们可以编辑 Metricbeat 的配置文件 metricbeat.yml 文件:

output.elasticsearch:# Array of hosts to connect to.hosts: ["localhost:9200"]# Protocol - either `http` (default) or `https`.protocol: "https"# Authentication credentials - either API key or username/password.#api_key: "id:api_key"username: "elastic"password: "gV4pgxNCTi5y*80GmoqN"ssl:enabled: trueca_trusted_fingerprint: "F8FA6EA4326C13224D952C5E0B2D36AFB18135A505EF41FC25490EBB5A652122"

如上所示,我们配置 ssl 项,并把从上面获得的 fingerprint 填入:

我们可以打入如下的命令来进行测试:

$ pwd
/Users/liuxg/elastic/metricbeat-8.6.1-darwin-aarch64
$ ./metricbeat test config
Config OK
$ ./metricbeat test output
elasticsearch: https://localhost:9200...parse url... OKconnection...parse host... OKdns lookup... OKaddresses: ::1, 127.0.0.1dial up... OKTLS...security: server's certificate chain verification is enabledhandshake... OKTLS version: TLSv1.3dial up... OKtalk to server... OKversion: 8.6.1

上面表明我们的 fingerprint 的配置是成功的。它可以连接到 Elasticsearch。我们可以通过如下的命令来生成相应的 Dashboard:

$ pwd
/Users/liuxg/elastic/metricbeat-8.6.1-darwin-aarch64
$ ./metricbeat setup
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards

上面显示我们已经成功地上传了 Dashboard。我们可以通过如下的命令来启动 Metricbeat:

我们可以在 Kibana 中查看 System 模块的 Dashbord:

 从上面我们可以看到 HOST 机器的指标信息。

Logstash 连接

同样地,我们也可以在 Logstash 的配置中使用 fingerprint。我们可以参照文档 Elasticsearch output plugin | Logstash Reference [8.6] | Elastic。我们使用如下的配置文件:

logstash.conf

input {generator {message => '{"id":2,"timestamp":"2019-08-11T17:55:56Z","paymentType":"Visa","name":"Darby Dacks","gender":"Female","ip_address":"77.72.239.47","purpose":"Shoes","country":"Poland","age":55}'count => 1}
}filter {json {source => "message"}if [paymentType] == "Mastercard" {drop {}}mutate {remove_field => ["message", "@timestamp", "path", "host", "@version", "log", "event"]}}output {stdout {codec => rubydebug}elasticsearch {hosts => ["https://localhost:9200"]index => "data-%{+YYYY.MM.dd}"user => "elastic"password => "gV4pgxNCTi5y*80GmoqN"ssl => trueca_trusted_fingerprint => "F8FA6EA4326C13224D952C5E0B2D36AFB18135A505EF41FC25490EBB5A652122"}
}

我们使用如下的命令来启动 Logstash:

$ pwd
/Users/liuxg/elastic/logstash-8.6.1
$ ./bin/logstash -f logstash.conf

上面显示我们已经成功地写入一条文档到 Elasticsearch 中去了。我们到 Kibana 中进行查看:

从上面,我们可以看出来,文档已经被成功地写入到 Elasticsearch 中去了。

好了,今天的分享就到这里。祝大家学习愉快!

Beats:使用 fingerprint 来连接 Beats/Logstash 和 Elasticsearch相关推荐

  1. Observability:Data pipeline:Beats => Redis => Logstash => Elasticsearch

    在 Elastic Stack 的架构中,我们通常使用如下的一个图来表示: 如上图所示,我们通常会使用 Kafka 或者 Redis 作为一种 Message Queue(消息队列)来作为一种数据的缓 ...

  2. ELK(Logstash+Elasticsearch+Kibana)的原理和详细搭建

    一. Elastic Stack Elastic Stack是ELK的官方称呼,网址:https://www.elastic.co/cn/products ,其作用是"构建在开源基础之上, ...

  3. Elastic:我应该使用 Logstash 或是 Elasticsearch ingest 节点?

    在写这篇文章之前,我也是不是很清楚,感觉 Elasticsearch 的 ingest node 的功能越来越强大.在一次聚会上,我的一个同事也告诉我现在使用 ingest node 在社区里越来越普 ...

  4. Logstash+Redis+Elasticsearch+Kibana+Nginx搭建日志分析系统

    为什么80%的码农都做不了架构师?>>>    前言: 随着实时分析技术的发展及成本的降低,用户已经不仅仅满足于离线分析.目前我们服务的用户包括微博.微盘.云存储.弹性计算平台等十多 ...

  5. 【云上ELK系列】Logstash迁移Elasticsearch数据方法解读

    Elasticsearch中数据搬迁是工程师们经常会做的,有时是为了集群迁移.有时是为了数据备份.有时是为了升级等等,迁移的方式也有很多种,比如说通过elasticsearch-dump.通过snap ...

  6. 23-windows下filebeat与logstash与elasticSearch的合并使用

    简介:windows下filebeat与logstash与elasticSearch的合并使用 filebeat 收集运送日志 logstash 过滤整合日志 elasticSearch存储日志 1. ...

  7. 将logstash与elasticsearch性能匹配的几点尝试

    背景 公司的测试环境4核8G内存,安装部署ELK技术栈 elastic search6.2.4 分配4G内存空间 kibana 6.2.4 logstash 6.2.4 并集成了xpack 发生性能不 ...

  8. Logstash [logstash.outputs.elasticsearch][main] retrying failed action with response code: 403

    问题描述: 今天发现当天的索引在ES中并没有创建,logstash中不停的报错: [2021-05-24T05:47:51,904][INFO ][logstash.outputs.elasticse ...

  9. beats 耳机 android,beatsapp下载-Beats耳机 安卓版v2.1-pc6智能硬件网

    Beats耳机app是一款专门用来控制Beats耳机的智能影音软件.beatsapp是通过蓝牙与beats耳机相连接的.连接之后打开Beats耳机app就能控制音量.切换歌曲等多种操作! 软件介绍 B ...

最新文章

  1. 为什么servlet-nameaction/servlet-name要这么写
  2. python中字典的value可以为任意对象_Python学习入门(13)—字典
  3. SQL2008R2 不支持用该后端版本设计数据库关系图或表
  4. PHP设计模式之:单例模式
  5. php的yii简介,yii
  6. ARM Linux启动过程分析
  7. 开发java流程步骤,优秀Java开发人员的10个步骤
  8. 热门专业学习之关于java的一些知识
  9. spring 事务隔离级别和传播行为_Java工程师面试1000题146-Spring数据库事务传播属性和隔离级别...
  10. 简单干净的Emlog6.0.1技术导航模板源码-视频教程
  11. 自定义头文件 No such file or directory
  12. java 模式匹配_java模式匹配之蛮力匹配
  13. VC 2012 visualstudio的项目属性表 .props文件
  14. 用AlexNet训练MSTAR数据集
  15. python、pygame开发的太空大战游戏源代码,供学习参考
  16. 在python终端中打印颜色的3中方式(python3经典编程案例)
  17. ultron,奥创,ultron官网,奥创官网,奥创中国区官网,ultron中国区官网,奥创公链,ultron公链,ulx,ultron奥创,海洋renhe333333
  18. 如何实现系统的单点登录?
  19. 蓝奏云链接打不开,原因以及解决办法。
  20. 2022年大学应届生破千万,就业形势严峻,打工人准备好了吗?

热门文章

  1. 联想s41-70进入BIOS界面
  2. 读书会小程序开发制作功能介绍
  3. 加薪——爱你在心口难开 1
  4. 智能操控装置ASD在北京大兴机场高压开关柜的应用
  5. STM32F407探索者,DMA串口接收
  6. 读《华为HMS生态与应用开发实战》
  7. vue给input框属性赋值的方法
  8. 假期穿上这款超轻亲子鞋,蹦蹦哒哒合家欢丨钛空舱
  9. 「GoTeam 招聘时间」容联云 Go运维开发(武汉)
  10. c 矩阵变matlab矩阵,【原创】矩阵Given变换Matlab代码