ELK是日志收益与分析的利器。

1、elasticsearch集群搭建

2、logstash日志收集

我这里的实现分如下2步,中间用redis队列做缓冲,可以有效的避免es压力过大:

1、n个agent对n个服务的log做日志收集(1对1的方式),从日志文件解析数据,存入broker,这里用的是redis的发布订阅模式的消息队列,当然你可以选用kafka,redis比较方便;

2、indexer做日志汇总,从redis队列中拿数据入es;

下面给出agent和index的配置示例:

1、driver_schedule.conf

input {
file {
#这是日志路径
path => [
"/home/xiaoju/driver-schedule-api/logs/driver-schedule-api.info.*",
"/home/xiaoju/driver-schedule-api/logs/driver-schedule-api.error.*"
]
#排除路径,支持glob展开,但是不递归
exclude => [
"access.*"
]
#开始位置,beginning从日志开始读取
start_position => "beginning"
#sincedb指示的文件,记录日志读取位置
sincedb_path => "/home/xiaoju/yangfan/local/logstash-1.4.2/sincedb/driver_schedule_progress"
#添加记录字段
add_field => {
"server" => "driver_schedule"
}
#编码器,正则pattern多行合并
codec => multiline {
pattern => "^\d+:\d+"
negate => true
what => "previous"
}
}
} filter {
#匹配路径中包涵info
if [path] =~ "info" {
#mutate更改值
mutate {
replace => { "type" => "info" }
}
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
}else if [path] =~ "error" {
mutate {
replace => { "type" => "error" }
}
} else {
mutate { replace => { "type" => "unknow" } }
} date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
} output {
#debug格式化打印
#stdout{codec => rubydebug}
redis {
host => "10.94.99.55"
#这里用的是redis订阅模式,对应indexer的data_type应是pattern_channel
data_type => "channel"
port =>
db =>
key => "logstash:%{[server]}"
}
}

run起来:

nohup ./bin/logstash -f ./conf/agent/driver_schedule.conf &

2、indexer.conf

input {
redis {
host => "10.94.99.55"
port =>
db =>
#如果这里选择了pattern_channel, 采用的是redis的订阅方式, agent里data_type就要对应channel
data_type => "pattern_channel"
#这是所有的key的匹配pattern
key => "logstash:*"
}
} output {
elasticsearch {
embedded => false
protocol => "http"
host => "10.94.99.56"
port =>
#配置es索引名字
index => "%{[server]}"
#配置es索引类型
index_type => "%{[type]}"
}
#debug使用, 格式化打印
#stdout{codec => rubydebug}
}

run起来:

nohup ./bin/logstash -f ./conf/indexer/indexer.conf &

3、kibana配置

网上教程比较多,这里我只mark一些问题的解决方法:

1、connection failure:

checklist:

1、配置kibana的config.js里的es地址

2、如果es版本>1.4则需要在es的配置里加入

http.cors.allow-origin: "/.*/"

http.cors.enabled: true

注意事项:

1、ES和logstash最好选用相同大版本,不然可能写不进去

2、logstash会写一个syncsys的文件,记录上次读取文件到什么地方

ELK日志收集分析系统配置的更多相关文章

  1. ELK日志收集分析平台部署使用

    一.ELK介绍 开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成: 1.ElasticSearch是一个基于 ...

  2. ELK日志收集分析平台 (Elasticsearch+Logstash+Kibana)使用说明

    使用ELK对返回502的报警进行日志的收集汇总 eg:Server用户访问网站返回502 首先在zabbix上找到Server的IP 然后登录到elk上使用如下搜索条件: pool_select:X. ...

  3. ELK/EFK——日志收集分析平台

    ELK——日志收集分析平台 ELK简介:在开源的日志管理方案之中,最出名的莫过于ELK了,ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成.1)ElasticSea ...

  4. 用ELK搭建简单的日志收集分析系统【转】

    缘起 在微服务开发过程中,一般都会利用多台服务器做分布式部署,如何能够把分散在各个服务器中的日志归集起来做分析处理,是一个微服务服务需要考虑的一个因素. 搭建一个日志系统 搭建一个日志系统需要考虑一下 ...

  5. ELK:日志收集分析平台

    简介 ELK是一个日志收集分析的平台,它能收集海量的日志,并将其根据字段切割.一来方便供开发查看日志,定位问题:二来可以根据日志进行统计分析,通过其强大的呈现能力,挖掘数据的潜在价值,分析重要指标的趋 ...

  6. SpringBoot使用ELK日志收集

    本文介绍SpringBoot应用配合ELK进行日志收集. 1.有关ELK 1.1 简介 在之前写过一篇文章介绍ELK日志收集方案,感兴趣的可以去看一看,点击这里-----> <ELK日志分 ...

  7. springboot 集成 elk 日志收集功能

    Lilishop 技术栈 官方公众号 & 开源不易,如有帮助请点Star 介绍 官网:https://pickmall.cn Lilishop 是一款Java开发,基于SpringBoot研发 ...

  8. syslog-ng日志收集分析服务搭建及配置

    syslog-ng日志收集分析服务搭建及配置:1.网上下载eventlog_0.2.12.tar.gz.libol-0.3.18.tar.gz.syslog-ng_3.3.5.tar.gz三个软件: ...

  9. FILEBEAT+ELK日志收集平台搭建流程

    filebeat+elk日志收集平台搭建流程 1.         整体简介: 模式:单机 平台:Linux - centos - 7 ELK:elasticsearch.logstash.kiban ...

随机推荐

  1. Spring 对缓存的抽象

    Cache vs. Buffer A buffer is used traditionally as an intermediate temporary store for data between ...

  2. python re group()

    python group() 正则表达式中,group()用来提出分组截获的字符串,()用来分组 import re a = "123abc456" print re.search ...

  3. 团队作业4——第一次项目冲刺(Alpha版本) 4.24

    团队作业4--第一次项目冲刺(Alpha版本) Day four: 会议照片 每日站立会议: 项目进展 今天是项目的Alpha敏捷冲刺的第三天,先大概整理下昨天已完成的任务以及今天计划完成的任务.今天 ...

  4. 201521123066 《Java程序设计》第三周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...

  5. 201521123013 《Java程序设计》第14周学习总结

    1. 本周学习总结 2. 书面作业 Q1. MySQL数据库基本操作 1.1 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 1.2 在自己建立的数据库上执行常见SQ ...

  6. 201521123096《Java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  7. Junit4学习(二)测试失败的情况

    一,前言 首先理解: 1,测试用例不是证明你是对的,而是证明你没有错 2,测试用例用来达到想要的预期结果,但对于逻辑错误无能为力 二,两种测试失败:error And Failure 1,Failur ...

  8. Mysql常用命令大全

    1.连接Mysql 格式: mysql ­h主机地址 ­u用户名 -p用户密码 2.1 创建数据库 命令:create database <数据库名> 例1:建立一个名为xhkdb的数据库 ...

  9. C#设计模式(6)-原型模式

    引言 上一篇介绍了设计模式中的抽象工厂模式-C#设计模式(3)-建造者模式,本篇将介绍原型模式: 点击这里查看全部设计模式系列文章导航 原型模式简介 原型模式:用原型实例指定创建对象的种类,并且通过拷 ...

  10. Python爬虫总结

    Python爬虫的原理:1通过URLopen()来获取到url页面, 这个过程可以加代理 2这个页面上都是字符串,所以我们而通过字符串查找的方法来获取到目标字符串,用到了正则来匹配目标re.finda ...