Elasticsearch(ES)-Logstash

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

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

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS

Elasticsearch ES (本章节)

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

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

1.安装Logstash

ruby 复制代码
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。

yaml 复制代码
# 最简配置 - 仅需10行
filebeat.inputs:
- type: filestream
  paths:
    - /var/log/nginx/access.log
  fields: 
    log_type: "nginx"

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

3.配置Logstash

ini 复制代码
# 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启动,这里是采用前台启动,会产生大量的标准输出。

bash 复制代码
cd /root/logstash-7.17.29
./bin/logstash -f ./config/nginx-pipeline.conf

5.查询ES索引

ruby 复制代码
[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还有很多功能,这里只是通过一个简单的例子来介绍他的数据处理能力。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
日取其半万世不竭7 小时前
用 Portainer 可视化管理 Docker:容器再多也不用背命令了
运维·docker·容器
2023自学中7 小时前
Linux 图形系统
linux
mounter62510 小时前
高性能网络技术演进与创新探索:RDMA、eBPF/XDP 深度解析及 LSF/MM/BPF 2023 专题演讲
linux·ebpf·linux kernel·kernel·rdma·xdp
动恰客流统计10 小时前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能
名字还没想好☜10 小时前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
阿里云大数据AI技术12 小时前
阿里云 Elasticsearch 9.4 Agent Builder 实战
人工智能·elasticsearch·agent
ziguo112213 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
无垠的广袤13 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
会编程的土豆14 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
砍材农夫14 小时前
运维|devops|jenkins构建应用发布
运维·jenkins·devops