vlambda博客
学习文章列表

ELK:elasticsearch快速入门之Kibana+Logstash安装

1.2、kibana快速入门

kinana的安装相对于elasticsearch的安装更为简单。kibana用于展示或是操作es中的数据。主要步骤就是配置kibana的配置文件。甚至保持默认值,都可以运行。注意kibana是由node开发。默认占用的端口号为5601,所以,如果要查看kibana的进程,可以使用netstat  -tunlp | grep  5601 或使用 ps -ef | grep node查看。

 

官方有完整的安装过程:

https://www.elastic.co/guide/en/kibana/7.6/getting-started.html

 

1、下载并解压kinana

https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-linux-x86_64.tar.gz

 

2、解压到指定的目录下

$ tar -zxvf  kibana-7.6.2-linux-x86_64.tar.gz  -C  /home/es/program/

         由于解压后,目录太长,这儿修改一下目录的名称:

     $ mv  kibana-7.6.2-linux-x86_64  kibana

 

3、修改kibana的配置文件

$KIBANA_HOME/config目录下的kibana.yml就是kibana的配置文件.

本文配置以下内容,其他都保持默认值:

server.port: 5601

server.host: "server101"

server.name: "server101"

elasticsearch.hosts: ["http://server101:9200"]

I18n.locale: “zh-CN”  #配置中文

 

4、启动kibana

$cd  $KINANA_HOME

$ ./bin/kibana  此种方式,kibana会将所有日志信息输出到控制台。可以使用 $ ./bin/kibana &以后台方式运行。

 

5、访问

在浏览器中,输入:http://server101:5601访问,可以导入一些测试数据后,将显示以下效果:

   


 

 

kibana的配置可以参考官方网站。

 

 

1.3、logstash快速入门

 1、下载 logstash

https://artifacts.elastic.co/downloads/logstash/logstash-7.6.2.tar.gz

2、解压

$ tar -zxvf logstash-7.6.2.tar.gz -C  /home/es/program/

$ mv logstash-7.6.2  logstash

 

1、使用logstash采集日志

1、logstash是一个重量级的日志采集工具,它同时还可以对采集到的数据处理后再保存到es中去。

    2、在配置logstash之前,先启动es。

 

1、配置logstash配置文件

$LOGSTASH_HOME/config目录下,创建logstash1.conf文件。并添加以下配置。

$ touch  logstash1.conf

$vim  logstash1.conf

input {

  file {

    path => "/home/es/logs/*.log"   #读取日志的目录

    type => "elasticsearch"

    start_position => "beginning"

  }

}

output {

  elasticsearch {

    hosts => ["http://localhost:9200"]

    index => "mylog-%{+YYYY.MM.dd}"

  }

  stdout {      #在控制台显示数据

    codec => rubydebug

  }

}

 

2、启动logstash

通过-f可以指定配置文件:

logstash]$ ./bin/logstash -f config/logstash1.conf

以非后台方式启动,可以在控制台,查看到logstash接收到的数据。

 

3、测试

 /home/es/logs目录下,输出一些日志进行测试:

[es@server101 logs]$ echo Hello >> log.log

[es@server101 logs]$ echo 中文信息 >> log.log

[es@server101 logs]$ echo Hello2 >> log.log

[es@server101 logs]$ echo 使用空格分开的测试 空格后面的数据 >> log.log

 

此时,转到logstash的后台,查看数据:

{

          "path" => "/home/es/logs/log.log",

      "@version" => "1",

    "@timestamp" => 2020-05-01T14:25:33.080Z,

          "host" => "server101",

       "message" => "Hello",

          "type" => "elasticsearch"

}

{

          "path" => "/home/es/logs/log.log",

      "@version" => "1",

    "@timestamp" => 2020-05-01T14:25:49.140Z,

          "host" => "server101",

       "message" => "中文信息",

          "type" => "elasticsearch"

}

{

          "path" => "/home/es/logs/log.log",

      "@version" => "1",

    "@timestamp" => 2020-05-01T14:25:54.161Z,

          "host" => "server101",

       "message" => "Hello2",

          "type" => "elasticsearch"

}

{

          "path" => "/home/es/logs/log.log",

      "@version" => "1",

    "@timestamp" => 2020-05-01T14:26:28.266Z,

          "host" => "server101",

       "message" => "使用空格分开的测试 空格后面的数据",

          "type" => "elasticsearch"

}

 

2、读取filebeat的数据

1、配置logstash

$LOGSTASH_HOME/config目录下,新增加:logstash2.conf,并添加以下内容:

$touch  logstash2.conf

$vim  logstash2.conf

input {

  beats {

    port => 5044  #logstash监听的端口

  }

}

output {

  elasticsearch {

    hosts => ["http://localhost:9200"]

    index => "mybeats-%{+YYYY.MM.dd}"

  }

  stdout { codec => rubydebug }

}

 

2、启动logstash

   logstash]$ ./bin/logstash -f config/logstash2.conf

 

3、配置filebeat

下载并上传filebeat,解压并重命名:

$ tar  -zxvf  filebeat-7.6.2.tar.gz  -C /home/es/program/

$ mv  filebeat-7.6.2 filebeat

 

编辑filebeat.yml文件:(由地filebeat.yml中已经存在了一些配置,这儿只配置logstash即可,可以重新创建一个新的配置文件)内容如下:

filebeat.inputs:

- type: log

 enabled: true

 paths:

  -  /home/es/logs/*.log

filebeat.config.modules:

  path: ${path.config}/modules.d/*.yml

  reload.enabled: false

#output.elasticsearch:  #这儿删除es的配置

  #hosts: [“localhost:9200”]

output.logstash:       #这儿是打开logstash的配置

  hosts: [“localhost:5044”]

#其他地方,保持默认就可以了。

 

启动filebeat:

filebeat]$ ./filebeat -e -c filebeat.yml

 

测试,由于filebeat监听的是/home/es/logs/*.log文件,所以,我们在这个目录下,创建几个文件,并输入数据:

[es@server101 logs]$ echo Hello >> log.log

[es@server101 logs]$ echo 你好 这是新行 >> log.log

 

现在,直接查询logstash的控制输出如下:

{

    ..省略..

       "message" => "Hello",

      "@version" => "1"

}

{

      ..省略..

       "message" => "你好 这是新行",

      "@version" => "1"

}

 

到此,已经可以基本上了解filebeat将数据发送到logstash的过程了。

 

其他TODO:

  logstash中的filter将数据处理成json对象。