首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Elasticsearch(ES)-Logstash

Elasticsearch(ES)-Logstash

作者头像
运维小路
发布2025-08-09 16:00:02
发布2025-08-09 16:00:02
7400
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS

Elasticsearch ES (本章节)

我们前面介绍了ELK在早期的时候是一个整体,哪个时候还没有我们上个小节介绍的Beat家族,采集&过滤均是采用Logstash来进行的,虽然目前他使用并不多,所以这个小节我们还是来做一个简单介绍。

采集路径按照下面的流程来,我们利用Logstash的分析处理能力,当然Kibana是我们下个小节的内容。

1.安装Logstash

代码语言:javascript
代码运行次数:0
运行
复制
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.29-linux-x86_64.tar.gz
tar xvf logstash-7.17.29-linux-x86_64.tar.gz

2.配置Fliebeat

让Fliebeat采集数据,输出到Logstash。

代码语言:javascript
代码运行次数:0
运行
复制
# 最简配置 - 仅需10行
filebeat.inputs:
- type: filestream
  paths:
    - /var/log/nginx/access.log
  fields: 
    log_type: "nginx"

output.logstash:
  hosts: ["localhost:5044"]  # Logstash 地址

3.配置Logstash

代码语言:javascript
代码运行次数:0
运行
复制
# vi /root/logstash-7.17.29/config/nginx-pipeline.conf

input {
  beats {
    port => 5044
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
    target => "@timestamp"
  }
  ruby {
    code => '
      event.set("minute_timestamp", event.get("@timestamp").time.strftime("%Y.%m.%d.%H%M"))
    '
  }
  mutate {
    remove_field => ["timestamp"]
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.31.171:9200","http://192.168.31.172:9200","http://192.168.31.173:9200"]
    index => "nginx-logs-%{minute_timestamp}"
  }
  stdout {
    codec => rubydebug {
      metadata => true
    }
  }
}

4.启动Logstash

注:logstash并不要求必须要非root启动,这里是采用前台启动,会产生大量的标准输出。

代码语言:javascript
代码运行次数:0
运行
复制
cd /root/logstash-7.17.29
./bin/logstash -f ./config/nginx-pipeline.conf

5.查询ES索引

代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost ~]# curl -X GET "http://192.168.31.171:9200/_cat/indices?v" |grep log
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14430  100 14430    0     0   331k      0 --:--:-- --:--:-- --:--:--  335k
green  open   nginx-logs-2025.08.05.1430         ZVqOZ3SzTCCJZno-sTfzvw   1   1      60109            0      5.2mb          2.5mb
green  open   nginx-logs-2025.08.05.1431         OQNrQkzfQcmer3zrn9HYHw   1   1      60070            0      5.8mb          2.9mb
green  open   nginx-logs-2025.08.05.1432         JAQDlK9vS9aQh2FFJ17n4A   1   1       8987            0    940.6kb        514.4kb
green  open   nginx-logs-2025.08.05.1423         xhr_N-XYSSmRjLBUnPduxg   1   1      11724            0      1.4mb        757.3kb

6.对比数据

经过logstash处理过的数据

未经过Logstash的原始数据

7.区别

当然Logstash还有很多功能,这里只是通过一个简单的例子来介绍他的数据处理能力。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档