ELK日志平台之Logstash

一、ELKStack简介

Elstaicsearch:存储和搜索
logstash:收集
kibana:展示

二、ELK----之Logstash安装

环境准备

IP			主机名			操作系统
192.168.56.11		linux-node1		centos7
192.168.56.12		linux-node2		centos7

在两台服务器上都安装logstash

1、JDK安装

安装JDK

[[email protected] ~]# yum install -y java

[[email protected] ~]# java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

2、LogStash安装

[[email protected] ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

[[email protected] ~]# cat /etc/yum.repos.d/logstash.repo
[logstash-2.3]
name=Logstash repository for 2.3.x packages
baseurl=https://packages.elastic.co/logstash/2.3/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

三、Logstash配置

1、概念理解

input:  标准输入

output: 标准输出

filter: 过滤

2、命令行输出

[[email protected] ~]# /opt/logstash/bin/logstash -e ‘input { stdin{} } output { stdout{} }‘
Settings: Default pipeline workers: 1
Pipeline main started
hehe
2016-08-20T05:58:42.683Z linux-node1 hehe
world
2016-08-20T05:58:52.057Z linux-node1 world

3、以json的形式在命令行输出

在标准输出中添加codec=>rubydebug功能,这样能以json的格式显示出来

[[email protected] ~]# /opt/logstash/bin/logstash -e ‘input { stdin{} } output { stdout{ codec => rubydebug } }‘
Settings: Default pipeline workers: 1
Pipeline main started
四世同堂
{
       "message" => "四世同堂",
      "@version" => "1",
    "@timestamp" => "2016-08-27T18:37:04.702Z",
          "host" => "linux-node2"
}

4、把日志写入到elasticsearch里面

这里我们用到output的插件

hosts是个数组类型,在集群状态下,可以写多个地址
index是一个字符串类型,可以按照年月日生成索引

[[email protected] ~]# /opt/logstash/bin/logstash -e ‘input { stdin{} } output { elasticsearch { hosts => ["192.168.56.11:9200"] index => "logstash-%{+YYYY.MM.dd}" } }‘
Settings: Default pipeline workers: 1
Pipeline main started
天苍苍,野茫茫
风吹草地见牛羊

在es上访问http://192.168.56.11:9200/_plugin/head/ 在数据浏览页面找到当天的logstash日志,

比如logstash-2016.08.30,查看其message信息。

5、把日志输出到不同位置

我们有时候会有这样的需求,即把日志输出到标准输出,又输出到es

[[email protected] ~]# /opt/logstash/bin/logstash -e ‘input { stdin{} } output { stdout { codec => rubydebug } elasticsearch { hosts => ["192.168.56.11:9200"] index => "logstash-%{+YYYY.MM.dd}" } }‘
Settings: Default pipeline workers: 1
Pipeline main started
菊花残,满地伤
{
       "message" => "菊花残,满地伤",
      "@version" => "1",
    "@timestamp" => "2016-08-30T15:36:22.606Z",
          "host" => "linux-node2"
}
你的笑容已泛黄
{
       "message" => "你的笑容已泛黄",
      "@version" => "1",
    "@timestamp" => "2016-08-30T15:36:31.630Z",
          "host" => "linux-node2"
}
在实际生产中,每个需要收集日志的服务器都安装一个logstash
通过网络传输的不需要安装,比如syslog,可以通过网络发送

6、编写logstash的输入输出文件

logstash的输入输出文件都存放在
/etc/logstash/conf.d

这是在启动脚本中定义了
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH

if [ `id -u` -ne 0 ]; then
   echo "You need root privileges to run this script"
   exit 1
fi

name=logstash
pidfile="/var/run/$name.pid"

LS_USER=root
LS_GROUP=root
LS_HOME=/var/lib/logstash
LS_HEAP_SIZE="1g"
LS_LOG_DIR=/var/log/logstash
LS_LOG_FILE="${LS_LOG_DIR}/$name.log"
LS_CONF_DIR=/etc/logstash/conf.d
......

编写一个demo.conf文件

[[email protected] conf.d]# vim demo.conf 

input{
    stdin{}
}

filter{
}

output{
    elasticsearch{
        hosts => ["192.168.56.11:9200"]
        index => "logstash-%{+YYYY.MM.dd}"

    }
    stdout{
        codec => rubydebug
    }
}

在终端执行一下,查看结果

[[email protected] conf.d]# /opt/logstash/bin/logstash -f demo.conf 
Settings: Default pipeline workers: 1
Pipeline main started
谁的江山
{
       "message" => "谁的江山",
      "@version" => "1",
    "@timestamp" => "2016-08-30T15:59:48.446Z",
          "host" => "linux-node2"
}
马蹄声狂乱
{
       "message" => "马蹄声狂乱",
      "@version" => "1",
    "@timestamp" => "2016-08-30T15:59:59.306Z",
          "host" => "linux-node2"

7、收取操作系统日志并写入elasticsearch

需求分析:

将"/var/log/message","/var/log/secure"写入到ES中

自定义一个名为file.conf的文件

[[email protected] /etc/logstash/conf.d]# cat file.conf 
input{
    file{
	path => ["/var/log/message","/var/log/secure"]
	type => "system-log"
	start_position => "beginning"    #从文件头开始收取日志
    }
}

filter{}

output{
    elasticsearch{
        hosts => ["192.168.56.11:9200"]
        index => "system-log-%{+YYYY.MM}"

    }
}

启动logstash

[[email protected] conf.d]# /opt/logstash/bin/logstash -f file.conf 
Settings: Default pipeline workers: 1
Pipeline main started

注意:
注意:
注意:
logstash在后台启动时会加载/etc/logstash/conf.d/目录下的所有conf文件

在es上访问http://192.168.56.11:9200/_plugin/head/ 查看syslog-log的日志

时间: 2024-10-27 07:45:20

ELK日志平台之Logstash的相关文章

ELK日志平台搭建

ELK日志平台搭建 整体架构 整体架构主要分为5个模块,分别提供不同的功能: Filebeat:轻量级数据收集引擎.基于原先 Logstash-fowarder 的源码改造出来.是 ELK Stack 在 Agent 的第一选择.<br><br>Kafka:数据缓冲队列.作为消息队列解耦了处理过程,同时提高了可扩展性.具有峰值处理能力,使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃.<br><br>Logstash:数据

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

elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示客户端 redis 缓存 安装包 logstash-1.4.2-1_2c0f5a1.noarch.rpm elasticsearch-1.4.4.noarch.rpm logstash-contrib-1.4.2-1_efd53ef.noarch.rpm kibana-4.0.1-linux-x64.tar

ELK日志平台

什么是ELK? ELK指的是ElasticSearch,Logstash,Kibana这三个工具的首字母缩写,中文指南很详细,按其步骤来,入门基本没啥问题. 解决什么问题? 公司产品EDI平台的主要任务就是将各个数据源的文件信息处理后再发送第三方,没有实时监控,文件发送不成功时,运维相当被动. ELK的强项就是实时的日志分析,通过对日志文件的分析(秒级)对比,及时将异常情况通知运维. 计划步骤如下: 1)制定日志规范,在程序中增加日志,记录处理过程. 2)部署Logstash监控日志文件. 3)

ELK日志平台之kibana

一.ELKStack简介 Elstaicsearch:存储和搜索 logstash:收集 kibana:展示.专门为ES设计的展示平台 二.ELK之kibana安装 环境准备 IP 主机名 操作系统 192.168.56.11 linux-node1 centos7 192.168.56.12 linux-node2 centos7 1.安装JDK [[email protected] ~]# yum install -y java [[email protected] ~]# java -ve

ELK日志平台---老男孩教育笔记

环境的困境(原因) 1.开发人员不能登录线上服务器查看相信日志: 2.各个系统都有日志,日志数据分散难以查找: 3.日志数据量大,查询速度慢,或者数据不够及时.(状态码 400 的 top10) 收集->存储->统计->报警... Elastic Search + Logstash +Kibana = ELK Stack 1.分布式全文搜索引擎.存储 2.日志收集(日志收集于某一处) 3.日志展示 安装过程: 一.Elastic Search (1).Import the Elastic

ELK日志平台之ElasticSearch

一.ELKStack简介 Elstaicsearch:日志存储和搜索 logstash:日志收集 kibana:日志展示 ELK架构示意图: 二.ELK安装 环境准备 IP 主机名 操作系统 192.168.56.11 linux-node1 centos7 192.168.56.12 linux-node2 centos7 1.Elasticsearch安装 安装JDK [[email protected] ~]# yum install -y java [[email protected] 

ELK日志平台----解耦配置文件

本文记录了三个配置文件: 第一个:all.conf 通过一个配置文件,配置输入输出,实例: 第二个:shipper.conf配置logstash收集日志内容到redis里: 第三个:indexer.conf配置logstash从redis里读取日志内容输出到Elasticsearch里. 第二个跟第三个配置解耦收集日志 ELK 解耦 logstash ---------->redis ---------->logstash -------->elasticsearch----------

ELK日志管理平台部署简介

ELK是对Elasticsearch.Logstash.Kibana整合平台的简称.在日常的运维工作中,要实时监控服务器的业务.系统和硬件状态,除了使用监控之外,还需要搜集大量的日志来进行分析.但是在面对海量的服务器和集群时,通过单台登录查询的方式显然是不可能的,对于不同时间段和集群日志的分析仅仅通过简单的脚本来统计也是难以实现.ELK日志平台通过日志搜集,查询检索和前端展示的方式帮我们实现了这样的功能. Elasticsearch是个开源分布式搜索引擎,具有分布式,零配置,自动发现,索引自动分

结合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所收集