ELK 介绍
ELK 是一套可用来收集、分析、展示日志信息的工具,主要由三部分组成:
- Logstash:Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据。(现在 ELK 增加了新的工具家族 Beats,其中包括 FileBeat 来读取日志文件并发送,更加简便轻量)
- Elasticsearch: 用于存储和分析日志。
- kibana: 可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。
部署
使用 Docker 部署,参考 github.com/deviantony/…
- Clone 项目
- 修改模式密码,我是全局搜索的
changeme
并替换为自己的密码,官网也有一套使用非特权账户的方案 github.com/deviantony/… - 修改 elasticsearch.yml 配置中的
xpack.license.self_generated.type
为basic
,不使用收费功能 - 修改 kibana.yml 中的
server.publicBaseUrl
为要配置的域名:log.frhello.com:5601 - 构建启动:
docker-compose up
登录 kibana
如果没有修改密码使用默认账户 elastic
加默认密码登录,默认地址 localhost:5601
日志写入
使用文件采集的方式写入日志,参考:www.elastic.co/guide/en/be…
中文参考:cloud.tencent.com/developer/a…
filebeat
filebeat 是一个轻量级的文件日志记录器,可以将本机的日志文件发送到指定的 logstash 或 elastic
- filebeat docker hub 镜像:hub.docker.com/r/elastic/f…
- filebeat docker 使用说明:www.elastic.co/guide/en/be…
- filebeat 配置:www.elastic.co/guide/en/be…
- filebeat 配置:www.elastic.co/guide/en/be…
- filebeat 配置中通过 keystore 存储敏感数据:www.elastic.co/guide/en/be…
各语言写入日志
直接使用 Elastic Common Schema (ECS)
直接使用 Elastic 的 json 日志格式,无需再次转换:www.elastic.co/guide/en/ec…
需要注意在 filebeat.yaml 配置中添加解码 json 的相关配置
1 | yaml复制代码json.keys_under_root: true |
C#
Nlog 日志组件有一个直接写入 elastic 的 target:github.com/markmcdowel…
Serilog 和 NLog ESC 日志:www.elastic.co/guide/en/ec…
ESC 文档:www.elastic.co/guide/en/ec…
参考
本文转载自: 掘金