学习笔记(ElasticStack)

相关概述

日志在项目中起到了性能监控、异常定位、数据分析等非常重要的作用。虽然主流工具如 Tomcat,Nginx 等都会生成日志文件。但在分布式架构中,不同的服务部署在不同的服务器上,这样就产生了日志量大,数据分散,搜索不方便等问题。于是我们需要搭建集中式日志平台,将所有节点上的日志进行统一管理,让日志数据最大限度的发挥作用

Elastic 公司提供了一整套搭建集中式日志平台的解决方案。最开始由 Elasticsearch、Logstash、Kibana 三个工具组成,简称 ELK。在发展的过程中又有新成员 Beats 的加入,形成了 Elastic Stack

四大组件

组件(Elasticsearch)

Elasticsearch 基于 Java 开发的分布式搜索引擎,他可以对日志数据进行存储、搜索、分析等操作

组件(Kibana)

Kibana 为 Elasticsearch 提供了友好的日志分析 Web 界面,通过仪表板等可视化组件展示日志数据

组件(Logstash)

Logstash 可以对日志进行收集、分析处理,然后输出到存储系统如 Elasticsearch 中

组件(Beats)

由于 Logstash 是在 JVM 中运行,收集数据时资源消耗比较大,elastic 又推出了一系列轻量级的数据采集工具,这些工具统称为 Beats,Beats 收集的数据可以直接输出到 Elasticsearch 中,也可以通过 Logstash 处理后输出到 Elasticsearch 中。Beats 有以下常用工具

  • Filebeat:用于监控、收集服务器日志文件
  • Metricbeat:可以监控、收集系统的 CPU 使用率、内存、磁盘 IO 等数据,以及 Apache、NGINX、MongoDB、MySQL、Redis 等服务的指标

Beats

轻量型数据采集器 Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据

如果采集数据不需要任何处理,那么可以直接发送到 Elasticsearch 中。如果采集的数据需要处理,那么可以发送到 Logstash 中,处理完成后再发送到 Elasticsearch。最后通过 Kibana 对数据进行一系列的可视化展示

FileBeat

Filebeat是一款轻量型日志采集器,用于监控、收集服务器日志文件,首先 Filebeat 指定一些日志文件为数据输入源,之后使用 Harvester(收割机)源源不断的读取日志,最后通过 Spooler(卷轴)将日志数据传送到对应的目的地
在这里插入图片描述

安装软件(FileBeat)

官网地址:https://www.elastic.co/cn/downloads/beats/filebeat

下载然后解压即可

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.16-linux-x86_64.tar.gz

入门案例

随便在那个目录创建一个 mylog.log 文件,随机输入一些内容

vim /home/jianghao/jianghao/filebeat/mylog.log

在 filebeat 目录下创建 mylogconfig.yml 配置文件

vim mylogconfig.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
  	- /home/jianghao/jianghao/filebeat/mylog.log
output.console:
  pretty: true
  enable: true

启动 filebeat 文件

# 如果文件 mylogconfig.yml 的权限设置不符合要求,执行下面这个
chmod go-w /home/jianghao/jianghao/filebeat/filebeat-7.17.16-linux-x86_64/mylogconfig.yml

-e:标准输出,输出到控制台 -c:指定配置文件

./filebeat -e -c mylogconfig.yml

复制一个窗口为 mylog.log 追加内容,查看控制台输出

echo 'world' >> mylog.log

定义字段

Filebeat 读取日志文件后会生成 JSON 格式的日志,我们还可以为生成的日志添加一些自定义字段

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /home/jianghao/jianghao/filebeat/mylog.log
  tags: ["mylog"]    # 添加自定义标签,便于后续处理
  fields:                   # 添加自定义字段
    from: mylog
  fields_under_root: true   # true为添加到根节点,false为添加到子节点中
output.console:
  pretty: true
  enable: true

模板使用

在文件的 module 目录下,提供了大量软件的日志模板,我们只需要启用它即可,以 nginx 为例

# 查看启用和没启用的模板
./filebeat modules list

# 启用模板
./filebeat modules enable nginx 
# 配置日志处理模板
cd modules.d/

vim nginx.yml

加入如下配置

- module: nginx
 # Access logs
  access:
   enabled: true
   var.paths: ["/usr/local/nginx/logs/access.log"]
 # Error logs
  error:
   enabled: true
   var.paths: ["/usr/local/nginx/logs/error.log"]

修改外层的配置文件

vim mylogconfig.yml
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: true
output.console:
  pretty: true
  enable: true

启动 filebeat 文件

./filebeat -e -c mylogconfig.yml

输出到 ES

vim mylogconfig.yml
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: true
output.elasticsearch:
  hosts: ["192.168.0.104:9201"]

启动 filebeat 文件

./filebeat -e -c mylogconfig.yml

Metricbeat

Metricbeat 是一款轻量型指标采集器,用于收集操作系统及应用服务的指标数据

软件安装(Metricbeat)

官网地址:https://www.elastic.co/cn/downloads/beats/metricbeat

下载然后解压即可

wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.17.16-linux-x86_64.tar.gz

收集系统指标

修改 Metricbeat 默认配置文件

vim metricbeat.yml

只需要修改 output.elasticsearch 即可,默认的 system.yml 模板是开启的

metricbeat.config.modules:
  path: ${path.config}/modules.d/*.yml
# 采集到的数据输出到ES的路径
output.elasticsearch:
  hosts: ["192.168.0.104:9201"]

启动文件即可,然后其 kibana 查看有没有索引即可

./metricbeat -e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值