ELK日志收集分析系统配置

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

1、elasticsearch集群搭建

2、logstash日志收集

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

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

3、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 => 6379
        db => 5
        key => "logstash:%{[server]}"
    }
}

run起来:

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

2、indexer.conf

input {
    redis {
        host => "10.94.99.55"
        port => 6379
        db => 5
        #如果这里选择了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 => 9211
        #配置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的文件,记录上次读取文件到什么地方

时间: 2024-11-05 17:05:52

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

结合Docker快速搭建ELK日志收集分析平台

结合Docker快速搭建ELK日志收集分析平台 2017-03-27 09:39 阅读 172 评论 0 作者:马哥Linux运维-Eason ELK Stack ELK (Elasticsearch + Logstash + Kibana),是一个开源的日志收集平台,用于收集各种客户端日志文件在同一个平台上面做数据分析. Introduction Elasticsearch, 基于json分析搜索引擎Logstash, 动态数据收集管道Kibana, 可视化视图将elasticsearh所收集

ELK:日志收集分析平台

目录 简介 环境说明 Filebeat 部署 web上采集配置文件 app上采集配置文件 Redis 部署 配置文件 Logstash 部署 Elasticsearch 集群部署 配置文件 Kibana 部署 参考文档 简介 ELK是一个日志收集分析的平台,它能收集海量的日志,并将其根据字段切割.一来方便供开发查看日志,定位问题:二来可以根据日志进行统计分析,通过其强大的呈现能力,挖掘数据的潜在价值,分析重要指标的趋势和分布等,能够规避灾难和指导决策等.ELK是Elasticsearch公司出品

elk日志收集之rsyslog软连接监控文件深度坑

业务中通过rsyslog监控本地文件收集了一些redis和mc的慢日志,推到elk集群分析,这些日志一天一个文件,每晚零点5分通过计划任务用软连接的方式将新的文件固定到指定文件下,但是最近发现日志丢了很多,分析中发现了一个深坑,先说下现有的配置: ....................... 浏览全部请点击运维网咖社地址:elk日志收集之rsyslog软连接监控文件深度坑

elkb+redis建立日志收集分析系统

一.ELKB说明 elastic提供了一套非常高级的工具ELKB来满足以上这几个需求.ELKB指的是用于日志分析或者说数据分析的四个软件,各自拥有独立的功能又可以组合在一起.先来简单介绍一下这四个软件. Elastic Search: 从名称可以看出,Elastic Search 是用来进行搜索的,提供数据以及相应的配置信息(什么字段是什么数据类型,哪些字段可以检索等),然后你就可以自由地使用API搜索你的数据. Logstash:.日志文件基本上都是每行一条,每一条里面有各种信息,这个软件的功

日志收集分析系统架构

日志收集分析系统架构   一.部署架构 日志收集系统一般包括如图所示三层.Web服务器层,日志收集层,日志存储层.Web服务器层是日志的来源,一般部署web应用供用户访问,产生日志,该节点上一般需要部署日志收集程序的agent.日志收集层手机web服务器产生的日志传输给日志存储层,存储层一般使用分布式文件系统HDFS,日志可以存储在hdfs上或者hbase上. 以scribe作为日志收集系统架构,scribe分为scribe agent和scribe server 以kafka作为日志收集系统架

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

syslog-ng日志收集分析服务搭建及配置:1.网上下载eventlog_0.2.12.tar.gz.libol-0.3.18.tar.gz.syslog-ng_3.3.5.tar.gz三个软件: 2.解压及安装服务端: [[email protected] tools]# tar xf eventlog_0.2.12.tar.gz [[email protected] tools]# cd eventlog-0.2.12/ [[email protected] eventlog-0.2.12

logstash日志收集分析系统elasticsearch&kibana

logstash日志收集分析系统Logstash provides a powerful pipeline for storing, querying, and analyzing your logs. When using Elasticsearch as a backend data store and Kibana as a frontend reporting tool, Logstash acts as the workhorse. It includes an arsenal of

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

filebeat+elk日志收集平台搭建流程 1.         整体简介: 模式:单机 平台:Linux - centos - 7 ELK:elasticsearch.logstash.kibana三款开源软件的集合. FILEBEAT:代替logstash的采集功能,轻量.耗用小. 目前收集的有nginx日志.java日志[单行|多行]. 都是通过在客户端的生成日志配置文件中定义好初步json格式,然后利用filebeat采集到logstash,存储到elasticsearch,最后通过k

在linux中快速使用docker搭建ELK日志监控分析系统

在linux中使用docker安装ELK日志监控分析系统 网上的教程非常零散或者很多都已经过时了,我这里总结了相比于其他更新的日志系统搭建.并且使用docker镜像,更加简化了安装.在这开始之前先附上我的成功配置截图: linux的安装 linux的安装很简单,但是要使用docker必须安装centos7及以上,不然出现的各种兼容性问题自行百度解决.这里有两种方法: 如果是学生可以购买阿里或者腾讯的linux服务器,简单方便,每个月只要10元钱,其实挺划算的.这是阿里linux的购买地址:htt