简介

通常日志管理是逐渐崩溃的——当日志对于人们最重要的时候,也就是出现问题的时候,这个渐进的过程就开始了。
日志管理一般会经历一下3个阶段:

  1. 初级管理员将通过一些传统工具(如cat、tail、sed、awk、perl以及grep)对日志进行检查,但它的适用范围仅限于少量的主机和日志文件类型;

  2. 考虑到现实中的可扩展性问题,日志管理也会逐步进化,使用如rsyslog和syslog-ng这样的工具进行集中化的管理;

  3. 当日志信息越来越大的时候,从快速增长的日志数据流中提取出所需的信息,并将其与其他相关联的事件进行关联,将变得越加困难,此时LogStash就提供了一个很好的解决方案

LogStash的优势:

  1. 对日志数据更好的语法分析功能;

  2. 更加灵活的日志存储方式

  3. 附带搜索和目录功能

  4. 易于安装、可扩展、性能良好等

设计及架构

LogStash
由JRuby语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机(JVM)上。不同于分离的代理端(agent)或主
机端(server),LogStash可配置单一的代理端(agent)与其它开源软件结合,以实现不同的功能。

在LogStash的生态系统中,主要分为四大组件:

  1. Shipper:发送事件(events)至LogStash;通常,远程代理端(agent)只需要运行这个组件即可;

  2. Broker and Indexer:接收并索引化事件;

  3. Search and Storage:允许对事件进行搜索和存储;

  4. Web Interface:基于Web的展示界面

正是由于以上组件在LogStash架构中可独立部署,才提供了更好的集群扩展性。

在大多数情况下,LogStash主机可分为两大类:

  1. 代理主机(agent host):作为事件的传递者(shipper),将各种日志数据发送至中心主机;只需运行Logstash 代理(agent)程序;

  2. 中心主机(central host):可运行包括中间转发器(Broker)、索引器(Indexer)、搜索和存储器(Search and Storage)、Web界面端(Web Interface)在内的各个组件,以实现对日志数据的接收、处理和存储。

部署

基础环境

um install java-1.7.-openjdk
java -version # 保证java版本为1.

部署LogStash

# 下载
wget https://download.elasticsearch.org/logstash/logstash/logstash-1.3.1-flatjar.jar -O logstash.jar
# 启动
java -jar logstash.jar agent -v -f shipper.conf # 启动shipper
java -jar logstash.jar agent -v -f indexer.conf # 启动indexer

部署Redis

# 安装
yum install redis-server
# 启动
/etc/init.d/redis-server start
# 测试
$ redis-cli -h 192.168.12.24
redis 192.168.12.24:> PING
PONG

部署Elasticsearch

# 下载
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.8.noarch.rpm
# 安装
rpm -ivh elasticsearch-0.90..noarch.rpm
# 启动
/etc/init.d/elasticsearch status

启动Kibana

# 安装
java -jar logstash.jar web # LogStash 1.3.1自带Kibana
# 查看
http://192.168.12.24:9292

Logstash配置文件与插件

input {
stdin { }
file {
type => "syslog"
path => ["/var/log/secure", "/var/log/messages"]
exclude => ["*.gz", "shipper.log"]
}
zeromq {
address => ["tcp://192.168.8.145:8889"]
mode => "client"
type => "zmq-input"
topic => "weblog"
topology => "pubsub"
codec => "json"
}
}
filter {
mutate {
gsub => [ "message","APPS weblog",""]
gsub => [ "message","{",""]
gsub => [ "message","}",""]
}
}
output {
stdout { debug => true debug_format => "json"} elasticsearch {
cluster => "logstash"
codec => "json"
}
}

日志类别与处理方法

  1. Apache日志:自定义apache输出日志格式,json输出,无需filter参与

  2. Postfix日志:无法自定义,需使用如grok等filter进行过滤

  3. Tomcat日志:需将多行日志合并至一个事件中,并排除空白行

集群扩展

扩展架构

注意事项

Redis:部署多台,仅提供高可用作用,无分担负载作用,可使用ZeroMQ代替

ElasticSearch:

# 检测节点状态:
curl -XGET 'http://127.0.0.1:9200/_cluster/health?pretty=true'
green status:所有shard被分配,且运行正常
yellow status:只有主shard被分配,如集群正在节点间复制数据时
red status:存在未被分配的shard
# 集群监控:
Paramedic工具:
安装:/usr/share/elasticsearch/bin/plugin -install karmi/elasticsearch-paramedic
查看:http://log.okooo.net:9200/_plugin/paramedic/index.html
Bigdesk工具:
安装:/usr/share/elasticsearch/bin/plugin -install lukas-vlcek/bigdesk
查看:http://log.okooo.net:9200/_plugin/bigdesk/index.html # 数据保留策略:
.LogStash默认为每一天创建1个index,可手动删除index
curl -XDELETE http://127.0.0.1:9200/logstash-2013.12.19
shell优化脚本:https://github.com/cnf/logstash-tools/blob/master/elasticsearch/clean-elasticsearch.sh
.优化index:
curl -XPOST 'http://127.0.0.1:9200/logstash-2013.12.19/_optimize'
curl -XPOST 'http://127.0.0.1:9200/_optimize' # 优化所有index
curl 'http://127.0.0.1:9200/logstash-2013.12.19/_stats?clear=true&store=true&pretty=true' #查看index的大小,index过多会影响优化耗时
.默认index数据目录:/var/lib/elasticsearch/logstash 

参考资料

LogStash官网:http://www.logstash.net/

Elasticsearch官网:http://www.elasticsearch.org/

Kibana查询语法:http://lucene.apache.org/core/3_6_1/queryparsersyntax.html

LogStash日志分析系统的更多相关文章

  1. ELK_日志分析系统Logstash+ElasticSearch+Kibana4

    elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示客户端 ...

  2. Docker搭建ElasticSearch+Redis+Logstash+Filebeat日志分析系统

    一.系统的基本架构 在以前的博客中有介绍过在物理机上搭建ELK日志分析系统,有兴趣的朋友可以看一看-------------->>链接戳我<<.这篇博客将介绍如何使用Docke ...

  3. elk 日志分析系统Logstash+ElasticSearch+Kibana4

    elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示clie ...

  4. filebeat+redis+logstash+elasticsearch+kibana搭建日志分析系统

    filebeat+redis+elk搭建日志分析系统 官网下载地址:https://www.elastic.co/downloads 1.下载安装filebeat wget https://artif ...

  5. [原创]ubuntu14.04部署ELK+redis日志分析系统

    ubuntu14.04部署ELK+redis日志分析系统 [环境] host1:172.17.0.4 搭建ELK+redis服务 host2:172.17.0.3 搭建logstash+nginx服务 ...

  6. ELK + Filebeat 日志分析系统

    ELK + Filebeat 日志分析系统 架构图 环境 OS:CentOS 7.4 Filebeat: 6.3.2 Logstash: 6.3.2 Elasticsearch 6.3.2 Kiban ...

  7. 苏宁基于Spark Streaming的实时日志分析系统实践 Spark Streaming 在数据平台日志解析功能的应用

    https://mp.weixin.qq.com/s/KPTM02-ICt72_7ZdRZIHBA 苏宁基于Spark Streaming的实时日志分析系统实践 原创: AI+落地实践 AI前线 20 ...

  8. ELK日志分析系统简单部署

    1.传统日志分析系统: 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安 ...

  9. Rsyslog+ELK日志分析系统

    转自:https://www.cnblogs.com/itworks/p/7272740.html Rsyslog+ELK日志分析系统搭建总结1.0(测试环境) 因为工作需求,最近在搭建日志分析系统, ...

随机推荐

  1. 02 Go 1.2 Release Notes

    Go 1.2 Release Notes Introduction to Go 1.2 Changes to the language Use of nil Three-index slices Ch ...

  2. java 多线程总结篇3之——生命周期和线程同步

    一.生命周期 线程的生命周期全在一张图中,理解此图是基本: 线程状态图 一.新建和就绪状态 当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时它和其他的Java对象一样,仅仅由Jav ...

  3. 20165203 实验二 Java面向对象程序设计

    20165203 实验二 Java面向对象程序设计 一.面向对象程序设计1--单元测试和TDD 1.实验要求 参考 (http://www.cnblogs.com/rocedu/p/6371315.h ...

  4. MIT6.006Lec01:Python实现

    MIT6.006是Algo Intro这门课,据说语言使用python Lec01是讲peak finding,也就是峰值点 具体为: 一维情况下一个数组中a[i]>a[i-1]且a[i]> ...

  5. 提高eclipse使用效率(一)--使用快捷键

    编辑代码常用快捷键 格式化代码的快捷键 Ctrl + Shift + F 格式化缩进的快捷键是 Ctrl + I,只能对选中的文本进行缩进 删除一行的快捷键是 Ctrl + D 当前窗口最大化最小化切 ...

  6. JavaScript event loop事件循环 macrotask与microtask

    macrotask  姑且称为宏任务,在很多上下文也被简称为task.例如: setTimeout, setInterval, setImmediate, I/O, UI rendering. mic ...

  7. 30分钟LINQ教程的学习笔记

    原文章 : http://www.cnblogs.com/liulun/archive/2013/02/26/2909985.html 一.11个与LINQ有关的语言特性: [隐式类型.匿名类型.对象 ...

  8. Sample ASP.NET IHttpHandler

    LoggerHandler.cs using System; using System.Collections.Generic; using System.Diagnostics; using Sys ...

  9. USACO 5.5 Twofive

    TwofiveIOI 2001 In order to teach her young calvess the order of the letters in the alphabet, Bessie ...

  10. Excel快速数据处理

    年底各位领导都要统计各种报表数据,Excel技能捉襟见肘啊! 同一xlsx文件下同一Sheet下的数据引用 同一xlsx文件下不同Sheet下的数据引用 同一文件夹下的不同xlsx文件下的数据引用 不 ...