小工具      在线工具  汉语词典  css  js  c++  java

安装logstach

https://www.elastic.co/downloads/logstash
直接下载后解压即可,注意选好版本号!! 虽然logstach是可以独立运行,但一般是和 es对应的,所以版本需要选择和es一样的,免得后面出现奇怪的问题!
不需要配环境变量什么的.

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.10.tar.gz
tar -xzvf logstash-5.6.10.tar.gz

查看文档

https://www.elastic.co/guide/en/logstash/5.6/logstash-5-6-10.html#logstash-5-6-10

一些配置

解压后进入conf目录,有以下文件:

jvm.options
log4j2.properties
logstash.yml
startup.options

文件名已经说明了大体功能 。
这些配置在测试阶段默认就行,

logstash.yml 的配置,可参考 https://www.elastic.co/guide/en/logstash/5.6/logstash-settings-file.html

启动说明

软件的启动需要一个 (输入,filter和输出)的conf( 注意,这个conf和上面的不一样,这个是配置是具体业务的)
如官网中的说法:

# This is a comment. You should use comments to describe
# parts of your configuration.
input {
  ...
}

filter {
  ...
}

output {
  ...
}

但!!!您也可以跳过此conf,直接使用命令行添加选项和配置。下面有一个例子。

第一个直接的例子

直接开始:

bin/logstash -e 'input { stdin { } } output { stdout {} }'

输入和输出都是控制台,输入输出如下:

aaaaaaaaaaaaaaaa
{
      "@version" => "1",
          "host" => "onlinegame.i.nease.net",
    "@timestamp" => 2018-08-27T03:17:32.704Z,
       "message" => "aaaaaaaaaaaaaaaa"
}
bbbbbbbbbbbbbbb
{
      "@version" => "1",
          "host" => "onlinegame.i.nease.net",
    "@timestamp" => 2018-08-27T03:17:40.610Z,
       "message" => "bbbbbbbbbbbbbbb"
}

示例,加上基本配置文件、输入或控制台

官方网站示例

input { stdin { } }

filter {
  mutate { add_field => { "show" => "This data will be in the output" } }
  mutate { add_field => { "[@metadata][test]" => "Hello" } }
  mutate { add_field => { "[@metadata][no_show]" => "This data will not be in the output" } }
}

output {
  if [@metadata][test] == "Hello" {
 stdout { codec => rubydebug }
  }
}

使用官网的例子,如下,输入输出都是控制台,但是添加了一些过滤器

启动:

bin/logstash -f /home/comp/logconf/console_console.conf

控制台输出:


gogogogogoog
{
      "@version" => "1",
          "host" => "onlinegame.i.nease.net",
          "show" => "This data will be in the output",
    "@timestamp" => 2018-08-27T03:25:43.309Z,
       "message" => "gogogogogoog"
}

上面的@metadata是内置的自定义字段,里面的内容不会被输出。这个字段对于一些判断条件非常有用。

示例,输出到文件

官方网站示例

input { stdin { } }

filter {
  mutate { add_field => { "show" => "This data will be in the output" } }
  mutate { add_field => { "[@metadata][test]" => "Hello" } }
  mutate { add_field => { "[@metadata][no_show]" => "This data will not be in the output" } }
}

output {
  file {
    path => "/home/comp/logs/logstach_output/%{+yyyy.MM.dd.HH}.log"
  }
}

启动日志

bin/logstash -f /home/comp/logconf/console_file.log

如上,输出一个文件,文件名为(time.log)

示例,tcp打开的端口输出到es

官方网站示例

input {
  tcp {
    port => 8002
    type => syslog
  }
  udp {
    port => 8002
    type => syslog
  }
}

filter {
  if [type] == "syslog" { grok { match => { "message" => "%{
     SYSLOGTIMESTAMP:syslog_timestamp} %{
     SYSLOGHOST:syslog_hostname} %{
     DATA:syslog_program}(?:\[%{
     POSINT:syslog_pid}\])?: % {
     GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

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

启动日志

bin/logstash -f /home/comp/logconf/tcp_es.log

logstach 监听 8002 端口,输出 到 es中,index为logstach_a
我们使用 telnet 127.0.0.1 8002 ,然后里面输入以下内容:

Dec 23 12:11:43 louis postfix/smtpd[31499]: connect from unknown[95.75.93.154]
Dec 23 14:42:56 louis named[16000]: client 199.48.164.7#64817: query (cache) 'amsterdamboothuren.com/MX/IN' denied
Dec 23 14:30:01 louis CRON[619]: (www-data) CMD (php /usr/share/cacti/site/poller.php >/dev/null 2>/var/log/cacti/poller-error.log)
Dec 22 18:28:06 louis rsyslogd: [origin software="rsyslogd" swVersion="4.2.0" x-pid="2253" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.

关于 filter,我们可以看到filter中有 grok,这是 用于 把非结构化但有规则的数据处理成 结构化内容, 上面的意思是 message 的内容会被解析成相应的字段.
如果 不符合相应的格式,也不会抛错,只是会不去filter处理.

比如输入json,输出到es除以log,

input {
  tcp {
    port => 8002
    type => syslog
  }
  udp {
    port => 8002
    type => syslog
  }
}

filter {
    json{source=> "message"}
}

output {
  elasticsearch {
    document_type => "cod"
    hosts => ["10.88.88.88:9200"]
    index => "logstach_json"
  }
}

输入telnet

{"name":"ddddd","age":121}

es 结果:

      {
        "_index": "logstach_json",
        "_type": "cod",
        "_id": "AWV6Ja_ARuskeT_Rckb6",
        "_score": 1,
        "_source": {
          "@timestamp": "2018-08-27T06:50:14.809Z",
          "port": 32925,
          "@version": "1",
          "host": "127.0.0.1",
          "name": "ddddd",
          "message": """{"name":"ddddd","age":121} """,
          "type": "syslog",
          "age": 121
        }
      },

关于 es中的type 是怎么定的? 如果 我们不定义 document_type,数据也是能扔到es的,不过其type会变成数据中的type,如上面的例子中,type是syslog
设定一个json例子,里面有日期,根据日期不同放到不同的表中

阐明

在使用方面,我们会更加关注logstash中的各种插件。在输入、输出、过滤器上,你可以在官网上找到非常丰富的信息。

参考:

https://www.imooc.com/video/16134
https://www.elastic.co/guide/en/logstash/5.6/index.html

. . .

相关推荐

额外说明

TensorFlow的基本概念和使用场景

TensorFlow 是一种开源的机器学习框架,由 Google 开发并维护。它提供了一种高度灵活的方式来构建和训练各种深度学习模型,包括神经网络、卷积神经网络、循环神经网络和自编码器等。 TensorFlow 的核心概念是张量(Tensor)和计算图(

额外说明

分布式服务接口请求的顺序性如何保证

        Hash分发+内存队列 简单来说,首先你得用dubbo的一致性hash负载均衡策略,将比如某一个订单id对应的请求都给分发到某个机器上去,接着就是在那个机器上因为可能还是多线程并发执行的,你可能得立即将某个订单id对应的请求扔一个内存队列

额外说明

VMware虚拟机安装CentOS8详细教程

一、下载安装包 下载vmware安装包和Centos的镜像光盘Centos下载路径 这里使用的vmware版本是vmware 16 pro,centos版本是centos 8.3 二、安装虚拟机和centos vmware安装很简单,这里主要说下cent

额外说明

最流行的 CI/CD 平台 Jenkins 的详细构建教程(适用于 Linux)

在正式学习Jenkins之前我们需要对两个名词有一定了解,其一是DevOps,另外一个就是CI/CD。 何为DevOps? 来自wiki百科介绍 DevOps是一系列软件开发实践,强调开发人员(Dev)和测试人员(QA)及运维人员(Ops)之间的沟通合作

额外说明

2022最新金三银四必问面试题大全

我花了三天时间,整理了100道最经典的常见测试面试题(附答案)!完整版文档见文末! ​ 1、所做项目的情况,主要做什么类型的测试? 2、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 3、给你一个网站,你如何测试? 4、熟

额外说明

【Java日志记录对象修改前后的变化】

今天接到一个需求,修改数据时需要记录修改详情。详情包括,被修改的字段,修改前的值和修改后的值。 解决思路 分别比较修改前后两个Bean实例的所有成员变量,当值不一致时,记录变量名称,以及修改前后的值。 对于该方案,可以解决特定类型的Bean。 如果有其它

额外说明

21.Python函数(六)【函数式编程 下半篇】

目录: 每篇前言: Python函数(六) 1.1 函数式编程 1.1.1 闭包 1.1.2 装饰器 1.1.3 偏函数 每篇前言: --作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原

额外说明

.net core 中的startup类详解

Startup类是ASP.NET Core Web应用程序的入口点之一,该类定义Web应用程序的配置,包括中间件和各种服务的配置。Startup类通常包含两个方法ConfigureServices和Configure。 1. ConfigureServi

额外说明

解决Windows系统找不到dfshim.dll文件出现错误问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个dfshim.dll文件(挑

额外说明

宝塔LNMP环境 Nginx安装教程说明

文章目录 使用LNMP Nginx在宝塔下安装EduSoho 创建站点 填写信息 创建完成 设置运行目录 选择运行目录中的web目录并保存。 修改配置文件 个人资料模板 配置模板 宝塔下使用LNMP Nginx安装EduSoho 创建站点 宝塔后台 >

ads via 小工具