linux ELK+kafka构建日志收集系统之环境安装

背景

ELK由Elasticsearch、Logstash和Kibana三部分组件组成;

  • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

  • Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用

  • kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

搭建环境

ELK+Kafka 执行原理图

在这里插入图片描述

搭建步骤

  • Kafka以及zookpeer的安装
  • elk的安装
  • 使用springboot发送消息到kafka并使用kibana查看日志

Kafka+zookeeper单机安装配置

http://kafka.apache.org/quickstart

Kafka+zookeeper集群可以分开搭建,也可以使用Kafka自带的zookeeper 本次安装采用kafka自带的zookeeper

解压

# 解压 kafka_2.13-2.5.1.tgz
 tar -xzvf kafka_2.13-2.5.1.tgz
# 为 kafka 创建软链接
 ln -sv kafka_2.13-2.5.1 ../kafka
# 进入kafka
cd kafka

启动zookeeper

启动zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties &

启动kafka

启动kafka

bin/kafka-server-start.sh config/server.properties &

创建topic quickstart-events

bin/kafka-topics.sh --create --topic logger-channel --bootstrap-server 20.26.99.21:8092

查看已经创建的topic

 bin/kafka-topics.sh --list --zookeeper localhost:2181

生产者发送消息

$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
>This is my first event
>This is my second event

消费者接受消息

$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
This is my first event
This is my second event

logstash

解压

tar -xzvf logstash-7.9.1.tar.gz
# 进入文件夹
cd logstash-7.9.1

修改配置文件

logstash-sample.conf的配置文件拷贝到根目录下重新命名为core.conf

扫描二维码关注公众号,回复: 12352400 查看本文章
cp config/logstash-sample.conf ./core.conf

编辑文件

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
 # Sample Logstash configuration for creating a simple
    # Beats -> Logstash -> Elasticsearch pipeline.
    
    input {
    
    
      kafka {
    
    
        id => "my_plugin_id"
        bootstrap_servers => "20.26.99.21:8092"
        topics => ["logger-channel"]
        auto_offset_reset => "latest" 
        decorate_events => true    #在输出消息的时候回输出自身的信息,包括:消费消息的大小、topic来源以及consumer的group信息。
        type => "statistic"
      }
    }
    #filter {
    
    
    
    #    grok {
    
    
    #      patterns_dir => ["./patterns"]
    #        match => {
    
     "message" => "%{WORD:module} \| %{LOGBACKTIME:timestamp} \| %{LOGLEVEL:level} \| %{JAVACLASS:class} - %{JAVALOGMESSAGE:logmessage}" }
    #      }
        
        
    #}
    output {
    
    
      #stdout {
    
     codec => rubydebug }
      elasticsearch {
    
    
           hosts =>["localhost:8200"]
           index => "kafka"
      }
}

启动

bin/logstash -f core.conf --config.reload.automatic &

安装ES

解压

tar -xzvf  elasticsearch-7.9.1-linux-x86_64.tar.gz
# 进入文件夹
cd  elasticsearch-7.9.1

修改配置文件

修改端口号为8200

vi config/elasticsearch.yml
http.port: 8200

由于es 不能root 账号启动,需要新建账号cloud

新建账号

root添加用户名
useradd cloud
passwd cloud
输入两次密码  字母+数字

给账号赋权

chown -R cloud /app/cloud/

切到新账号上

su cloud

启动

 ./bin/elasticsearch &

查看所有索引数
http://20.26.99.21:8200/_cat/indices?v

安装kibana

解压

tar -xzvf kibana-7.9.1-linux-x86_64.tar.gz
# 进入文件夹
cd kibana-7.9.1

修改端口号

vi config/kibana.yml


server.port: 8601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:8200/"]
#elasticsearch.url: "http://20.26.99.21:8200"
kibana.index: ".kibana"

启动

./bin/kibana --allow-root &

创建索引 kafka
在这里插入图片描述

创建索引
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

访问地址

http://20.26.99.21:8601/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))&_a=(columns:!(_source),filters:!(),index:fe9b9250-f95b-11ea-9b5c-2bc75f19f1b3,interval:auto,query:(language:kuery,query:’’),sort:!())

猜你喜欢

转载自blog.csdn.net/jinian2016/article/details/108652775