1. 简介
Kibana 是一个开源的分析与可视化平台,可以用 Kibana 搜索、查看存放在 Elasticsearch 中的数据,就跟谷歌的 elasticsearch head 插件类似,但 Kibana 与 Elasticsearch 的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
Elasticsearch、Logstash 和 Kibana 这三个技术就是常说的 ELK 技术栈,很典型的 MVC 思想,模型持久层,视图层和控制层。Logstash 担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而 Kibana 担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在 Elasticsearch 中的数据。
2. 安装
下载地址:Past Releases of Elastic Stack Software | Elastic
需要下载和 Elasticsearch 一样的版本,我的elasticsearch 是7.6.2,这里便下载 kibana-7.6.2
解压到 /usr/lcoal/ 目录下:
tar -zxvf kibana-7.6.2-linux-x86_64.tar.gz -C /usr/local/
mv kibana-7.6.2-linux-x86_64/ kibana-7.6.2
3. 进入kibana目录,修改配置文件
vim /usr/local/kibana-7.6.2/config/kibana.yml
修改配置如下:
server.host: "0.0.0.0"
server.name: "192.168.31.105"
elasticsearch.hosts: ["http://192.168.31.104:9200"]
elasticsearch.username: "elastic"
elasticsearch.password: "123456"
- server.host:允许远程访问的地址配置,默认为本机,如果需要把 Kibana 服务给远程主机访问,只需要在这个配置中填写远程的那台主机的 ip 地址,那如果希望所有的远程主机都能访问,那就填写 0.0.0.0
- server.name:该kibana服务的名称,默认your-hostname
- elasticsearch.hosts:连接 Elasticsearch 服务配置,默认为连接到本机的 Elasticsearch,并且端口为 9200,即 localhost:9200,我这里设置为连接 192.168.31.104 上的Elasticsearch。
- elasticsearch.username 和 elasticsearch.password: Elasticsearch的用户名和密码,默认是没有用户名和密码,由于我在 Elasticsearch 安装 X-pack 一文中将 elastic 用户的密码设置成了123456,所以这里便也填写了用户名和密码
4. 启动:
启动:
## kibana启动:
/usr/local/kibana-7.6.2/bin/kibana &
## kibana指定配置文件启动:
nohup /usr/local/kibana-7.6.2/bin/kibana -c /usr/local/kibana-7.6.2/config/kibana.yml > /dev/null 2>&1 &
kibana不建议以root用户启动,如果用root启动,需要加–allow-root (不建议使用,一关闭窗口会退出):
./kibana --allow-root
kibana关闭命令:先找到 kibana 所在的进程号,然后kill即可
- 查看进程号: jps 或者 ps -ef|grep kibana
或者 ps -ef|grep 5601 或者 netstat -tunpl | grep 5601
或者 fuser -n tcp 5601 或者 netstat -anltp|grep 5601
- 杀死进程: kill -9 进程号
5. 访问:
ibana默认的端口是 5601
,防火墙打开 5601
的端口后,在浏览器访问 ip:5601
就可以访问到 Kibana 了:http://192.168.31.103:5601/app/kibana (5601为kibana默认端口)
6. 申请license:
修改申请的license, 注意license.json文件名称不能变否则认证失败
(1)"type":"basic" 替换为 "type":"platinum": # 基础版变更为铂金版
(2)"expiry_date_in_millis":1561420799999 替换为 "expiry_date_in_millis":3107746200000 :# 1年变为50年
然后启动elasticsearch服务 和 kibana服务,并进入kibana后台,Management->License Management上传修改后的token。
6.3+ 版本不再需要单独申请 license,可以直接在 kibana 界面申请试用:
7. 实现日志查询
如下图添加 Index Patterns
创建好之后,回到 Discovery
就可以看到对应的视图了,同时还可以自定义添加筛选条件查看数据。
kibana.yml 配置文件解释
#####----------kibana服务相关----------#####
#提供服务的端口,监听端口
server.port: 5601
#主机地址,可以是ip,主机名
server.host: 0.0.0.0
#在代理后面运行,则可以指定安装Kibana的路径
#使用server.rewriteBasePath设置告诉Kibana是否应删除basePath
#接收到的请求,并在启动时防止过时警告
#此设置不能以斜杠结尾
server.basePath: ""
#指定Kibana是否应重写以server.basePath为前缀的请求,或者要求它们由反向代理重写,默认false
server.rewriteBasePath: false
#传入服务器请求的最大有效负载大小,以字节为单位,默认1048576
server.maxPayloadBytes: 1048576
#该kibana服务的名称,默认your-hostname
server.name: "your-hostname"
#服务的pid文件路径,默认/var/run/kibana.pid
pid.file: /var/run/kibana.pid
#####----------elasticsearch相关----------#####
#kibana访问es服务器的URL,就可以有多个,以逗号","隔开
elasticsearch.hosts: ["http://localhost:9200"]
#当此值为true时,Kibana使用server.host设定的主机名
#当此值为false时,Kibana使用连接Kibana实例的主机的主机名
#默认ture
elasticsearch.preserveHost: true
#Kibana使用Elasticsearch中的索引来存储已保存的搜索,可视化和仪表板
#如果索引尚不存在,Kibana会创建一个新索引
#默认.kibana
kibana.index: ".kibana"
#加载的默认应用程序
#默认home
kibana.defaultAppId: "home"
#kibana访问Elasticsearch的账号与密码(如果ElasticSearch设置了的话)
elasticsearch.username: "kibana_system"
elasticsearch.password: "pass"
#从Kibana服务器到浏览器的传出请求是否启用SSL
#设置为true时,需要server.ssl.certificate和server.ssl.key
server.ssl.enabled: true
server.ssl.certificate: /path/to/your/server.crt
server.ssl.key: /path/to/your/server.key
#从Kibana到Elasticsearch启用SSL后,ssl.certificate和ssl.key的位置
elasticsearch.ssl.certificate: /path/to/your/client.crt
elasticsearch.ssl.key: /path/to/your/client.key
#PEM文件的路径列表
elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]
#控制Elasticsearch提供的证书验证
#有效值为none,certificate和full
elasticsearch.ssl.verificationMode: full
#Elasticsearch服务器响应ping的时间,单位ms
elasticsearch.pingTimeout: 1500
#Elasticsearch 的响应的时间,单位ms
elasticsearch.requestTimeout: 30000
#Kibana客户端发送到Elasticsearch的标头列表
#如不发送客户端标头,请将此值设置为空
elasticsearch.requestHeadersWhitelist: []
#Kibana客户端发往Elasticsearch的标题名称和值
elasticsearch.customHeaders: {}
#Elasticsearch等待分片响应的时间
elasticsearch.shardTimeout: 30000
#Kibana刚启动时等待Elasticsearch的时间,单位ms,然后重试
elasticsearch.startupTimeout: 5000
#记录发送到Elasticsearch的查询
elasticsearch.logQueries: false
#####----------日志相关----------#####
#kibana日志文件存储路径,默认stdout
logging.dest: stdout
#此值为true时,禁止所有日志记录输出
#默认false
logging.silent: false
#此值为true时,禁止除错误消息之外的所有日志记录输出
#默认false
logging.quiet: false
#此值为true时,记录所有事件,包括系统使用信息和所有请求
#默认false
logging.verbose: false
#####----------其他----------#####
#系统和进程取样间隔,单位ms,最小值100ms
#默认5000ms
ops.interval: 5000
#kibana web语言
#默认en
i18n.locale: "en"