搭建ELK实时日志分析平台

Louis
发布于 2020-04-01 / 522 阅读 / 0 评论 / 0 点赞

搭建ELK实时日志分析平台

在复杂的企业应用服务群中,记录日志方式多种多样,并且不易归档以及提供日志监控的机制。无论是开发人员还是运维人员都无法准确的定位服务、服务器上面出现的种种问题,也没有高效搜索日志内容从而快速定位问题的方式。因此需要一个集中式、独立的、搜集管理各个服务和服务器上的日志信息,集中管理,并提供良好的UI界面进行数据展示,处理分析。

ELK介绍

1、ELK分别是Elasticsearch、Logstash、Kibana三个开源框架缩写。

框架简介作用
Elasticsearch开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、基于reasful风格、支持海量高并发的准实时搜索场景、稳定、可靠、快速、使用方便等。接收搜集的海量结构化日志数据,并提供给kibana查询分析
Logstash开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。用于收集日志,对日志进行过滤形成结构化数据,并转发到elasticsearch中。
Kibana开源日志报表系统,对elasticsearch以及logstash有良好的web页面支持。对elasticsearch提供的数据进行分析展示

日志服务器

  1. 搭建一个用于可视化的Kibana和用于搜索的Elasticsearch

需要新建一个文件夹用于存放数据

mkdir esdata
docker run --name elasticsearch -e ES_JAVA_POTS="-Xms256m -Xmx256m"  -e "discovery.type=single-node"  -v "/home/louis/esdata":/usr/share/elasticsearch/data -p 9200:9200 -d elasticsearch:7.6.1

https://blog.51cto.com/13555423/2455307?source=dra

  1. 运行可视化工具Kibana
docker run -d -p 5601:5601 \
--link elasticsearch:elasticsearch \
-e "I18N_LOCALE=zh-CN" \
-e "I18N_LOCALE=zh-CN" \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
--name kibana kibana:7.6.1

使用此方法创建Docker 日后需要开启只需要调用start

docker start elasticsearch
docker start kibanna

日志源主机

  1. 运行Logstash

需要写一个配置文件传进去

input {
        rabbitmq {
                host => "192.168.19.131"
                user => "louis"
                password => "louisyuan"
                queue => "ros_log"
                codec => "json"
                durable => true
        }
}

output {
  elasticsearch {
    hosts => [ "elasticsearch:9200" ]
  }
}


filter {
    date {
        match => ["timestamp", "yyyy-MM-dd HH:mm:ss",
	"MMM  d yyyy HH:mm:ss", "UNIX"]   
	target => "@timestamp"
    }
}

output {
        elasticsearch {
	     hosts => [ "elasticsearch:9200" ]
             index => "ros-log"
             }
}

该文件描述了在rabbitmq下订阅消息转发到elasticsearch这个过程中的映射关系。

使用7.6.1版本开启Logstash并且链接elasticsearch,如果源主机和服务器主机不是同一台机,需要改下elasticsearch指向的地址。

docker run -d -p 4560:4560 -v ~/logstash/logstash.conf:/etc/logstash.conf --link elasticsearch:elasticsearch --name logstash logstash:7.6.1 logstash -f /etc/logstash.conf

使用此方法创建Docker,日后需要开启只需要调用start

docker start logstash

参考链接

https://www.jianshu.com/p/b0454b6e654f


评论