前言

1、Ingress Nginx 默认访问日志都输出到 /var/log/nginx/access.log 文件中,但是对于生产环境来说,不可能把所有日志都输到一个日志文件中,一般情况都是根据域名分别输出到各个文件中。

2、Ingress Nginx 修改默认日志输出字段,可以输出为json格式 和 普通日志格式。

根据域名设置访问日志输出

$ vim test-example-com.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:name: demo-ingressnamespace: defaultannotations:nginx.ingress.kubernetes.io/enable-access-log: "true"nginx.ingress.kubernetes.io/configuration-snippet: |access_log /var/log/nginx/test.example.com.access.log upstreaminfo if=$loggable;error_log  /var/log/nginx/test.example.com.error.log;
spec:rules:- host: test.example.comhttp:paths:- backend:serviceName: demoservicePort: 8080
# 部署
$ kubectl apply -f test-example-com.yaml

设置输出为json格式 和 普通日志格式

修改 mandatory.yaml 部署文件 nginx-configuration ConfigMap 配置中 log-format-upstream 字段,具体修改如下:

1、普通访问日志格式

kind: ConfigMap
apiVersion: v1
metadata:name: nginx-configurationnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx
data:client-header-buffer-size: "512k"large-client-header-buffers: "4 512k"client-body-buffer-size: "128k"proxy-buffer-size: "256k"client-body-buffer-size: "128k"proxy-body-size: "50m"server-name-hash-bucket-size: "128"map-hash-bucket-size: "128"ssl-ciphers: "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"ssl-protocols: "TLSv1 TLSv1.1 TLSv1.2"log-format-upstream: '[$the_real_ip] - $remote_user [$time_local] "$request" $status $body_bytes_sent $request_time "$http_referer" $host DIRECT/$upstream_addr $upstream_http_content_type "$http_user_agent" "$http_x_forwarded_for" $request_length [$proxy_upstream_name] $upstream_response_length $upstream_response_time $upstream_status $req_id'

2、json 访问日志格式

kind: ConfigMap
apiVersion: v1
metadata:name: nginx-configurationnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx
data:client-header-buffer-size: "512k"large-client-header-buffers: "4 512k"client-body-buffer-size: "128k"proxy-buffer-size: "256k"client-body-buffer-size: "128k"proxy-body-size: "50m"server-name-hash-bucket-size: "128"map-hash-bucket-size: "128"ssl-ciphers: "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"ssl-protocols: "TLSv1 TLSv1.1 TLSv1.2"log-format-upstream: '{"time": "$time_iso8601", "remote_addr": "$proxy_protocol_addr", "x-forward-for": "$proxy_add_x_forwarded_for", "request_id": "$req_id", "remote_user": "$remote_user", "bytes_sent": $bytes_sent, "request_time": $request_time, "status":$status, "vhost": "$host", "request_proto": "$server_protocol", "path": "$uri", "request_query": "$args", "request_length": $request_length, "duration": $request_time,"method": "$request_method", "http_referrer": "$http_referer", "http_user_agent": "$http_user_agent"}'
# 部署
$ kubectl apply -f mandatory.yaml

参考链接

  • https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md

  • https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md

往期精彩文章

  • Ingress Nginx 故障排除

  • Nginx Ingress Controller 工作原理

  • 图文了解 Kubernetes

  • 高可用 Prometheus:问题集锦

  • K8S 滚动更新如何优雅停止 Pod

  • Kubernetes Node资源预留

您的关注是小站的动力

欢迎大家关注交流,定期分享自动化运维、DevOps、Kubernetes、Service Mesh和Cloud Native

扫码『加群』交流技术

Ingress Nginx 日志配置相关推荐

  1. 九爷带你了解 nginx 日志配置指令详解

    nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...

  2. Nginx 日志配置实践

    前言 Nginx日志对于统计.系统服务排错很有用. Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志).通过访问日志我们可以得到用户的IP地址.浏览器的信息, ...

  3. Nginx日志配置、错误界面配置、流量控制 第九天

    目录 nginx日志配置 nginx日志介绍 access.log error.log open_log_file_cache rewrite.log nginx的日志轮转 nginx错误界面配置 n ...

  4. Nginx 日志配置

    1.Nginx 日志介绍 Nginx 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块 ngx_http_log_module 的支持,日志格式通过 log_for ...

  5. Nginx 日志配置、日志切割

    Nginx 日志配置.日志切割 设置 access.log 语法 log_format自定义格式 设置error_log 语法 日志切割 前置文章:Nginx 的配置文件 nginx.conf Ngi ...

  6. 渗透测试技术分享——nginx日志配置

    Nginx 日志配置 0x00 前言 日志使用用来进行数据统计.问题排错的重要手段.本文主要介绍 nginx 日志相关的配置如 access_log.log_format.log_not_found. ...

  7. 【Nginx 日志配置】【访问日志log_format】【错误日志error_log 指令】【Nginx的日志轮转】

    文章目录 Nginx 日志配置 `log_format` 指令中常用的一些变量: 访问日志 案例 可以配置段:`http`, `stream`, `server`, `location`作用域. er ...

  8. 运维配置:Nginx日志配置详解

    Nginx日志配置详解 前言 Nginx日志对于统计.系统服务排错很有用.Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志).通过访问日志我们可以得到用户的I ...

  9. log nginx 客户端请求大小_后端实践:Nginx日志配置(超详细)

    前言 设置access_log语法 作用域 基本用法 使用log_format自定义日志格式语法 设置error_log语法 基本用法 open_log_file_cache语法 基本用法 总结 前言 ...

最新文章

  1. 【专家观点】刘经南院士:北斗+5G为何能引领新基建?
  2. CSS实例:图片导航块
  3. 【AT987】高橋君【组合数】【莫队】
  4. 2018蓝桥杯省赛---java---A---7(三体攻击)
  5. 读取Mc1000的 唯一 ID 机器号
  6. Spring --getBean用法
  7. sdio接口_单片机基础 —— 使用SDMMC接口读写SD卡数据
  8. i=i+1,i+=1与i++的区别
  9. java word转图片tiff_Word 2010中将文档保存为TIFF图片的方法
  10. 05NumPy--5.1多维数组
  11. 产品要想跑得赢,政策定价来帮您
  12. 【基础处理】基于matlab GUI语音信号播放【含Matlab源码 946期】
  13. spss软件测试题题库,spss期末考试试题及答案
  14. 人脸识别像素最低_一种低分辨率图像的人脸识别方法与流程
  15. kubectl describe pod 里边没有看到events问题解决【详细步骤】
  16. Windows 本地账户
  17. win32com处理excel数据透视表格式
  18. 亿图图示----组织架构图----市场组织架构和公司架构图及家庭架构图
  19. ixgbe网卡驱动 Ⅳ----收发包流程详解
  20. 微信公众平台Js API WeixinApi

热门文章

  1. 嵌入式分享合集146
  2. 纯干货版阿里巴巴国际站入门攻略
  3. [Python错误]NameError: name ‘name’ is not defined
  4. python中静态变量和静态方法_python类和函数中使用静态变量的方法
  5. gRPC 的 SSL/TLS 加密认证
  6. windows server 2016 配置DHCP
  7. 瑞萨e2studio(19)----RTC时钟日历闹钟周期性中断
  8. Niagara内容示例 2.6 Collision
  9. java T方法_JAVA 泛型方法T
  10. BUUCTF Reverse(helloworld)