在某些场景中,业务服务端或云上组件的日志会归档存储到对象存储 COS 中,在需要进行查询时,需要从 COS 中获取并查询日志。此时,可借助 Logstash 自动地读取 COS 中指定 bucket 的日志文件,然后写入到 Elasticsearch 中,再使用 Kibana 可视化组件进行查询和分析。
创建管道
1. 登录 Elasticsearch Service 控制台,单击 Logstash 管理,选择需要操作的实例,单击实例 ID/名称,进入实例基本信息页面。
2. 切换到“管道管理”页签,单击新建管道,创建一个管道。
3. 进入新建管道页面,单击引用模板。
同时引用“input-s3”和“output-elasticsearch”两个模板:
在管道配置中,分别针对“input-s3”和“output-elasticsearch”进行配置,一些关键的配置参数说明如下:
input-s3
access_key_id:腾讯云账号的 API 密钥 ID。
secret_access_key:腾讯云账号的 API 密钥 KEY。
endpoint:COS 对象存储的访问地址,不同地域的地址不同,如广州地域为
https://cos.ap-guangzhou.myqcloud.com
bucket:COS 对象存储的 bucket。
region:COS 对象存储 bucket 所在的地域,如 ap-guangzhou。
prefix:要读取的日志文件名称前缀。
output-elasticsearch
hosts:elasticsearch 集群地址列表。
user:elasticsearch 集群账号。
password:elasticsearch 集群密码。
index:索引名称。
document_type:索引 type,对于不同版本的 ES 集群,该字段有不同的默认值,5.x及以下的集群,默认会使用 input 中指定的 type 字段,如果 type 字段不存在,则该字段的值为 doc;6.x的集群,该字段默认值为 doc;7.x的集群,该字段默认值为_doc;8.x的集群,不会使用该字段。
document_id:文档 ID。
在配置完管道后,单击保存并部署即可创建一个管道并自动部署。
查看日志
在控制台查看 Logstash 的运行日志,如果没有 ERROR 级别的日志,则说明管道运行正常。
查看数据写入情况
进入到 output-elasticsearch 中定义的输出端的 ES 集群对应的 kibana 页面,在 Dev tools 工具栏里查看索引是否存在,以及索引的文档数量是否正确。