如何修改ingress-nginx-controller中access.log和error.log的路径?


ingress-nginx-controller中的配置是通过什么方式来设置的呢?

 

没有! configmap.

 

那要修改access.log和error.log日志的路径,该如何设置?下面一起看下。

 

1、首先,查看当前ingress-nginx-controller中的日志配置

 

bash-5.1$ cat nginx.conf | grep access_log

access_log /var/log/nginx/access.log upstreaminfo if=$loggable;

access_log off;

access_log off;

access_log off;

access_log off;

access_log off;

access_log /var/log/nginx/access.log log_stream ;

access_log off;

bash-5.1$ cat nginx.conf | grep error_log

error_log /var/log/nginx/error.log notice;

error_log /var/log/nginx/error.log notice;

bash-5.1$

 

2、修改configmap

 

kubectl edit configmap -n ingress-nginx ingress-nginx-controller

 

增加如下的配置:

 

  access-log-path: /var/log/nginx/nginx_access.log
  error-log-path: /var/log/nginx/nginx_error.log

 

 

保存配置!

 

3、重启ingress-nginx-controller pod.

 

kubectl delete pod -n ingress-nginx ingress-nginx-controller-z6bh

 

重启成功

[root@nccztsjb-node-23 ~]# kubectl get pod -n ingress-nginx
NAME                             READY   STATUS    RESTARTS   AGE
ingress-nginx-controller-9zlgs   1/1     Running   0          21s
[root@nccztsjb-node-23 ~]# 

 

4、验证配置

 

[root@nccztsjb-node-23 ~]# kubectl exec -it -n ingress-nginx ingress-nginx-controller-9zlgs -- bash

bash-5.1$ cat nginx.conf | grep access_log

access_log /var/log/nginx/nginx_access.log upstreaminfo if=$loggable;

access_log off;

access_log off;

access_log off;

access_log off;

access_log off;

access_log /var/log/nginx/nginx_access.log log_stream ;

access_log off;

bash-5.1$ cat nginx.conf | grep error_log

error_log /var/log/nginx/nginx_error.log notice;

error_log /var/log/nginx/nginx_error.log notice;

bash-5.1$

 

名字修改成功!

 

5、注意!

 

修改之前,必须保证在镜像中存在对应的目录。否则,爆粗如下:

 

6、所有ingress-nginx-controller需要的configmap条目

 

参考如下的链接:

 

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

 

name

type

default

add-headers

string

""

allow-backend-server-header

bool

"false"

allow-snippet-annotations

bool

true

annotation-value-word-blocklist

string array

""

hide-headers

string array

empty

access-log-params

string

""

access-log-path

string

"/var/log/nginx/access.log"

http-access-log-path

string

""

stream-access-log-path

string

""

enable-access-log-for-default-backend

bool

"false"

error-log-path

string

"/var/log/nginx/error.log"

enable-modsecurity

bool

"false"

modsecurity-snippet

string

""

enable-owasp-modsecurity-crs

bool

"false"

client-header-buffer-size

string

"1k"

client-header-timeout

int

60

client-body-buffer-size

string

"8k"

client-body-timeout

int

60

disable-access-log

bool

false

disable-ipv6

bool

false

disable-ipv6-dns

bool

false

enable-underscores-in-headers

bool

false

enable-ocsp

bool

false

ignore-invalid-headers

bool

true

retry-non-idempotent

bool

"false"

error-log-level

string

"notice"

http2-max-field-size

string

"4k"

http2-max-header-size

string

"16k"

http2-max-requests

int

1000

http2-max-concurrent-streams

int

128

hsts

bool

"true"

hsts-include-subdomains

bool

"true"

hsts-max-age

string

"15724800"

hsts-preload

bool

"false"

keep-alive

int

75

keep-alive-requests

int

100

large-client-header-buffers

string

"4 8k"

log-format-escape-none

bool

"false"

log-format-escape-json

bool

"false"

log-format-upstream

string

$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id

log-format-stream

string

[$remote_addr] [$time_local] $protocol $status $bytes_sent $bytes_received $session_time

enable-multi-accept

bool

"true"

max-worker-connections

int

16384

max-worker-open-files

int

0

map-hash-bucket-size

int

64

nginx-status-ipv4-whitelist

[]string

"127.0.0.1"

nginx-status-ipv6-whitelist

[]string

"::1"

proxy-real-ip-cidr

[]string

"0.0.0.0/0"

proxy-set-headers

string

""

server-name-hash-max-size

int

1024

server-name-hash-bucket-size

int

<size of the processor’s cache line>

proxy-headers-hash-max-size

int

512

proxy-headers-hash-bucket-size

int

64

plugins

[]string

 

reuse-port

bool

"true"

server-tokens

bool

"false"

ssl-ciphers

string

"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"

ssl-ecdh-curve

string

"auto"

ssl-dh-param

string

""

ssl-protocols

string

"TLSv1.2 TLSv1.3"

ssl-session-cache

bool

"true"

ssl-session-cache-size

string

"10m"

ssl-session-tickets

bool

"false"

ssl-session-ticket-key

string

<Randomly Generated>

ssl-session-timeout

string

"10m"

ssl-buffer-size

string

"4k"

use-proxy-protocol

bool

"false"

proxy-protocol-header-timeout

string

"5s"

use-gzip

bool

"false"

use-geoip

bool

"true"

use-geoip2

bool

"false"

enable-brotli

bool

"false"

brotli-level

int

4

brotli-min-length

int

20

brotli-types

string

"application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component"

use-http2

bool

"true"

gzip-level

int

1

gzip-types

string

"application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component"

worker-processes

string

<Number of CPUs>

worker-cpu-affinity

string

""

worker-shutdown-timeout

string

"240s"

load-balance

string

"round_robin"

variables-hash-bucket-size

int

128

variables-hash-max-size

int

2048

upstream-keepalive-connections

int

320

upstream-keepalive-time

string

"1h"

upstream-keepalive-timeout

int

60

upstream-keepalive-requests

int

10000

limit-conn-zone-variable

string

"$binary_remote_addr"

proxy-stream-timeout

string

"600s"

proxy-stream-next-upstream

bool

"true"

proxy-stream-next-upstream-timeout

string

"600s"

proxy-stream-next-upstream-tries

int

3

proxy-stream-responses

int

1

bind-address

[]string

""

use-forwarded-headers

bool

"false"

enable-real-ip

bool

"false"

forwarded-for-header

string

"X-Forwarded-For"

compute-full-forwarded-for

bool

"false"

proxy-add-original-uri-header

bool

"false"

generate-request-id

bool

"true"

enable-opentracing

bool

"false"

opentracing-operation-name

string

""

opentracing-location-operation-name

string

""

zipkin-collector-host

string

""

zipkin-collector-port

int

9411

zipkin-service-name

string

"nginx"

zipkin-sample-rate

float

1.0

jaeger-collector-host

string

""

jaeger-collector-port

int

6831

jaeger-endpoint

string

""

jaeger-service-name

string

"nginx"

jaeger-propagation-format

string

"jaeger"

jaeger-sampler-type

string

"const"

jaeger-sampler-param

string

"1"

jaeger-sampler-host

string

"http://127.0.0.1"

jaeger-sampler-port

int

5778

jaeger-trace-context-header-name

string

uber-trace-id

jaeger-debug-header

string

uber-debug-id

jaeger-baggage-header

string

jaeger-baggage

jaeger-trace-baggage-header-prefix

string

uberctx-

datadog-collector-host

string

""

datadog-collector-port

int

8126

datadog-service-name

string

"nginx"

datadog-environment

string

"prod"

datadog-operation-name-override

string

"nginx.handle"

datadog-priority-sampling

bool

"true"

datadog-sample-rate

float

1.0

main-snippet

string

""

http-snippet

string

""

server-snippet

string

""

stream-snippet

string

""

location-snippet

string

""

custom-http-errors

[]int

[]int{}

proxy-body-size

string

"1m"

proxy-connect-timeout

int

5

proxy-read-timeout

int

60

proxy-send-timeout

int

60

proxy-buffers-number

int

4

proxy-buffer-size

string

"4k"

proxy-cookie-path

string

"off"

proxy-cookie-domain

string

"off"

proxy-next-upstream

string

"error timeout"

proxy-next-upstream-timeout

int

0

proxy-next-upstream-tries

int

3

proxy-redirect-from

string

"off"

proxy-request-buffering

string

"on"

ssl-redirect

bool

"true"

force-ssl-redirect

bool

"false"

whitelist-source-range

[]string

[]string{}

skip-access-log-urls

[]string

[]string{}

limit-rate

int

0

limit-rate-after

int

0

lua-shared-dicts

string

""

http-redirect-code

int

308

proxy-buffering

string

"off"

limit-req-status-code

int

503

limit-conn-status-code

int

503

enable-syslog

bool

false

syslog-host

string

""

syslog-port

int

514

no-tls-redirect-locations

string

"/.well-known/acme-challenge"

global-auth-url

string

""

global-auth-method

string

""

global-auth-signin

string

""

global-auth-signin-redirect-param

string

"rd"

global-auth-response-headers

string

""

global-auth-request-redirect

string

""

global-auth-snippet

string

""

global-auth-cache-key

string

""

global-auth-cache-duration

string

"200 202 401 5m"

no-auth-locations

string

"/.well-known/acme-challenge"

block-cidrs

[]string

""

block-user-agents

[]string

""

block-referers

[]string

""

proxy-ssl-location-only

bool

"false"

default-type

string

"text/html"

global-rate-limit-memcached-host

string

""

global-rate-limit-memcached-port

int

11211

global-rate-limit-memcached-connect-timeout

int

50

global-rate-limit-memcached-max-idle-timeout

int

10000

global-rate-limit-memcached-pool-size

int

50

global-rate-limit-status-code

int

429

service-upstream

bool

"false"

ssl-reject-handshake

bool

"false"

debug-connections

[]string

"127.0.0.1,1.1.1.1/24"

 

—————————————————————————————————————————————

你好,

如果你的大部分工作是围绕k8s展开的,那么下面的内容对你来说非常的重要...

过去4年多的时间里,我的工作都是围绕k8s体系的搭建及运维展开的,结合项目(14个1500万以上的云原生项目)实践,

我整理了230个,k8s最常见(最关键、最重要)的问题。

当你彻底搞懂、掌握这些问题后,让几乎可以轻松解决k8s的所有问题。

同时,你的知识体系,k8s基本功,就可以轻松超过80%的k8s运维人员。

更重要的是,可以让你轻松进入大厂(因为我就是在大厂,我知道大厂更关注哪部分知识),拿到更加高的工资。

需要告诉你的是,掌握这些知识非常的简单,针对每个问题,我都给出项目的背景,关键知识点,问题的解决思路,最终效果和调整方案。

如果能够熟读这些项目情况、背景,架构设计,这些也可变成你自己的项目经历,轻松让你的领导和未来面试官惊喜和意外。

你只需每天拿出1个小时,2个月后,你就可以打下k8s的坚实的基本功,让你在云原生领域游刃有余,k8s的功力快速飞跃。

每个问题,都有对应的答案,以及相关的示例演示(有些还有项目背景说明)

只要,一步一步,跟着做,就可以了。

当然,如果你想要在更短的时间内,成为k8s高手,你只需要多练习几次,多在你的本地环境进行几次实验就可以了。

不过,和你自己从头摸索、研究相比,大大减少了你的学习时间,也大大提升了你的学习效力。

如果你知道20/80原理,你就会明白,这些都是工作中最常用,最有效的20%的问题(需要大量实践、总结之后,才能明白的20%)。

这个资料是第一次公开,为了了解市场上,有多少人在关注k8s的技术,我决定免费赠送这个问题指南,只当交个朋友。

添加微信:13240133388,备注:k8s。

我将送你一份免费的PDF报告。

你应该知道,一本k8s权威指南(800页,没几个人看得完),要179.90元,这些问题,是在反复阅读和实践了这本书之后,结合项目实践,得出来的精华。

想想看,这将节省你多少时间?而你得到是最精华的部分

相信你,掌握之后,立马让你的工作的效率大增,你的领导会对你的进步刮目相看,你会对未来的跳槽、涨薪更有信心。

想想看,当你拥有这本报告后,你就好像拿着一本武功秘籍,在技术的红海中,笑看风云,鹤立鸡群。

也像一位武林大师,一掌下去,几年的功力,瞬间就转移到了你的身上。

感觉怎么样?

PS. 行动是一切的开始,现在立马加我吧。期待你的蜕变。

 
posted @ 2022-10-20 14:55  Zhai_David  阅读(1818)  评论(0编辑  收藏  举报