ELK应用(filebeat8.7+kafka2.12+logstash8.7+elasticsearch8.7+kibana8.7)

本文详细介绍了在CentOS7操作系统中安装和配置ELK(Elasticsearch、Logstash、Kibana)的过程,包括Java的安装、各组件的配置以及Filebeat和Kafka的设置,主要用于日志管理和数据可视化。
摘要由CSDN通过智能技术生成

ELK是一个开源的数据分析和可视化平台,它由 Elasticsearch、Logstash 和 Kibana 三部分组成。其中,Elasticsearch 用于存储和查询日志数据,Logstash 用于收集、过滤和转换数据,而 Kibana 则是一个数据可视化和分析工具。ELK 的主要应用场景是日志管理,如系统日志、应用程序日志、网络设备日志等,可以实现快速、实时地分析和查询大规模的日志数据,为运维工作提供有力的支持。

在CentOS7环境下,安装ELK可以分为五个步骤:安装Java、安装Elasticsearch、安装Logstash、安装Kibana、安装Filebeat和Kafka。以下是详细的安装步骤:

  1. 安装Java

ELK是基于Java开发的,因此需要先安装Java运行环境。可以使用以下命令安装:

sudo yum install java-1.8.0-openjdk-devel

  1. 安装Elasticsearch

Elasticsearch是ELK的核心组件,用于存储和查询日志数据。可以使用以下命令安装:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/elasticsearch.repo

在文件中添加以下内容:

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

然后执行以下命令安装:

sudo yum install elasticsearch

安装完成后,打开Elasticsearch配置文件/etc/elasticsearch/elasticsearch.yml并进行以下配置:

cluster.name: elk-cluster
node.name: node-1
network.host: 0.0.0.0

最后启动Elasticsearch并设置开机启动:

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

  1. 安装Logstash

Logstash用于收集、过滤和转换数据。可以使用以下命令安装:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/logstash.repo

在文件中添加以下内容:

[logstash-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

然后执行以下命令安装:

sudo yum install logstash

安装完成后,打开Logstash配置文件/etc/logstash/conf.d/logstash.conf并进行以下配置:

input {
  kafka {
    bootstrap_servers => "localhost:9092"
    topics => ["test"]
    codec => multiline {
      pattern => "^\["
      negate => true
      what => "previous"
    }
  }
}

filter {
  grok {
    match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] %{LOGLEVEL:level} \[%{DATA:logger}\] %{GREEDYDATA:message}" }
  }
  date {
    match => [ "timestamp", "ISO8601" ]
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
}

以上配置使用Logstash从Kafka中收集数据,如果数据为多行,则使用codec插件合并为一行。接着使用grok插件进行格式化,最后通过elasticsearch插件将数据存储到Elasticsearch中。需要注意的是,如果使用其他数据源,则需要针对具体的数据源进行相应的配置。

最后启动Logstash并设置开机启动:

sudo systemctl start logstash
sudo systemctl enable logstash

  1. 安装Kibana

Kibana是一个数据可视化和分析工具。可以使用以下命令安装:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/kibana.repo

在文件中添加以下内容:

[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

然后执行以下命令安装:

sudo yum install kibana

安装完成后,打开Kibana配置文件/etc/kibana/kibana.yml并进行以下配置:

server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

最后启动Kibana并设置开机启动:

sudo systemctl start kibana
sudo systemctl enable kibana

  1. 安装Filebeat和Kafka

Filebeat是一个轻量级的日志收集器,可以将日志数据发送到Kafka或者直接发送到Logstash。Kafka则是一个高性能分布式消息系统,用于处理大规模的消息数据。可以使用以下命令安装:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/elastic.repo

在文件中添加以下内容:

[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

然后执行以下命令安装:

sudo yum install filebeat kafka

安装完成后,打开Filebeat配置文件/etc/filebeat/filebeat.yml并进行以下配置:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/messages
  multiline.pattern: '^[[:space:]]'
  multiline.negate: false
  multiline.match: after

output.kafka:
  enabled: true
  hosts: ["localhost:9092"]
  topic: "test"

以上配置使用Filebeat从/var/log/messages中收集日志数据,并将数据发送到Kafka的test主题中。如果需要将数据直接发送到Logstash,则可以修改为以下配置:

output.logstash:
  hosts: ["localhost:5044"]

需要注意的是,如果源文件中的数据为多行,则需使用multiline插件进行配置。以上配置中的multiline.pattern为正则表达式,用于匹配多行的起始行。multiline.negate为true表示匹配非起始行,而multiline.match为after表示将多行合并到后面的一行中。

最后启动Filebeat并设置开机启动:

sudo systemctl start filebeat
sudo systemctl enable filebeat

至此,ELK的安装和配置已经完成。在实际使用中,还需要根据具体的场景进行相应的优化和配置,如增加Elasticsearch的节点、调整Logstash的过滤规则、优化Kibana的查询性能等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值