黑马程序员技术交流社区

标题: 【上海校区】ELKStack入门之kibana&logstash安装和配置(2) [打印本页]

作者: chenquanyi626    时间: 2018-11-19 14:26
标题: 【上海校区】ELKStack入门之kibana&logstash安装和配置(2)
本帖最后由 chenquanyi626 于 2018-11-19 16:31 编辑

ELKStack入门之kibana&logstash安装和配置

一、Kibana安装和配置

       1.1 kibana简介

      Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习Elasticsearch的语法。

      英文官网:https://www.elastic.co/products/kibana
      中文官网:https://www.elastic.co/cn/products/kibana



      这是您走进 的窗口
      Elastic Stack
      Kibana 让您能够可视化 Elasticsearch 中的数据并操作 Elastic Stack,因此您可以在这里解开任何疑问:例如,为何会在凌晨 2:00 被传呼,雨水会对季度数据造成怎样的影响。

      1.2 kibana下载安装文件
       下载地址:https://www.elastic.co/cn/downloads


1.3 kibana 解压、配置


1.3.1 上传安装文件,解压


1.3.2  重命名

[Shell] 纯文本查看 复制代码
[es@node01 ~]$ mv kibana-6.4.0-linux-x86_64  kibana

1.3.3  配置

进入到kibana安装目录下的config文件夹中,修改kibana.yml 文件




1.3.4 启动


1.3.5 访问


启动成功

二、logstash 安装和配置

       2.1 logstash简介
       英文官网:https://www.elastic.co/products/logstash
       中文官网:https://www.elastic.co/cn/products/logstash



       Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。
       顾名思义,Logstash 收集数据对象就是日志文件。由于日志文件来源多(如:系统日志、服务器日志等),且内容杂乱,不便于人类进行观察。因此,我们可以使用 Logstash 对日志文件进行收集和统一过滤,变成可读性高的内容,方便开发者或运维人员观察,从而有效的分析系统/项目运行的性能,做好监控和预警的准备工作等。


      2.2下载安装文件(6.4.0版本)


     2.3 上传安装文件到指定目录


     2.4 解压文件,重命名文件夹,删除安装压缩包

   
[Shell] 纯文本查看 复制代码
#解压
[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 {
}
# 该部分被注释,表示filter是可选的
# filter {
#
# }
output {
}
在使用插件之前,我们先了解一个概念:事件。Logstash 每读取一次数据的行为叫做事件。在 Logstach 目录中创建一个配置文件,名为 logstash.conf(名字任意)。

       2.8 输入插件
输入插件允许一个特定的事件源可以读取到 Logstash 管道中,配置在 input {} 中,且可以设置多个。
      修改配置文件:vim demo1.conf
[Shell] 纯文本查看 复制代码
input { 
# 从文件读取日志信息
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 插件中,作为配置测试或者调试的工具。

作者: 不二晨    时间: 2018-11-21 16:56





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2