首页 > 其他分享 >搭建https的es+kibana(7.9.1)

搭建https的es+kibana(7.9.1)

时间:2024-04-30 11:56:50浏览次数:26  
标签:name elastic eck kibana https 7.9 true es

背景:elasticsearch7需要开启https才可以创建报警,因此就需要搭建https的elasticsearch

参考官方网站:https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-elasticsearch.html

 

第一步,创建crd

kubectl create -f https://download.elastic.co/downloads/eck/2.12.1/crds.yaml

第二步,安装operator的RDBC

kubectl apply -f https://download.elastic.co/downloads/eck/2.12.1/operator.yaml

第三步,确保operator的pod成功启动

[root@localhost ~]# kubectl -n elastic-system get pods 
NAME                 READY   STATUS    RESTARTS      AGE
elastic-operator-0   1/1     Running   6 (20h ago)   20h

第四步,创建es集群

[root@localhost es]# cat es.yaml.bak 
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: eck-cluster
  namespace: elk
spec:
  version: 7.9.1
  http:
    tls:
      selfSignedCertificate:
        disabled: true
  nodeSets:
  - name: default
    count: 1
    config:
      node.master: true
      node.data: true
      node.ingest: true
      node.ml: false
      xpack.graph.enabled: false
      xpack.ml.enabled: false
      xpack.watcher.enabled: false
      xpack.monitoring.collection.enabled: true
      xpack.security.enabled: true
      xpack.security.http.ssl.enabled: true
      xpack.security.authc:
          anonymous:
            username: anonymous
            roles: superuser
            authz_exception: false
    volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 100Gi
        storageClassName: standard
    podTemplate:
      spec:
        initContainers:
        - name: sysctl
          securityContext:
            privileged: true
          command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
        containers:
        - name: elasticsearch
          env:
          - name: ES_JAVA_OPTS
            value: -Xms512m -Xmx512m -Des.allow_insecure_settings=true
          - name: READINESS_PROBE_PROTOCOL
            value: https
          resources:
            requests:
              memory: 2Gi
            limits:
              memory: 4Gi

第五步,确保es正常启动,我这里只创建了一个节点,因此是yellow,启动3个就是green了

[root@localhost es]# kubectl -n elk get es 
NAME          HEALTH   NODES   VERSION   PHASE   AGE
eck-cluster   yellow   1       7.9.1     Ready   61m

第六步,创建kibana,这里要注意的是红色字体的名字要对应kubectl -n elk get es显示的名字

apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: eck-cluster
  namespace: elk
spec:
  version: 7.9.1
  count: 1
  config: 
    #elasticsearch.hosts: ["https://eck-cluster-es-http.elk.svc:9200"]
    elasticsearch.username: "elastic"
    elasticsearch.password: "xxxxx"
  elasticsearchRef:
    name: eck-cluster

第七步,确保es和kibana都正常启动

[root@localhost es]# kubectl -n elk get pods 
NAME                              READY   STATUS    RESTARTS   AGE
eck-cluster-es-default-0          1/1     Running   0          44m
eck-cluster-kb-7d75dd6758-g2rcp   1/1     Running   0          57m

第八步,开启端口转发,访问kibana  UI

kubectl -n elk port-forward --address 0.0.0.0 svc/eck-cluster-kb-http 5601:5601

第九步,可以看到kibana的报警已经可以使用了

补充,如果需要filebeat连接es发送日志的话,也需要https协议,红色字体是开启https协议的内容具体配置如下:

filebeat.inputs:
- type: log
  processors:
  paths:
    - "/mnt/log/logstash.log"
  fields:
    app: xxx
    index: xxxx
    group: xxx
    namespaces: xxx
    clusterName: "${CLUSTER_NAME:}"
  #没有新日志采集后多长时间关闭文件句柄,默认5分钟,设置成1分钟,加快文件句柄关闭;
  close_inactive: 1m
  #传输了3h后荏没有传输完成的话就强行关闭文件句柄;
  close_timeout: 3h
  #这个配置项也应该配置上,默认值是0表示不清理,不清理的意思是采集过的文件描述在registry文件里永不清理,在运行一段时间后,registry会变大,可能会带来问题。
  clean_inactive: 72h
  #设置了clean_inactive后就需要设置ignore_older,且要保证ignore_older < clean_inactive
  ignore_older: 70h
  #multiline.pattern: ^20[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}
  #multiline.negate: true
  #multiline.match: after
  # 和福林确认日志只需要处理1毫秒内的多行输出
  #multiline.timeout: 50ms
  # 只保留40行日志
  #multiline.max_lines: 40
  exclude_files: ['debug']
  json.message_key: message
  json.keys_under_root: true
  json.overwrite_keys: true
  json.add_error_key: true
- type: log
  processors:
  paths:
    - "/mnt/log/requestlog.log"
  fields:
    app: xxx
    index: xxx
    group: xxx
    namespaces: xxx
    clusterName: "${CLUSTER_NAME:}"
  close_inactive: 1m
  close_timeout: 3h
  clean_inactive: 72h
  ignore_older: 70h
  exclude_files: ['debug']
  json.message_key: message
  json.keys_under_root: true
  json.overwrite_keys: true
  json.add_error_key: true
- type: log
  processors:
  paths:
    - "/mnt/log/gc.log"
  fields:
    app: xxxx
    index: gc
    group: xxx
    namespaces: xxxx
    clusterName: "${CLUSTER_NAME:}"
  close_inactive: 1m
  close_timeout: 3h
  clean_inactive: 72h
  ignore_older: 70h
  exclude_files: ['debug']
output.elasticsearch:
  enabled: true
  hosts: ["eck-cluster-es-http.elastic-system.svc:9200"]
  protocol: "https"
  username: "elastic-system-eck-cluster-kibana-user"
  password: "wYPuZ0719ix52U408M6prQXx"
  ssl:
    certificate_authorities: ["/usr/share/filebeat/ca.pem"]
    erification_mode: "certificate"
  index: "%{[fields.index]}-%{+yyyy.MM.dd}"
setup.ilm.enabled: false
setup.template.name: "%{[fields.index]}"
setup.template.pattern: "%{[fields.index]}-*"
setup.template.enabled: false
setup.template.overwrite: true

 

标签:name,elastic,eck,kibana,https,7.9,true,es
From: https://www.cnblogs.com/fengzi7314/p/18167764

相关文章

  • 云原生技术kubernetes(K8S)简介
    详细介绍目录01kubernetes是什么?02kubernetes和Compost+Swarm之间的区别03一点总结今天我们看看kubernetes技术的介绍,最近在极客时间上看张磊老师的深入kubernetes技术,讲的非常好,有兴趣的同学可以去收听一下,对于理解kubernetes技术非常有帮助,这里我会按照自己的进度,分享一下......
  • 云原生k8s史上最详细 云原生 serverless
    Serverless是云计算发展的产物,其实不管是云计算还是云原生,亦或者是Serverless架构,他具体是什么,都是很难说得清的,但是这并不影响我们对Serverless架构的理解。一、心智层面去服务器化:专业的事情交给更专业的人,开发者可以更关注于自身业务逻辑字面解释Server和less的:就是将更少的......
  • 云原生|实战:快速搭一个Kubernetes集群(一)
    Kubernetes从2014年正是发布到现在已经快10个年头了,已经成为容器编排的领导者,而基于Kubernetes的开源项目,各个ICT公司都开启了自己的发行版本,这些版本通常针对不同的使用场景和需求进行了特定的优化,旨在简化Kubernetes的安装、配置和管理过程,以下是一些主要的Kubernetes发行版本:M......
  • 云原生二十篇|Kubernetes核心原理
    本文主要介绍k8s的核心原理,包括浅析各个模块的运行逻辑和k8s中的网络通讯。第一部分:模块 <imgsrc="https://pic2.zhimg.com/v2-795889f97336ebfcb89bed1e712ed0a1_b.jpg"data-caption=""data-size="normal"data-rawwidth="1080"data-rawheight="488"......
  • typescript
    typescriptref:https://www.runoob.com/typescript/ts-tutorial.html安装npminstall-gtypescripttsc-vapp.tsconsthello:string="HelloWorld!"console.log(hello)然后执行以下命令将TypeScript转换为JavaScript代码:tscapp.tstscfile1.tsfile2.ts......
  • 使用PowerDesigner连接数据库并反向工程生成所有表及关系
    配置对数据库的JDBC连接时,总是提示连接失败!也没有任何其他信息,查阅网上资料并实际验证,按如下步骤可以成功:1、因为PowerDesigner是32位的程序,需要使用x86-32位版本的JDK2、配置PowerDesigner-》Tools-》GeneralOptions-》variables ,配置jar、java等路径配置为32位JDK3、......
  • pytest 学习 - 00 环境安装配置
    前言pytest是一个非常好用且成熟的全功能Python测试框架,个人觉得比传统的Unitest好多用了,现在面试如果写只会Unitest会被鄙视的。主要有以下特点:1.简单灵活,容易上手,参数化灵活。2.测试用例支持很多机制像skip、xfail、自动失败重试等处理。3.能够......
  • Typora Notes
    <!doctypehtml><htmlstyle='font-size:18px!important'><head><metacharset='UTF-8'><metaname='viewport'content='width=device-widthinitial-scale=1'><styletype='text/css&......
  • python3解析FreeSWITCH会议室列表信息
    操作系统:CentOS7.6_x64FreeSWITCH版本:1.10.9 Python版本:3.9.12进行FreeSWITCH会议室相关功能开发过程中,会遇到需要解析会议室列表信息并进行特定操作的情况,比如设置特定通道变量、发送dtmf、录音等。今天整理下CentOS7环境下,使用Python3解析FreeSWITCH会议室列表信息然后......
  • [postgres]序列
    前言序列都是用createsequence命令创建的单行表,常用于为表的行生成唯一的标识符。相关函数函数作用nextval()递增序列并返回新值currval()返回最近一次用nextval()函数获取的指定序列的值lastval()返回最近一次用nextval()函数获取的任何序列的值setval(......