本帖最后由 chenquanyi626 于 2018-11-19 16:31 编辑
ELKStack入门之kibana&logstash安装和配置
一、Kibana安装和配置
1.1 kibana简介
Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习Elasticsearch的语法。
1.3.4 启动
1.3.5 访问
启动成功 二、logstash 安装和配置
2.1 logstash简介 中文官网:https://www.elastic.co/cn/products/logstash
Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。
顾名思义,Logstash 收集数据对象就是日志文件。由于日志文件来源多(如:系统日志、服务器日志等),且内容杂乱,不便于人类进行观察。因此,我们可以使用 Logstash 对日志文件进行收集和统一过滤,变成可读性高的内容,方便开发者或运维人员观察,从而有效的分析系统/项目运行的性能,做好监控和预警的准备工作等。
2.2下载安装文件(6.4.0版本)
2.3 上传安装文件到指定目录
2.4 解压文件,重命名文件夹,删除安装压缩包
[Shell] 纯文本查看 复制代码 #解压[/size]
[/size][es@node01 ~]$ tar -zxvf logstash-6.4.0.tar.gz
#重命名文件夹
[es@node01 ~]$ mv logstash-6.4.0 logstash
#删除
[es@node01 ~]$ rm -rf logstash-6.4.0.tar.gz
2.5 Logstash的组成结构
Logstash 通过管道进行运作,管道有两个必需的元素,输入(input)和输出(output),还有一个可选的元素-过滤器(filter)。输入插件从数据源获取数据,过滤器插件根据用户指定的数据格式修改数据,输出插件则将数据写入到目的地。如下图:
2.6 lostarsh 入门
Logstash 提供了一个 shell 脚本叫 logstash 方便快速运行,-e意指执行Logstash 提供了一个 shell 脚本叫 logstash 方便快速运行,-e意指执行。
[Shell] 纯文本查看 复制代码 [es@node01 bin]$ ./logstash -e 'input{ stdin{} } output{ stdout{} }'
Hello logstash(输入)经过 Logstash 管道(过滤)变成:
[Shell] 纯文本查看 复制代码 {
"@version" => "1",
"message" => "Hello logstash",
"@timestamp" => 2018-11-17T10:11:40.501Z,
"host" => "node01"
}
【命令行中常用的命令(了解) -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“” 则默认使用stdin作为输入,stdout作为输出) -f:通过这个命令可以指定Logstash的配置文件,根据配置文件配置logstash -l:日志输出的地址(默认就是stdout直接在控制台中输出) -t:测试配置文件是否正确,然后退出。】 2.7 Logstash的插件介绍 在生产环境中,Logstash 的管道要复杂很多,可能需要配置多个输入、过滤器和输出插件。Logstash配置文件定义了Logstash 管道,当你使用-f <path/to/file>启动一个Logstash实例,其实使用了一个配置文件定义了管道实例。 一个Logstash管道有两个必备元素,输入和输出,一个可选元素,过滤器。input插件从一个源摄取数据,filter插件按照你指定的方式修改数据,output插件写出数据到一个目标数据库。因此,需要一个配置文件管理输入、过滤器和输出相关的配置。配置文件内容格式如下: [Shell] 纯文本查看 复制代码 input {[/align]}
# 该部分被注释,表示filter是可选的
# filter {
#
# }
output {
} 在使用插件之前,我们先了解一个概念:事件。Logstash 每读取一次数据的行为叫做事件。在 Logstach 目录中创建一个配置文件,名为 logstash.conf(名字任意)。
2.8 输入插件 输入插件允许一个特定的事件源可以读取到 Logstash 管道中,配置在 input {} 中,且可以设置多个。 修改配置文件:vim demo1.conf [Shell] 纯文本查看 复制代码 input { [/size][/align][/size]# 从文件读取日志信息
file {
# 文件路径
path => "/root/accounts.json"
start_position => "beginning" }
}
# filter {
#
# }
output {
# 标准输出
stdout { codec => rubydebug }
}
[Shell] 纯文本查看 复制代码 # 执行 ,向控制台输出
[root@node01 logstash]# bin/logstash -f config/demo1.conf
Codec 是 logstash 从 1.3.0 版开始新引入的概念(Codec 来自 Coder/decoder 两个单词的首字母缩写)。 在此之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。 但现在,我们可以在输入 期处理不同类型的数据,这全是因为有了 codec 设置。所以,这里需要纠正之前的一个概念。Logstash 不只是一个 input | filter | output 的数据流,而是一个 input | decode |filter | encode | output 的数据流!codec 就是用来 decode、encode 事件的。codec 的引入,使得 logstash 可以更好更方便的与其他有自定义数据格式的运维产品共存,。事实上,我们在第一个 "hello world" 用例中就已经用过 codec 了 —— rubydebug 就是一种 codec!虽然它一般只会用在stdout 插件中,作为配置测试或者调试的工具。 |