跳转至

03-日志平台-Kibana

Kibana简介

Kibana 是为 Elasticsearch 设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。

Kibana版本有如下版本

image-20211101163218981

Kibana版本使用php、ruby、js、jruby、node.js等不同语言编写

Kibana 4使用nodejs进行编写(nodejs号称全栈,什么都可以干)

安装Kibana

下载并安装GPG key

[root@linux-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

添加yum仓库

[root@test ~]# vim /etc/yum.repos.d/kibana.repo 
[kibana-4.5]
name=Kibana repository for 4.5.x packages
baseurl=http://packages.elastic.co/kibana/4.5/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

安装kibana

[root@test ~]# yum install -y kibana
[root@abcdocker ~]# rpm -qa kibana
kibana-4.5.4-1.x86_64

配置kibana

kibana只需要配置连接ES即可

提示:kibana和logstash没有任何关系,它只是为es提供了一个搜索的小界面。

[root@abcdocker ~]# vim /opt/kibana/config/kibana.yml

[root@abcdocker ~]# grep "^[a-Z]" /opt/kibana/config/kibana.yml
server.port: 5601               #端口,默认5601
server.host: "0.0.0.0"          #主机
elasticsearch.url: "http://192.168.56.11:9200"  #es地址
kibana.index: ".kibana"         #kibana是一个小系统,自己也需要存储数据(将kibana的数据保存到.kibana的索引中,会在ES里面创建一个.kibana)

# elasticsearch.username: "user"    kibana中的es插件是需要收费的,所以无法使用
# elasticsearch.password: "pass"

启动

[root@abcdocker ~]# systemctl start kibana.service
或者
[root@abcdocker ~]# /etc/init.d/kibana start

检查端口

[root@abcdocker ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      489/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      694/master          
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      3692/node           
tcp6       0      0 192.168.56.11:9200      :::*                    LISTEN      2828/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      1317/java           
tcp6       0      0 192.168.56.11:9300      :::*                    LISTEN      2828/java           
tcp6       0      0 :::22                   :::*                    LISTEN      489/sshd            
tcp6       0      0 :::44697                :::*                    LISTEN      1317/java           
tcp6       0      0 ::1:25                  :::*                    LISTEN      694/master          
udp6       0      0 :::33848                :::*                                1317/java           
udp6       0      0 :::5353                 :::*                                1317/java    

#可以看到5601已经启动,说明kibana启动成功

访问地址:http://192.168.56.11:5601

image-20211101163357519

当我们启动完成之后就自动跳转到kibana设置界面,在kibana上不会把es上所有的索引显示出来,需要我们进行配置,配置那个索引,显示那个索引

Kibana创建索引

image-20211101163421447

我们勾选Use event times to create index names,这样就创建使用事件创建索引名称

提示:kibana从上个版本就提示插件过时

我们已经创建了一个安全日志,这里会自动匹配

image-20211101163437075

我们在创建一个用于存放系统日志的索引

image-20211101163450481

点击创建

image-20211101163500727

我们点击Create

创建完成后我们在创建一个index-demo的索引,在最开始的时候我们进行测试的索引

image-20211101163513284

我们创建的index-demo没有时间戳

image-20211101163523650

下面是让我们选择时间戳,因为没有我们无法进行创建,如果有时间戳在下面选择然后进行Create即可

Kibana配置

image-20211101163541481

我们选择完索引没法没有获取到数据

image-20211101163550813

我们点击右上方时间,选择时间

时间有三种:

Quick:快速时间,这里帮我们选好了时间,比如今天、这周、今年以及最近15分钟等

Relative:相对时间,可以设置相对当前多少时间获取的日志

Absolute:绝对时间,可以选择从那天到那天的日志

image-20211101163606611

image-20211101163612386

我们可以查看到,日志里面的信息非常详细

image-20211101163622115

在配置文件我们定义过几个,比如path(路径)、_type(类型)

提示:日志里面数据其实就是message这一行

因为这样查看不太方便,我们可以在左侧选择要查看的信息

image-20211101163633536

我们点击我们想要查看的类型,我选择的是message和host,这样只显示这2个,查看的更方便

image-20211101163643769

温馨提示: 这里的host就是我们的主机名

保存索引

image-20211101163654820

加载索引

image-20211101163703248

提示:这样我们就可以加载我们搜索过的

创建新的索引

image-20211101163714256

kibana-证书过期

当kibana证书过期,kibana web是无法访问的

查看kibana证书时间

[root@abcdocker ~]# curl --user elastic:changeme 'http://127.0.0.1:9200/_xpack/license'
{
  "license" : {
    "status" : "active",
    "uid" : "2c4f0edc-0f3e-4e0f-80e7-4ed679f4ce8e",
    "type" : "basic",
    "issue_date" : "2017-11-08T00:00:00.000Z",
    "issue_date_in_millis" : 1510099200000,
    "expiry_date" : "2018-11-08T23:59:59.999Z",      ###这里是过期时间
    "expiry_date_in_millis" : 1541721599999,
    "max_nodes" : 100,
    "issued_to" : "Lu Qin (renren)",
    "issuer" : "Web Form",
    "start_date_in_millis" : 1510099200000
  }
}

我们需要去elk官网申请证书

申请地址: https://register.elastic.co/marvel_register

注册后将以email的方式发送,通过链接下载json文件.

我使用的是QQ邮箱,在垃圾箱里收到了。地址随便写

image-20211101163804748

image-20211101163811663

image-20211101163817776

如何查看ES版本,我们要选择对应的版本

[root@YZSJHL81-64 ~]# curl 127.0.0.1:9200
{
  "name" : "10.4.81.64",
  "cluster_name" : "fenqi.elasticsearch",
  "cluster_uuid" : "7TefE7_FSGu90OgOxrTgJg",
  "version" : {
    "number" : "5.5.1",         ##### <<===== 版本
    "build_hash" : "19c13d0",
    "build_date" : "2017-07-18T20:44:24.823Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

下载对应的版本

image-20211101163838138

默认下载下来的名称是我们注册的名称

image-20211101163849691

将js上传到服务器上

[root@abcdocker ~]# curl -XPUT -u elastic:changeme 'http://127.0.0.1:9200/_xpack/license?acknowledge=true' -d @es.json

# -d 指定json目录

image-20211101163904583