ELK学习笔记(二)——使用K8S部署Kibana8.15.0

news/2024/9/17 7:37:22/ 标签: elk, 学习, 笔记, k8s

上篇文章我们完成了,ES的集群部署,如果还没有看过上篇文章的兄弟,可以去看看。
ELK学习笔记(一)——使用K8S部署ElasticSearch8.15.0集群
话不多说,接下来直接进入kibana的搭建

一、下载镜像

#1、下载官方镜像
docker pull kibana:8.15.0
#2、打新tag
docker tag kibana:8.15.0 192.168.9.41:8088/new-erp-common/kibana:8.15.0
#3、推送到私有仓库harbor
docker push 192.168.9.41:8088/new-erp-common/kibana:8.15.0

二、创建工作目录

mkdir -p /home/ec2-user/k8s/elk/kibana

kibana的yaml文件目录:/home/ec2-user/k8s/elk/kibana

kibana的安全证书文件目录:/home/ec2-user/k8s/elk/kibana/certs
在这里插入图片描述

三、准备yaml配置文件

3.1重置密码(密码忘记时可选)

当es集群搭建好之后,用kubectl exec -it 进去到任一es容器内部,运行下方命令重置elastic账号 与 kibana-system(kibana专用)账号的密码

$ kubectl get pod -n renpho-erp-common|grep elastic
elasticsearch-0                       1/1     Running   0          3d21h
elasticsearch-1                       1/1     Running   0          3d21h
elasticsearch-2                       1/1     Running   0          3d21h# ec2-user @ k8s-master in ~/k8s/elk/kibana [4:14:42] 
$ kubectl exec -it elasticsearch-0 -n renpho-erp-common -- /bin/sh
sh-5.0$ pwd
/usr/share/elasticsearch
#重置elasticsearch密码
sh-5.0$ ./bin/elasticsearch-reset-password -u elastic
This tool will reset the password of the [elastic] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]yPassword for the [elastic] user successfully reset.
New value: sJdEWgos4+O3Ay*lgt
#重置kibana密码
sh-5.0$ ./bin/elasticsearch-reset-password -u kibana_system
This tool will reset the password of the [kibana] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]yPassword for the [kibana_system] user successfully reset.
New value: fo*6-ggA59Fk*CYQG4Df

记住此密码,下面kibana.yml中需要用到。或者使用./bin/elasticsearch-reset-password -u kibana_system -i自定义密码

修改密码时可能会遇到权限问题,比如执行./bin/elasticsearch-reset-password -u elastic时,出现

sh-5.0$ ./bin/elasticsearch-reset-password -u elastic
WARNING: Owner of file [/usr/share/elasticsearch/config/users] used to be [root], but now is [elasticsearch]
WARNING: Owner of file [/usr/share/elasticsearch/config/users_roles] used to be [root], but now is [elasticsearch]

This tool will reset the password of the [elastic] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]

ERROR: User cancelled operation, with exit code 0
在这里插入图片描述

3.2准备ConfigMap配置

创建ConfigMap配置,里面主要配置了kibana.yml需要的配置

  • server.publicBaseUrl、server.host
    可以根据自己的需要填写,我习惯都是挂个域名然后通过内网配个hosts来访问
  • elasticsearch.hosts 配置kibana访问ES集群的地址,这里用的就是ES service的访问地址
  • elasticsearch.password 是我们之前设定的kibana_system账号的密码
$ cat config-map-kibana.yaml 
apiVersion: v1
kind: ConfigMap #配置信息
metadata:name: config-map-kibana #kibana配置namespace: renpho-erp-common
data:kibana.yml: |#服务器端口#server.publicBaseUrl:server.port: 5601server.host: "0.0.0.0"server.shutdownTimeout: "5s"monitoring.ui.container.elasticsearch.enabled: trueelasticsearch.hosts: [ "https://elasticsearch.renpho-erp-common.svc.cluster.local:9200" ]#让 Kibana 连接到 Elasticsearch 时不验证 SSL 证书的有效性elasticsearch.ssl.verificationMode: noneelasticsearch.ssl.certificateAuthorities: [ "/usr/share/kibana/config/local-certs/elasticsearch-ca.pem" ]server.ssl.enabled: trueserver.ssl.certificate: /usr/share/kibana/config/local-certs/kibana.crtserver.ssl.key: /usr/share/kibana/config/local-certs/kibana.key#访问es服务器账号密码,可以进到es pod中执行./bin/elasticsearch-reset-password -u kibana_system重置密码elasticsearch.username: "kibana_system"elasticsearch.password: "fo*6-ggA59Fk*CYQG4Df"# =================== System: Logging ===================logging.root.level: info# Example with size based log rotationlogging.appenders.default:type: rolling-filefileName: /usr/share/kibana/logs/kibana.logpolicy:type: time-intervalstrategy:type: numericpattern: '-%i'max: 10layout:type: json# Specifies locale to be used for all localizable strings, dates and number formats.# Supported languages are the following: English (default) "en", Chinese "zh-CN", Japanese "ja-JP", French "fr-FR".i18n.locale: "zh-CN"

3.3准备Service及StatefulSet文件

$ cat deploy-kibana2.yaml 
apiVersion: v1
kind: Service
metadata:name: kibananamespace: renpho-erp-common
spec:ports:- port: 5601protocol: TCPtargetPort: 5601nodePort: 30091type: NodePortselector:app: kibana
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: kibananamespace: renpho-erp-commonlabels:app: kibana
spec:replicas: 1selector:matchLabels:app: kibanatemplate:metadata:labels:app: kibanaspec:containers:- name: kibanaimage: renpho.harbor.com/new-erp-common/kibana:8.15.0imagePullPolicy: IfNotPresentresources:limits:cpu: 1memory: 2Grequests:cpu: 0.5memory: 500Miports:- containerPort: 5601protocol: TCPvolumeMounts:- name: kibana-volumemountPath: /usr/share/kibana/datasubPath: kibana-data- name: kibana-volumemountPath: /usr/share/kibana/logssubPath: kibana-logs- name: kibana-cert-file  #挂载ssl证书目录mountPath: /usr/share/kibana/config/local-certs- name: kibana-config  #挂载配置文件mountPath: /usr/share/kibana/config/kibana.ymlsubPath: kibana.yml- name: host-time  #挂载本地时区mountPath: /etc/localtimereadOnly: truevolumes:- name: kibana-configconfigMap:name: config-map-kibanadefaultMode: 493 #文件权限为-rwxr-xr-x- name: kibana-cert-filesecret:secretName: kibana-certificates- name: host-timehostPath: #挂载本地时区path: /etc/localtimetype: ""volumeClaimTemplates:- metadata:name: kibana-volumespec:storageClassName: ssd-nfs-storageaccessModes: [ "ReadWriteMany" ]resources:requests:storage: 20Gi

四、开始用K8S部署Kibana

首先,看下kibana目录下的文件
在这里插入图片描述

4.1将安全证书添加到Secret中

kubectl create secret generic kibana-certificates  --from-file=/home/ec2-user/k8s/elk/kibana/certs/elasticsearch-ca.pem  --from-file=/home/ec2-user/k8s/elk/kibana/certs/kibana.crt  --from-file=/home/ec2-user/k8s/elk/kibana/certs/kibana.csr --from-file=/home/ec2-user/k8s/elk/kibana/certs/kibana.key -n renpho-erp-common

在这里插入图片描述

4.2运行Kibana

依次执行下列命令

#ES配置文件创建
kubectl apply -f config-map-kibana.yaml
#ES Service,StatefulSet创建
kubectl apply -f delpoy-kibana2.yaml
#查看运行状态
kubectl get pod -n renpho-erp-common|grep kibana

在这里插入图片描述
浏览器访问下面地址:https://renpho.master.com:30091/login,这时候需要输入elastic的账号登录进去
你也可以使用ip访问,例如https://192.168.6.220:30091/login。我这里是将192.168.6.220做了个伪域名renpho.master.com
在这里插入图片描述
登录进去后,通过kibana dev-tool一样可以查看ES集群状态
在这里插入图片描述
到此,使用K8s部署Kibana成功!


http://www.ppmy.cn/news/1522133.html

相关文章

Echarts中国地图省市区县三级联动

NodeV14.20.0安装 # 历史版本Node下载地址 https://nodejs.org/en/download/prebuilt-installer# NodeV14.20.0配置与部署 https://nodejs.org/dist/v14.20.0/node-v14.20.0-x64.msi构建默认Vue3工程目录 npm install -g vue/cli --registryhttps://registry.npm.taobao.org …

综合案例-数据可视化-折线图

一、json数据格式 1.1 json数据格式的定义与功能 json是一种轻量级的数据交互格式,可以按照json指定的格式去组织和封装数据,json数据格式本质上是一个带有特定格式的字符串。 功能:json就是一种在各个编程语言中流通的数据格式&#xff0…

常用排序算法(上)

目录 前言: 1.排序的概念及其运用 1.1排序的概念 1.2排序运用 1.3 常见的排序算法 2.常见排序算法的实现 2.1 堆排序 2.1 1 向下调整算法 2.1 2 建堆 2.1 3 排序 2.2 插入排序 2.1.1基本思想: 2.1.2直接插入排序: 2.1.3 插…

光伏项目报告如何做?能否自动生成?

一、光伏项目做报告的必要性 在光伏项目开发过程中,编制一份详尽、准确的光伏项目报告是至关重要的环节。这份报告不仅是对项目建设的全面调查和评估,更是项目立项、审批、融资、设计、建设及运营等多个阶段的重要参考依据。光伏项目报告通过深入分析项…

项目实战 ---- 商用落地视频搜索系统(6)---UI 结构及与service互动

目录 背景 技术问题 描述 Jinja2 概述 特性 问题解决手段 问题1 问题2 问题3 代码实现 前端代码 python代码 解释 页面展示 home 上传视频 搜索视频 背景 通过1-5 我们已经搭建好完整的后台功能,service,及准备与UI 交互的路由及接口。下面就是UI 部分的搭…

统计学习方法与实战——统计学习方法概论

统计学习方法概论 文章目录 统计学习方法概论前言章节目录导读 实现统计学习方法的步骤统计学习方法三要素模型模型是什么? 策略损失函数与风险函数常用损失函数ERM与SRM 算法 模型评估与模型选择过拟合与模型选择 正则化与交叉验证泛化能力生成模型与判别模型生成方法判别方法…

Spark的Web界面

http://localhost:4040/jobs/ 在顶部导航栏上,可以点击以下选项来查看不同类型的Spark应用信息: Jobs - 此视图将列出所有已提交的作业,并提供每个作业的详细信息,如作业ID、名称、开始时间、结束时间等。Stages - 此视图可以查…

线性因子模型 - 引言篇

序言 在当今数据爆炸的时代,如何从海量、高维的数据中提炼出有价值的信息,已成为机器学习乃至人工智能领域的重要课题。深度学习,作为这一领域的璀璨明珠,凭借其强大的特征学习与表示能力,在图像识别、自然语言处理、…

探索EasyCVR与AI技术深度融合:视频汇聚平台的新增长点

随着5G、AI、边缘计算、物联网(IoT)、云计算等技术的快速发展,万物互联已经从概念逐渐转变为现实,AIoT(物联网人工智能)的新时代正在加速到来。在这一背景下,视频技术作为信息传输和交互的重要手…

深入RabbitMQ世界:探索3种队列、4种交换机、7大工作模式及常见概念

文章目录 文章导图RabbitMQ架构及相关概念四大核心概念名词解读 七大工作模式及四大交换机类型0、前置了解-默认交换机DirectExchange1、简单模式(Simple Queue)-默认DirectExchange2、 工作队列模式(Work Queues)-默认DirectExchange3、发布/订阅模式(Publish/Subscribe)-Fano…

【Java毕业设计】基于SpringBoot+Vue+uniapp的农产品商城系统

文章目录 一、系统架构1、后端:SpringBoot、Mybatis2、前端:Vue、ElementUI4、小程序:uniapp3、数据库:MySQL 二、系统功能三、系统展示1、小程序2、后台管理系统 一、系统架构 1、后端:SpringBoot、Mybatis 2、前端…

水晶连连看 - 无限版软件操作说明书

水晶连连看 – 无限版游戏软件使用说明书 文章目录 水晶连连看 – 无限版游戏软件使用说明书1 引言1.1 编写目的1.2 项目名称1.3 项目背景1.4 项目开发环境 2 概述2.1 目标2.2 功能2.3 性能 3 运行环境3.1 硬件3.2 软件 4 使用说明4.1 游戏开始界面4.2 游戏设定4.2.1 游戏帮助4…

数据库MySQL基础

目录 一、数据库的介绍 1.数据库概述 (1)数据的存储方式 (2)数据库 2.常见数据库排行榜 二、数据库的安装与卸载 1.数据库的安装 2.数据库的卸载 三、数据库服务的启动与登录 1.Windows 服务方式启动 (1&…

如何解决PCDN技术与边缘计算技术融合后的安全和隐私问题(壹)?

PCDN(Peer-assisted Content Delivery Network)技术与边缘计算技术的融合可以带来显著的性能提升和效率优化,但同时也带来了新的安全和隐私挑战。以下是一些解决这些安全和隐私问题的操作策略: 1. 强化数据加密 传输加密&#x…

U盘怎么加密保护?U盘加密方法介绍

在数字化时代,U盘作为一种便携式存储设备,广泛应用于我们的日常生活和工作中。然而,U盘中存储的数据安全性问题日益凸显。为了保护个人隐私和重要数据,学会U盘加密方法显得尤为重要。本文将为您详细介绍几种U盘加密方法&#xff0…

linux————根据端口查找运行目录的三种方法

先查询端口找到进程 netstat -anlpt | grep 16443 | grep -v grep tcp 0 0 0.0.0.0:16443 0.0.0.0:* LISTEN 3710563/nginx: mast tcp 0 0 192.168.110.253:16443 192.168.110.22:64430 ESTABLISHED 3710580/n…

Spark MLlib模型训练—回归算法 Survival Regression

Spark MLlib模型训练—回归算法 Survival Regression 生存回归(Survival Regression)是一种用于分析时间到事件数据的回归方法,广泛应用于医学、生物统计学、工程可靠性分析等领域。它的核心是预测一个事件发生的时间或概率,比如患者生存时间、设备故障时间等。本文将详细…

net、udp、tcp

Makefile的main.c文件中的全局变量SONG song,要在fun.c文件里面写成extern SONG song 编译方法 第一次编写 或 网络编程 物理层的网线规定有八根,颜色不一样,功能不一样,光猫把光信号转换成电信号,光纤10Gb WiFi叫无线局域网,一般也就50米左右,手机流量叫蜂窝网络,…

golang闭包中变量获取

闭包的本质是一个语法糖,其本质是获取外部变量在其内部使用。文中case2和case3并未涉及闭包,只是作为对比案例。case4这个案例有点不能理解,汇编看着太吃力了。case4和case5留待后续再研究。 案例1: package main// 探究go语言中…

ARM SIMD instruction -- fcmpe

FCMPE Floating-point signaling Compare (scalar). This instruction compares the two SIMD&FP source register values, or the first SIMD&FP source register value and zero. It writes the result to the PSTATE.{N, Z, C, V} flags. 浮点数比较(标量…