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

news2024/9/21 4:04:58

上篇文章我们完成了,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]y


Password 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]y


Password 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: 5601
    server.host: "0.0.0.0"
    server.shutdownTimeout: "5s"
    
    monitoring.ui.container.elasticsearch.enabled: true
    elasticsearch.hosts: [ "https://elasticsearch.renpho-erp-common.svc.cluster.local:9200" ]
    
    #让 Kibana 连接到 Elasticsearch 时不验证 SSL 证书的有效性
    elasticsearch.ssl.verificationMode: none
    elasticsearch.ssl.certificateAuthorities: [ "/usr/share/kibana/config/local-certs/elasticsearch-ca.pem" ]
    
    server.ssl.enabled: true
    server.ssl.certificate: /usr/share/kibana/config/local-certs/kibana.crt
    server.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 rotation
    logging.appenders.default:
      type: rolling-file
      fileName: /usr/share/kibana/logs/kibana.log
      policy:
        type: time-interval
      strategy:
        type: numeric
        pattern: '-%i'
        max: 10
      layout:
        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: kibana
  namespace: renpho-erp-common
spec:
  ports:
  - port: 5601
    protocol: TCP
    targetPort: 5601
    nodePort: 30091
  type: NodePort
  selector:
    app: kibana
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: kibana
  namespace: renpho-erp-common
  labels:
    app: kibana
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: renpho.harbor.com/new-erp-common/kibana:8.15.0
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            cpu: 1
            memory: 2G
          requests:
            cpu: 0.5
            memory: 500Mi
        ports:
        - containerPort: 5601
          protocol: TCP
        volumeMounts:
        - name: kibana-volume
          mountPath: /usr/share/kibana/data
          subPath: kibana-data
        - name: kibana-volume
          mountPath: /usr/share/kibana/logs
          subPath: kibana-logs
        - name: kibana-cert-file  #挂载ssl证书目录
          mountPath: /usr/share/kibana/config/local-certs
        - name: kibana-config  #挂载配置文件
          mountPath: /usr/share/kibana/config/kibana.yml
          subPath: kibana.yml
        - name: host-time  #挂载本地时区
          mountPath: /etc/localtime
          readOnly: true
      volumes:
      - name: kibana-config
        configMap:
          name: config-map-kibana
          defaultMode: 493 #文件权限为-rwxr-xr-x
      - name: kibana-cert-file
        secret:
          secretName: kibana-certificates
      - name: host-time
        hostPath: #挂载本地时区
          path: /etc/localtime
          type: ""
  volumeClaimTemplates:
  - metadata:
      name: kibana-volume
    spec:
      storageClassName: ssd-nfs-storage
      accessModes: [ "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.coloradmin.cn/o/2101857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

hackme靶机通关攻略

1、登录靶机,查询是否有注入点 2、判断闭合方式 输入OSINT and 11 # 输入OSINT and 12 # 得出闭合方式为单引号 2、查询数据库名 输入-1 union select database(),2,3 # 3、查询数据库中的表 输入-1 union select group_concat(table_name),2,3 from informa…

搜维尔科技:数据手套+机械手遥操作,五指触感灵巧手解决方案!

本灵巧手模仿人手的自由度分配及相关运动学参数进行设计的灵巧手,整手的手指设计采用了模块化的思想。整机重量轻,单指指尖抓取力强,五指灵巧手作为人体机器人或者机械臂末端操作工具,在工业生产的特殊环境中,对复杂形…

Spring事务(2)——@Transaction详解

目录 一、rollbackFor 结论: 二、事务隔离级别 1、MySQL 事务隔离级别(回顾) 2、Spring 事务隔离级别 三、Spring 事务传播机制 1、什么是事务传播机制? 2、事务的传播机制有哪些? 3、Spring 事务传播机制使用…

基于SpringBoot技术的家具网站设计与实现

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBoot框架 工具:Eclipse、Navicat 系统展示 首页 家具详情界面 购物车界面 订单…

Python 数据分析— Pandas 基本操作(上)

文章目录 学习内容:一、Series 创建及操作二、DataFram 的创建与操作三、Pandas 的读写操作四、选择指定行列数据 学习内容: 一、Series 创建及操作 ** Series : Pandas 的一种数据结构形式,可理解为含有索引的一维数组。** **(…

Python | Leetcode Python题解之第390题消除游戏

题目&#xff1a; 题解&#xff1a; class Solution:def lastRemaining(self, n: int) -> int:a1 1k, cnt, step 0, n, 1while cnt > 1:if k % 2 0: # 正向a1 stepelse: # 反向if cnt % 2:a1 stepk 1cnt >> 1step << 1return a1

【IPV6从入门到起飞】2-1 获取你的IPV6(手机、CPE等)

【IPV6从入门到起飞】2-1 获取你的IPV6&#xff08;手机、CPE等&#xff09; 1 IPV6就在身边2 手机IPV62.1 查看IPV62.2 IPV6 ping包测试2.3 IPV6入站测试 3 电脑通过CPE获取IPV63.1 拉不起宽带的打工人3.2 开始部署IPV6环境3.2.1 刷系统3.2.2 激活IPV63.2.3 设置防火墙入站&am…

Opencv实现提取卡号(数字识别)

直接开始 实行方法 解析命令行参数&#xff1a;使用argparse库来解析命令行输入&#xff0c;确保用户提供了输入图像和模板图像的路径。 读取模板图像&#xff1a;使用cv2.imread()函数读取模板图像的路径&#xff0c;并显示原始图像。 图像预处理&#xff1a; 将图像转换为…

ARM——结构体系(处理器工作模式,CPSR,立即数,汇编语言函数调用)

1、处理器工作模式 ARM有7个基本工作模式: User:非特权模式&#xff0c;大部分任务执行在这种模式FIQ:当一个高优先级(fast)中断产生时将会进入这种模式 IRQ:当一个低优先级(normal)中断产生时将会进入这种模式 Supervisor:当复位或软中断指令执行时将会进入这种模式 Abort:当存…

CAN总线数据帧的帧结构

CAN总线中的信息是以固定格式的“帧”发送的&#xff0c;当总线为空闲时&#xff0c;任何已连接的节点都可以开始发送一个新的“帧”。 在一个CAN系统中&#xff0c;数据在节点之间的发送和接收主要通过四种不同类型的“帧”来执行和控制。这四种类型分别是数据帧、远程帧、错…

探索ArrayList的线程不安全性

文章目录 概要示例代码原因解决用 synchronized 保证安全添加元素其他方法 总结 概要 要测试ArrayList的线程不安全性&#xff0c;可以创建多个线程同时对 ArrayList 进行修改操作&#xff08;如添加、删除元素&#xff09;&#xff0c;并观察是否会引发异常或数据不一致的问题…

Typescript实现react-redux的useSelector和useDispatch的状态定义

背景&#xff1a;react中使用typescript,在引入redux之后很多状态定义有问题&#xff0c;记录下来&#xff08;文章记录学习react-redux过程中的踩坑&#xff09;。 1.useSelector时&#xff0c;state语法报错&#xff0c;类型为unknown,如下图 我的store状态设置的很简单&am…

Luminar Neo for Mac智能图像处理软件【操作简单,轻松上手】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件…

【机器学习】LSTM(长短期记忆网络)详解

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 LSTM(长短期记忆网络)详解LSTM的基本思想LSTM的前向传播过程LSTM在实际任务中的…

mysql高级知识之集群

一、安装 源码编译MySQL,若需要MySQLtar包可私信我 #创建数据目录 mkdir /data/mysql -p#安装相关依赖 yum install libtirpc-devel-0.2.4-0.16.el7.x86_64.rpm yum install cmake gcc-c++ openssl-devel ncurses-devel.x86_64 libtirpc-devel-1.3.3-8.el9_4.x86_64.rpm rpcgen…

C++入门day3-面向对象编程(中)

前言&#xff1a;C入门day2-面向对象编程&#xff08;上&#xff09;-CSDN博客 运算符重载 我们接触过函数重载&#xff0c;就是同名的函数有不同的功能。那么运算符重载&#xff0c;顾名思义也是赋予运算符其他的功能。在这里&#xff0c;我个人以为&#xff0c;运算符就是特…

C/C++语言基础--函数基础(函数定义、调用、生命周期、递归)

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 函数是语言的基本组成部分&#xff0c;也是面向对象编程的基石&#xff0c;他体现了封装的思想&#xff0c;代码的复用的功能。欢迎点赞 收藏 关注&#xff0c;本人将会持续更新 文章目录 函数什么是函数&am…

彩漩科技亮相第一届人工智能教育应用论坛,荣获AI教育科技产品TOP30奖项

近日&#xff0c;由中国教育发展战略学会人工智能与机器人教育专业委员会指导&#xff0c;北京教育信息化产业联盟主办的第一届人工智能教育应用论坛暨 AI 教育科技成果展在北京隆重举办。本次活动以“ AI 强校大时代 —— 用新质生产力打造金钥匙强校”为主题&#xff0c;汇聚…

vector 常见函数

目录 一.vector 构造函数 二 . Iterators 迭代器&#xff08;random access iterator&#xff09; 三.Capacity: 空间 3.1 resize 3.2 reserve 四.Element access: 元素访问 方式 4.1 operator[] 类似于数组的 [] 4.2 front 和back 五.Modifiers: 六.vector 的 二…

数据结构(单向链表)

单向链表代码 #ifndef _LINK_H_#define _LINK_H_typedef int DataType;typedef struct node {DataType data;struct node *pnext; }Link_Node_t;typedef struct link {Link_Node_t *phead;int clen; }Link_t;extern Link_t *link_creat(); extern int push_link_head(Link_t *…