kong更改日志格式
基于业务的需求,需要对网关层的日志进行适当定制,以满足使用kibana的制图。
对于kong的日志格式更改,可查看到的资料都过于繁琐,特此记录。
修改kong的日志格式
 #  ctl edit deployment ingress-kong -n kong
 ...
 spec:
      containers:
      - env:
        - name: KONG_PLUGINS
          value: forward-auth-request,prometheus
        - name: KONG_LUA_PACKAGE_PATH
          value: /opt/?.lua;;
        - name: KONG_PROXY_LISTEN
          value: 0.0.0.0:8000, 0.0.0.0:8443 ssl http2
        - name: KONG_ADMIN_LISTEN
          value: 127.0.0.1:8444 ssl
        - name: KONG_STATUS_LISTEN
          value: 0.0.0.0:8100
        - name: KONG_DATABASE
          value: "off"
        - name: KONG_NGINX_WORKER_PROCESSES
          value: "1"
        - name: KONG_ADMIN_ACCESS_LOG
          value: /dev/stdout custom_fmt
        - name: KONG_ADMIN_ERROR_LOG
          value: /dev/stderr
        - name: KONG_PROXY_ACCESS_LOG
          value: /dev/stdout custom_fmt
        - name: KONG_PROXY_ERROR_LOG
          value: /dev/stderr
        - name: KONG_NGINX_HTTP_LOG_FORMAT
          value: custom_fmt '$remote_addr - $remote_user [$time_local] "$request"
            $status "$upstream_status" $body_bytes_sent "$http_referer" "$http_user_agent"
            "$request_time" "$upstream_response_time"'
 ...
查看日志格式
1xx.xxx.xxx.xx - - [26/Jan/2021:08:14:59 +0000] "PUT /api/xxxx/xxs/xxxx38a458 HTTP/2.0" 200 "200" 133 "https://www.baidu.com/xx/exxxor/e11xxxxxxxxxx47c/?lang=zh" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" "0.072" "0.068"
kong 获取客户端真实ip
# ctl edit svc kong-proxy -n kong
...
spec:
  ...
  externalTrafficPolicy: Local
  ...
logstash 解析kong日志格式
filter {   # kong的单独索引
      if [type] == "kong" {
        grok {
          match => {
            "message" => '(?<clientip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) - - \[(?<requesttime>[^ ]+ \+[0-9]+)\] "(?<requesttype>[A-Z]+) (?<requesturl>[^ ]+) HTTP/\d.\d" (?<status>[0-9]{3}) "(?<upstream_status>[0-9]+)" (?<body_bytes_sent>[0-9]+) "(?<http_referer>[^"]+)" "(?<http_user_agent>[^"]+)" "(?<request_time>[0-9]+\.[0-9]+)" "(?<upstream_response_time>[0-9]+\.[0-9]+)"'
          }
        }
        date {
          match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
          target => "@timestamp"
        }
        geoip {
          source => "clientip"
          target => ["geoip"]
          fi
        }
     }
 }
												
											kong更改日志格式的更多相关文章
- Nginx内置变量以及日志格式变量参数详解
		
$args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为 ...
 - binlog之四:mysql中binlog_format模式与配置详解,binlog的日志格式详解
		
mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复 ...
 - Nginx内置变量以及日志格式变量
		
$args #请求中的参数值$query_string #同 $args$arg_NAME #GET请求中NAME的值$is_args #如果请求中有参数,值为"?",否则为空字符 ...
 - log_format为Nginx设置日志格式
		
nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式, 另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,一般在nginx的配置文件中日记配置 ...
 - 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)
		
Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(一般在server段来配置)中设置,两种日志都可以选择性关闭,默认都是打开的. 访问日志access_log #日志格式设 ...
 - nignx日志格式
		
web-master的nginx格式: log_format web_format '$remote_addr $remote_port $remote_user [$time_local] ' '& ...
 - 场景2 nginx 错误日志格式:
		
nginx 错误日志格式: 2016/09/01 11:23:36 [error] 28388#0: *14549 open() "/var/www/zjzc-web-frontEnd/im ...
 - nginx日志格式
		
日志格式 log_format main '$remote_addr - $remote_user [$time_local] $request ' '" ...
 - rsyslog 日志格式和输出
		
日志格式: $EscapeControlCharactersOnReceive off #关闭rsyslog默认转译ASCII<32的所有怪异字符,包括换行符等 $template nginx- ...
 
随机推荐
- chroot vs docker
			
chroot vs docker chroot Linux A chroot on Unix operating systems is an operation that changes the ap ...
 - cache-control config & http cache storage location control
			
cache-control config & http cache storage location control cache-control 设置 where is the storage ...
 - nasm 函数返回一个数组 x86
			
getArguments.asm: extern VirtualAlloc section .text global dllmain export getArguments dllmain: mov ...
 - TypeScript & Examples
			
TypeScript & Examples http://www.typescriptlang.org/samples/index.html https://github.com/Micros ...
 - c++ 获取和设置 窗口标题
			
有些窗口标题中含有中文,可能识别不出来,可以改一下 SetWindowTextW GetWindowTextW 设置: SetWindowTextW( (HWND)0x00370868/*窗口句柄*/ ...
 - 疯狂的String
			
本文转载自疯狂的String 导语 在java中字符串是我们比较常用的一个类型,字符串是不可变的,类被声明为final , 存储字符的char[] value数据也被声明为final ,我们对Stri ...
 - WPF权限控制框架——【4】抛砖引玉
			
写第一篇"权限控制框架"系列博客是在2021-01-29,在这不到一个月的时间里,收集自己零碎的时间,竟然写出了一个"麻雀虽小,五脏俱全"的权限控制框架:对于一 ...
 - Java基础语法:abstract修饰符
			
一.简介 描述: 'abstract'修饰符可以用来修饰方法,也可以修饰类. 如果修饰方法,那么该方法就是抽象方法:如果修饰类,那么该类就是抽象类. 抽象类和抽象方法起到一个框架作用,方便后期扩展的重 ...
 - 你们一般都是怎么进行SQL调优的?MySQL在执行时是如何选择索引的?
			
前言 过年回来的第二周了,终于有时间继续总结知识了.这次来看一下SQL调优的知识,这类问题基本上面试的时候都会被问到,无论你的岗位是后端,运维,测试等等. 像本文标题中的两个问题,就是我在实际面试过程 ...
 - 翻译:《实用的Python编程》03_03_Error_checking
			
目录 | 上一节 (3.2 深入函数) | 下一节 (3.4 模块) 3.3 错误检查 虽然前面已经介绍了异常,但本节补充一些有关错误检查和异常处理的其它细节. 程序是如何运行失败的 Python 不 ...