Elastic Stack学习--Kibana部署

简介:

Kibana是一个开源的用于elasticsearch的数据分析可视化平台。Kibana以可视化界面的方式对elasticsearch的索引进行检索、查看、更新等,并提供丰富的图表展现。Kibana基于Node.js实现,因而需要有Node.js运行环境。Node.js环境依赖于glibc2.4以上版本,故如果操作系统版本过低,可能无法支持,安装时一定先更新操作系统或者glibc库。

Kibana部署

1)下载kibana安装包,我们在linux环境安装,下载tar包;
2)上传tar包到服务器,解压并进入根目录;

tar -xzf kibana-6.2.2-linux-x86_64.tar.gz
cd kibana-6.2.2-linux-x86_64/

3)执行如下命令,启动kibana:

./bin/kibana

默认情况下,以前台进程方式启动kibana,并输出日志到stdout;通过ctrl+c或者ctrl+z结束进程;

Kibana目录结构

  • home:kibana的根目录,即$KIBANA_HOME变量指向的目录;默认为安装包解压后的路径;
  • bin:kibana的二进制文件所在目录,比如:kibana用于启动进程,kibana-plugin用于安装插件;默认为:$KIBANA_HOMEbin
  • config:kibana的配置文件目录,核心配置文件为kibana.yml,默认路径:$KIBANA_HOMEconfig;
  • data:kibana及其插件数据文件存放目录,默认为:$KIBANA_HOMEdata;
  • optimize:存放优化后源代码,默认$KIBANA_HOMEoptimize;
  • plugins:插件安装目录,每个插件都对应一个子目录;默认$KIBANA_HOMEplugins;

配置kibana

Kibana的配置基于kebana.yml文件,默认绑定localhost:5601启动。常用配置项如下:

console.enabled(true)

是否允许控制台方式访问kibana;

server.port(5601) 和 server.host(localhost)

配置服务器端口和地址;服务器地址默认为localhost,无法被外网访问;

server.basePath("")

kibana的访问地址根目录,类似于tomcat的rootPath;

server.maxPayloadBytes(1048576)

请求允许的最大长度,默认为1M;

server.name(hostname)

kibana的名字,为展示使用,默认为所在物理机的hostname;

elasticsearch.url(http://localhost:9200)

kibana要访问elasticsearch的地址;

kibana.index(.kibana)

kibana会在elasticsearch上创建一个索引用于存放kibana保存的检索信息、创建的视图信息以及dashboard等信息;该配置指定存放的索引名称;

pid.file(/var/run/kibana.pid)

指定kibana进程的pid文件路径;

logging.dest(stdout)

指定kibana的日志输出路径;

输出日志级别设置

  • logging.silent(false),设置不输出任何日志;
  • logging.quiet(false),设置只输出error日志;
  • logging.verbose(false),设置输出详细日志,包括系统调用信息以及所有请求日志;

Kibana安装X-Pack

x-pack的安装顺序如下图:

image

1)下载x-pack安装包,如果部署elasticsearch时已经下载,则直接使用即可,下载地址: https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.2.zip
2)执行安装命令:

bin/kibana-plugin install file:///path/to/file/x-pack-6.2.2.zip

注:此处的安装包路径一定是绝对路径,直接使用压缩包安装即可,无需解压;格式类似:file://路径

安装成功后,日志类似如下:

urrent workdir: /home/work/fzx/kibana/kibana-6.2.2-linux-x86_64
Attempting to transfer from file:///home/work/fzx/kibana/x-pack-6.2.2.zip
Transferring 314129017 bytes....................
Transfer complete
Retrieving metadata from plugin archive
Extracting plugin archive
Extraction complete
Optimizing and caching browser bundles...
Plugin installation complete

3)设置elastic内置用户名和密码,一定要和elasticsearch的bin/x-pack/setup-passwords命令所设密码相同:

elasticsearch.username: "elastic"
elasticsearch.password: "elasticpassword"

注:一定要使用内置用户elastic的用户名和密码;否则会出现认证失败的情况,kibana、logstash_system用户所给权限不足,无法对索引进行CRUD操作;

4)重启kibana,通过浏览器访问kibana地址,使用内置用户elastic和密码登录;

http://ip:port

登录后如下图:

image

坑

[security_exception] action [indices:admin/mappings/get] is unauthorized for user [kibana]

登录kibana后,报错如下图:

image

解决办法:配置kibana.yml中elasticsearch的用户名和密码错误,应该使用elastic用户而非kibana用户,kibana、logstash_system用户所给权限不足,无法对索引进行CRUD操作;

kibana报503错误,elasticsearch日志报错:org.elasticsearch.indices.InvalidIndexTemplateException

org.elasticsearch.indices.InvalidIndexTemplateException: index_template [kibana_index_template:.Elasticsearch-DEV-Kibana] invalid, cause [Validation Failed: 1: name must be lower cased;]
    at org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService.validate(MetaDataIndexTemplateService.java:310) ~[elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService.putTemplate(MetaDataIndexTemplateService.java:147) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.admin.indices.template.put.TransportPutIndexTemplateAction.masterOperation(TransportPutIndexTemplateAction.java:81) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.admin.indices.template.put.TransportPutIndexTemplateAction.masterOperation(TransportPutIndexTemplateAction.java:42) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:88) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$2.doRun(TransportMasterNodeAction.java:167) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.common.util.concurrent.EsExecutors$1.execute(EsExecutors.java:135) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doStart(TransportMasterNodeAction.java:164) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.start(TransportMasterNodeAction.java:127) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:105) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:55) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:167) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.lambda$apply$0(SecurityActionFilter.java:103) [x-pack-security-6.2.2.jar:6.2.2]
    at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter
$$
Lambda$2377/976841642.accept(Unknown Source) [x-pack-security-6.2.2.jar:6.2.2]
    at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:60) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.lambda$authorizeRequest$4(SecurityActionFilter.java:188) [x-pack-security-6.2.2.jar:6.2.2]
    at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter
$$
Lambda$2387/1116948127.accept(Unknown Source) [x-pack-security-6.2.2.jar:6.2.2]

解决办法:kibana.yml中kibana.index指定的索引必须全部使用小写字母,否则报错;

参考

Configuring Kibana
Installing X-Pack in Kibana

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
前端开发 JavaScript API
在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格
在 Vue 中,表格组件是使用频率及复杂度排名第一的组件,前端经常需要根据后台返回的数据动态渲染表格,比如动态表格如何生成,因为表格的列并不是固定的,在未知表格具体有哪些列的场景下,前端如何动态渲染表格数据。又或者需要把表格单元格进行合并处理,比如第一列是日期,需要把相同的日期进行合并,这样表格看起来会更加清晰。 本文手把手教你如何在 Vue3 + Element Plus 中创建表格、生成动态表格、创建动态多级表头、表格行合并、列合并等问题。如果你正在搭建后台管理工具,又不想处理前端问题,推荐使用卡拉云 ,卡拉云是新一代低代码开发工具,可一键接入常见数据库及 API ,无需懂前端,仅需拖拽即
4069 0
|
9月前
|
存储 人工智能 Linux
2026年新手零基础阿里云部署OpenClaw(Clawdbot)保姆级教程
2026年,AI智能代理工具迎来爆发式增长,OpenClaw(原Clawdbot、Moltbot)凭借“自然语言指令操控、多任务自动化执行、全场景适配”的核心优势,成为新手入门AI自动化的首选工具。它打破了传统AI“只说不做”的局限,既能聊天交互,更能动手执行——读写文件、运行代码、联网搜索、跨工具协同,堪称“7×24小时不下班的AI数字员工”。
2752 10
|
开发者
阿里云百炼&支付宝MCP开通教程
本文介绍了如何在支付宝开放平台创建应用并配置MCP服务,包括创建网页/移动应用、设置密钥信息、应用审核上线等步骤,随后详细说明了在阿里云百炼平台开通并使用支付宝MCP服务的流程。内容适用于希望接入支付宝支付功能的开发者和企业用户。
2058 1
阿里云百炼&支付宝MCP开通教程
|
机器学习/深度学习 人工智能 芯片
一文详解多模态大模型发展及高频因子计算加速GPU算力 | 英伟达显卡被限,华为如何力挽狂澜?
近年来,全球范围内的芯片禁令不断升级,给许多企业和科研机构带来了很大的困扰,需要在技术层面进行创新和突破。一方面,可以探索使用国产芯片和其他不受限制的芯片来替代被禁用的芯片;另一方面,可以通过优化算法和架构等方法来降低对特定芯片的依赖程度。
2020 0
|
敏捷开发 监控 数据可视化
敏捷开发的6大方法与模型,帮助你快速适应项目需求变化
3分钟了解6种常见的敏捷开发方法,包括Scrum,看板Kanban,极限编程(XP),DSDM、特征驱动开发和水晶法等方法。
3361 5
敏捷开发的6大方法与模型,帮助你快速适应项目需求变化
|
人工智能 自然语言处理 Linux
Llama 3.2:开源可定制视觉模型,引领边缘AI革命
Llama 3.2 系列 11B 和 90B 视觉LLM,支持图像理解,例如文档级理解(包括图表和图形)、图像字幕以及视觉基础任务(例如基于自然语言描述在图像中精确定位对象)。
|
Arthas 人工智能 监控
JVM工作原理与实战(三十五):性能调优
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了性能调优、性能调优案例等内容。
1016 1
|
Kubernetes Linux 开发者
CentOS 停止支持后 OS 应该如何选择?
CentOS 停止支持后 OS 应该如何选择?
|
存储 Prometheus 运维
(一)ACK prometheus-operator 之架构梳理
本文以troubleshooting的思维为切入点,深入梳理prometheus-operator架构原理,技术上跟阿里云arms_prometheus是相通的,便于在问题场景中快速定位。
2663 1
(一)ACK prometheus-operator 之架构梳理

热门文章

最新文章