k8s ingress 日志持久化和日志切割脚本

这篇具有很好参考价值的文章主要介绍了k8s ingress 日志持久化和日志切割脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ingress 日志落盘

mkdir /data/space/logs/ingress/ -p

# 在这里需要注意的是得跟自己nginx-ingress里的用户一样否则没有权限,因为linux 用户是判断userid的所以跟容器里的user id 一致就好了
chown -R 101.101 /data/space/logs/ingress/

# 编辑 ingress controller的deployment
kubectl -n ingress-nginx edit deploy ingress-nginx-controller的deployment
#修改一下nginx-ingress启动选项
# 设置controller日志的输出路径和方式 
# - --log_dir=/var/log/nginx/
# - --logtostderr=false

# 修改ingress configmap
kubectl -n ingress-nginx  edit configmap ingress-nginx-controller
configmap 增加access-log-path error-log-path 路径

如果要修改日志格式 把这个参数加入到data 选项下面
log-format-upstream: "[$host] [$remote_addr] [$http_x_forwarded_for]
    [$remote_user] [$time_local] [$request] [$status] [$body_bytes_sent]
    [$request_time] [$upstream_addr] [$upstream_response_time] [$connection]
    [$connection_requests] [$msec] [$uri] [$body_bytes_sent] [$http_referer]
    [$http_user_agent] [$request_length] [$http_session_id]"
apiVersion: v1
data:
  access-log-path: /var/log/nginx/ingress/access.log
  allow-snippet-annotations: "true"
  error-log-path: /var/log/nginx/ingress/error.log
  use-gzip: "true"
  worker-processes: "4"
kind: ConfigMap
metadata:
  creationTimestamp: "2022-01-21T15:39:54Z"
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/version: 1.1.1
    helm.sh/chart: ingress-nginx-4.0.15
  name: ingress-nginx-controller
  namespace: ingress-nginx
  resourceVersion: "126997189"
  uid: dc8b13e2-e9e9-43e8-9214-b92bd29d63b2

挂载日志目录

volumeMounts:
        - mountPath: /var/log/nginx/ingress
          name: logs


volumes:
      - hostPath:
          path: /data/space/logs/ingress
          type: ""
        name: logs

重启pod 生效文章来源地址https://www.toymoban.com/news/detail-503865.html

ingress 日志切割脚本

#!/bin/bash
NAMESPACE=ingress-nginx
POD_NAME=$(kubectl --kubeconfig=/etc/kubernetes/admin.conf  get pods -n $NAMESPACE | grep ingress-nginx-controller | awk '{print $1}')

# Set the log file paths
ACCESS_LOG=/data/space/logs/ingress/access.log
DATETIME=$(date +%Y-%m-%d-%H-%M-%S)
ACCESS_LOG_BACKUP=/data/space/logs/ingress/access.log.$DATETIME
ERROR_LOG=/data/space/logs/ingress/error.log
ERROR_LOG_BACKUP=/data/space/logs/ingress/error.log.$DATETIME

# Backup and compress the current access and error log files
if [ -f "$ACCESS_LOG" ]; then
    mv $ACCESS_LOG $ACCESS_LOG_BACKUP
    gzip $ACCESS_LOG_BACKUP
    echo "Created backup of access log: $ACCESS_LOG_BACKUP"
fi

if [ -f "$ERROR_LOG" ]; then
    mv $ERROR_LOG $ERROR_LOG_BACKUP
    gzip "$ERROR_LOG_BACKUP"
    echo "Created backup of error log: $ERROR_LOG_BACKUP"
fi

# Reopen the log files using NGINX's reopen signal
kubectl --kubeconfig=/etc/kubernetes/admin.conf -n $NAMESPACE exec -it $POD_NAME -- /sbin/nginx -s reopen

echo "NGINX log files have been rotated."

到了这里,关于k8s ingress 日志持久化和日志切割脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【k8s存储--使用OpenEBS做持久化存储】

    使用OpenEBS,你可以将有持久化数据的容器,像对待其他普通容器一样来对待。OpenEBS本身也是通过容器来部署的,支持Kubernetes、Swarm、Mesos、Rancher编排调度,存储服务可以分派给每个pod、应用程序、集群或者容器级别,包括: 跨节点的数据持久化 跨可用区和云厂商的数据同步

    2024年04月23日
    浏览(25)
  • Kubernetes基础(二十三)-k8s持久化存储详解

    1.1 介绍 在容器中的磁盘文件是短暂的,当容器崩溃时,Kubelet会重新启动容器,但容器运行时产生的数据文件都将会丢失,之后容器会以最干净的状态启动。另外,当一个Pod运行多个容器时,各个容器可能需要共享一些文件,诸如此类的需求都可以使用Volume解决。Pod只需要通

    2024年03月17日
    浏览(37)
  • k8s 部署 skywalking 并持久化到es

    skywalking集群情况下需要保证用同一数据源,这里我们存储方式改为es https://skywalking.apache.org/downloads/#Agents 2.2.1 创建项目server-order 并创建web控制层 2.2.2 创建项目web-monitor 并创建feign和monitor的控制层 2.2.3 增加环境变量 2.2.3 查看skywalking-ui链路 2.3.1 构建镜像 2.3.2 创建k8s无状态服

    2024年02月02日
    浏览(29)
  • 持续集成部署-k8s-数据持久化-基本存储方式

    关于k8s 数据持久化,可以先看下官方的介绍:

    2024年02月13日
    浏览(57)
  • 如何借助Kafka持久化存储K8S事件数据?

    大家应该对 Kubernetes Events 并不陌生,特别是当你使用 kubectl describe 命令或 Event API 资源来了解集群中的故障时。     尽管这些信息十分有用,但它只是临时的,保留时间最长为30天。如果出于审计或是故障诊断等目的,你可能想要把这些信息保留得更久,比如保存在像 Kafka

    2024年02月05日
    浏览(38)
  • 持续集成部署-k8s-数据持久化-高级存储方式

    持久卷(PersistentVolume,PV) 是集群中的一块存储,可以由管理员事先制备, 或者使用

    2024年02月16日
    浏览(32)
  • DevOps工具:k8s数据共享与持久化-nfs

    可伸缩 :可利用k8s集群的资源执行自动化任务。 可追溯 :通过将构建产物和相关数据持久化,可以确保每个构建版本的可追溯性,有利于快速排查和解决问题,同时可回滚到之前得版本。而CI、CD和测试各阶段都可能产生文件(不适合存储数据库),因此需要持久化。 数据

    2024年03月25日
    浏览(34)
  • k8s篇-应用持久化存储(PV和PVC)

    一般来说,容器一旦被删除后,容器运行时内部产生的所有文件数据也会被清理掉,因此,Docker提供了 Volume 这种方式来将数据持久化存储。 可以说,Volume 是Pod与外部存储设备进行数据传递的通道,也是Pod内部容器间、Pod与Pod间、Pod与外部环境进行数据共享的方式。 实际上

    2023年04月08日
    浏览(33)
  • 第18关 K8s数据安全无忧——持久化存储详解

    ------ 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维,本期课程将深入解析Kubernetes的持久化存储机制,包括PV、PVC、StorageClass等的工作原理、使用场景、最佳实践等,帮您构建稳定可靠的状态存储,确保应用和数据 100% 安全。 Volume 我们这里先来聊聊K8s的存储模型V

    2024年02月05日
    浏览(33)
  • K8S持久化存储--- PVC和PV的存储

    PersistentVolume ( PV )是群集中的一块存储,由管理员配置或使用存储类动态配置。 它是集群中的资源,就像 pod 是 k8s 集群资源一样。 PV是容量插件,如 Volumes ,其生命周期独立于使用 PV 的任何单个 pod 。 PersistentVolumeClaim ( PVC )是一个持久化存储卷,我们在创建 pod 时可以

    2023年04月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包