Kubernetes 中 ElasticSearch 中的 MinIO 审核日志

无论您是在本地还是在云中,您都希望确保以同构的方式设置工具和流程。无论在何处访问基础结构,您都希望确保用于与各种基础结构进行交互的工具与其他区域相似。

考虑到这一点,在部署您自己的 MinIO 对象存储基础架构时,深入了解您的存储基础架构至关重要。当存储基础结构中发生任何意外活动时,您需要以简洁的方式快速显示这些日志。本教程将全面概述如何在 ElasticSearch 中显示 MinIO 审计日志,以便对其进行搜索。

设置配置

在 Kubernetes 集群上部署 MinIO operator

kubectl apply -k github.com/minio/operator/

我们需要在启用 ElasticSearch WebHook 的情况下部署租户

以 base64 格式对您的用户和密码进行编码

# Encode your user and password in base64

$ echo -n 'user:password' | base64

dXNlcjpwYXNzd29yZA==

创建密钥所在的命名空间

kubectl create namespace tenant-lite

使用之前生成的 base64 用户/密码创建密钥。创建一个名为的文件 secret.yaml 并将内容保存在其中。

apiVersion: v1

kind: Secret

metadata:

  name: mysecrettoken

type: Opaque

stringData:

  token: "Basic dXNlcjpwYXNzd29yZA=="

按如下方式应用密钥

k apply -f secret.yaml

让我们配置 Webhook,以便它可以从密钥中获取凭据

apiVersion: minio.min.io/v2

kind: Tenant

metadata:

  name: storage

  namespace: minio-tenant

spec:

  env:

    - name: MINIO_AUDIT_WEBHOOK_ENABLE_TESTING

      value: "on"

    - name: MINIO_AUDIT_WEBHOOK_ENDPOINT_TESTING

      value: "http://<HOST>:9200/ajtest/ajtest2"

    - name: MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_TESTING

      valueFrom:

        secretKeyRef:

          name: mysecrettoken

          key: token

          optional: false # value coming from secret

    - name: MINIO_ROOT_USER

      value: minio

    - name: MINIO_ROOT_PASSWORD

      value: minio123

使用 Kustomize 安装租户

kubectl apply -k github.com/minio/operator/examples/kustomization/tenant-lite

让我们卷曲索引以查看输出

curl -u <USER>:<PASSWORD> -X GET "<HOST>:9200/ajtest/_search?pretty" -H 'Content-Type: application/json'

您应该会看到类似于下面的审核日志

[TRUNCATED]

 

        "remotehost" : "10.244.4.2",

          "requestID" : "17329E78E6E41E8E",

          "userAgent" : "MinIO (linux; arm64) madmin-go/0.0.1",

          "requestQuery" : {

            "key" : "audit_webhook:storage-lite-log-search-api"

          },

          "requestHeader" : {

            "Authorization" : "AWS4-HMAC-SHA256 Credential=minio/20221220//s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=2ae3c3d8693619c4407723146091ae3b884827bc6dc8b9d12c9380f4a50db3b7",

            "User-Agent" : "MinIO (linux; arm64) madmin-go/0.0.1",

            "X-Amz-Content-Sha256" : "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",

            "X-Amz-Date" : "20221220T214413Z"

          },

          "responseHeader" : {

            "Accept-Ranges" : "bytes",

            "Content-Length" : "242",

            "Content-Security-Policy" : "block-all-mixed-content",

            "Content-Type" : "application/json",

            "Server" : "MinIO",

            "Strict-Transport-Security" : "max-age=31536000; includeSubDomains",

            "Vary" : "Origin,Accept-Encoding",

            "X-Amz-Request-Id" : "17329E78E6E41E8E",

            "X-Content-Type-Options" : "nosniff",

            "X-Xss-Protection" : "1; mode=block"

          }

        }

      },


[TRUNCATED]


      {

        "_index" : "ajtest",

        "_type" : "ajtest2",

        "_id" : "ADB-MYUBuuSsBbj2iI88",

        "_score" : 1.0,

        "_source" : { }

      }

    ]

  }

}

输出会很长,所以我们截断了输出,使其清晰易读。

最后的思考

如您所见,快速注意这些审核日志非常重要。事实上,您可以通过监控系统或直接通过 ElasticSearch 设置警报,以根据某些日志向您发送警报,以便您可以掌握 MinIO 存储基础设施。

更重要的是,您需要将云视为一种运营模式,而不是一个位置。这意味着,无论您在哪里部署工具和基础设施,无论是混合云、私有云还是本地部署,您都希望确保将 MinIO 审计日志发送到日志处理器,而不必是 ElasticSearch。这样,无论您将 MinIO 部署在何处,您都可以确保它的每一步都受到监控。

相关推荐
huosenbulusi1 小时前
helm推送到harbor私有库--http: server gave HTTP response to HTTPS client
云原生·容器·k8s
不会飞的小龙人2 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人2 小时前
Docker基础安装与使用
linux·运维·docker·容器
Dusk_橙子2 小时前
在elasticsearch中,document数据的写入流程如何?
大数据·elasticsearch·搜索引擎
喝醉酒的小白5 小时前
Elasticsearch 中,分片(Shards)数量上限?副本的数量?
大数据·elasticsearch·jenkins
熟透的蜗牛7 小时前
Elasticsearch 8.17.1 JAVA工具类
elasticsearch
元气满满的热码式7 小时前
K8S中Service详解(三)
云原生·容器·kubernetes
染诗7 小时前
docker部署flask项目后,请求时总是报拒绝连接错误
docker·容器·flask
张3蜂9 小时前
docker 部署.netcore应用优势在什么地方?
docker·容器·.netcore
九圣残炎11 小时前
【ElasticSearch】 Java API Client 7.17文档
java·elasticsearch·搜索引擎