“Elastic Stack”的版本间的差异
来自tomtalk
(→Hello World) |
(→Hello World) |
||
第34行: | 第34行: | ||
# add_field | # add_field | ||
# remove_field | # remove_field | ||
+ | |||
+ | ==配置语法== | ||
+ | |||
+ | Logstash社区通常习惯用shipper,broker和indexer来描述数据流中不同进程各自的角色。 | ||
+ | |||
+ | 不过我见过很多运用场景里都没有用logstash作为shipper,或者说没有用elasticsearch作为数据存储也就是说也没有indexer。所以,我们其实不需要这些概念。只需要学好怎么使用和配置logstash进程,然后把它运用到你的日志管理架构中最合适它的位置就够了。 | ||
+ | |||
+ | <source lang="bash"> | ||
+ | ./logstash -e 'input{stdin{}}output{stdout{}}' | ||
+ | |||
+ | 2017-05-03T06:15:51.690Z elk hello world | ||
+ | |||
+ | ./logstash -e '' | ||
+ | |||
+ | { | ||
+ | "@timestamp" => 2017-05-03T06:16:38.373Z, | ||
+ | "@version" => "1", | ||
+ | "host" => "elk", | ||
+ | "message" => "hello world", | ||
+ | "type" => "stdin" | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | 命令行参数 | ||
+ | |||
+ | <source lang="bash"> | ||
+ | bin/logstash -e '' #-e 意即执行。 | ||
+ | bin/logstash -f agent.conf #-f 意即文件。 | ||
+ | bin/logstash -f /etc/logstash.d/ #读取目录下所有文本文件,然后在自己内存里拼接成一个完整的大配置文件,再去执行。 | ||
+ | </source> | ||
+ | |||
+ | logstash列出目录下所有文件时,是字母排序的。而logstash配置段的filter和output都是顺序执行,所以顺序非常重要。采用多文件管理的用户,推荐采用数字编号方式命名配置文件。 | ||
+ | |||
+ | 设置文件 | ||
+ | |||
+ | 从Logstash 5.0开始,新增了$LS_HOME/config/logstash.yml文件,可以将所有的命令行参数都通过YAML文件方式设置。同时为了反映命令行配置参数的层级关系,参数也都改成用.而不是-了。 | ||
+ | |||
+ | <source lang="text"> | ||
+ | pipeline: | ||
+ | workers: 24 | ||
+ | batch: | ||
+ | size: 125 | ||
+ | delay: 5 | ||
+ | </source> | ||
=Elastic Search= | =Elastic Search= |
2017年5月3日 (三) 06:30的版本
目录
通用
- 安装java8,java9不兼容。
- ElasticSearch、Kinaba在config里默认是用localhost,指定IP,否则用IP无法访问。
Beats
Logstash
Hello World
# bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}' { "@timestamp" => 2017-05-03T05:34:41.343Z, "@version" => "1", "host" => "elk", "message" => "hello world" }
Logstash会给事件添加一些额外信息。最重要的就是 @timestamp,用来标记事件的发生时间。
此外,大多数时候,还可以见到另外几个:
- host 标记事件发生在哪里。
- type 标记事件的唯一类型。
- tags 标记事件的某方面属性。这是一个数组,一个事件可以有多个标签。
每个logstash过滤插件,都会有四个方法:
- add_tag
- remove_tag
- add_field
- remove_field
配置语法
Logstash社区通常习惯用shipper,broker和indexer来描述数据流中不同进程各自的角色。
不过我见过很多运用场景里都没有用logstash作为shipper,或者说没有用elasticsearch作为数据存储也就是说也没有indexer。所以,我们其实不需要这些概念。只需要学好怎么使用和配置logstash进程,然后把它运用到你的日志管理架构中最合适它的位置就够了。
./logstash -e 'input{stdin{}}output{stdout{}}' 2017-05-03T06:15:51.690Z elk hello world ./logstash -e '' { "@timestamp" => 2017-05-03T06:16:38.373Z, "@version" => "1", "host" => "elk", "message" => "hello world", "type" => "stdin" }
命令行参数
bin/logstash -e '' #-e 意即执行。 bin/logstash -f agent.conf #-f 意即文件。 bin/logstash -f /etc/logstash.d/ #读取目录下所有文本文件,然后在自己内存里拼接成一个完整的大配置文件,再去执行。
logstash列出目录下所有文件时,是字母排序的。而logstash配置段的filter和output都是顺序执行,所以顺序非常重要。采用多文件管理的用户,推荐采用数字编号方式命名配置文件。
设置文件
从Logstash 5.0开始,新增了$LS_HOME/config/logstash.yml文件,可以将所有的命令行参数都通过YAML文件方式设置。同时为了反映命令行配置参数的层级关系,参数也都改成用.而不是-了。
pipeline: workers: 24 batch: size: 125 delay: 5
Elastic Search
Linux max_map_count参数修改的问题
vm.max_map_count=200000直接写到/etc/sysctl.conf中,然后执行sysctl -p