filebeat+nginx 绘图时url不能模糊搜索的问题

filebeat+nginx 绘图时url不能模糊搜索的问题

  1.修改之前nginx 日志配置为

  这里$request_time和$upstream_response_time打上引号是因为,如果取不到这个值,这个值就位 - ,logstash会报错,所以就由字符串再转为float类型

log_format json ‘{"time": "$time_iso8601", ‘
                    ‘"remote_addr": "$remote_addr", ‘
                    ‘"transactionId": "$http_TraceId", ‘
                    ‘"referer": "$http_referer", ‘
                    ‘"website": "$http_host", ‘
                    ‘"uri": "$uri", ‘
                    ‘"status": $status, ‘
                    ‘"bytes": $body_bytes_sent, ‘
                    ‘"agent": "$http_user_agent", ‘
                    ‘"x_forwarded": "$http_x_forwarded_for", ‘
                    ‘"up_addr": "$upstream_addr", ‘
                    ‘"up_host": "$upstream_http_host", ‘
                    ‘"upstreamresponsetime": "$upstream_response_time", ‘
                    ‘"responsetime": "$request_time"‘
                    ‘}‘;

  logstash配置

[[email protected] logstash]# cat conf.d/nginx-output-kafka.conf
input {
       kafka {
         bootstrap_servers => "172.27.27.220:9092,172.27.27.221:9092,172.27.27.222:9092"
         topics => ["nginxlogs"]
         codec => "json"
	 type => "nginx-access"
       }
}

filter {
	if [type] == "nginx-access" {
		json {
			source => "message"
		}
	}

	mutate{
        convert => ["responsetime","float"]
        convert => ["upstreamresponsetime","float"]
        }

	geoip {
	source => "remote_addr"
	#database => "/opt/logstash-6.5.4/Geoip/GeoLite2-City_20191022/GeoLite2-City.mmdb"
	}
}

output {
	if [fields][type] =~ "nginxlogs" {
	elasticsearch {
	  hosts => [ "172.27.27.220:9200","172.27.27.221:9200","172.27.27.222:9200" ]
	  index => "logstash-nginxaccess-%{+YYYY.MM.dd}"
	  template_overwrite => true
	  user => "xxx"
	  password => "xxxx"
	  #document_type => "%{[type]}"
	}
	}
	#stdout { codec => rubydebug }

}

  查看uri的mapping类型为keyword,在绘图时不能模糊搜索

2、修改之后的配置

  nginx.conf

    log_format json ‘{"time": "$time_iso8601", ‘
                    ‘"remote_addr": "$remote_addr", ‘
                    ‘"transactionId": "$http_TraceId", ‘
                    ‘"referer": "$http_referer", ‘
                    ‘"website": "$http_host", ‘
                    ‘"request": "$request", ‘
                    ‘"status": $status, ‘
                    ‘"bytes": $body_bytes_sent, ‘
                    ‘"agent": "$http_user_agent", ‘
                    ‘"x_forwarded": "$http_x_forwarded_for", ‘
                    ‘"up_addr": "$upstream_addr", ‘
                    ‘"up_host": "$upstream_http_host", ‘
                    ‘"upstreamresponsetime": "$upstream_response_time", ‘
                    ‘"responsetime": "$request_time"‘
                    ‘}‘;

  logstash配置

[[email protected] logstash]# cat conf.d/nginx-output-kafka.conf
input {
       kafka {
         bootstrap_servers => "172.27.27.220:9092,172.27.27.221:9092,172.27.27.222:9092"
         topics => ["nginxlogs"]
         codec => "json"
	 type => "nginx-access"
       }
}

filter {
	if [type] == "nginx-access" {
		json {
			source => "message"
		}
	}

	mutate{
        convert => ["responsetime","float"]
        convert => ["upstreamresponsetime","float"]
        }

	mutate {
		add_field => { "request1" => "%{request}" }
	}

	grok {
		match => {"request1" => "(?:%{WORD:requestmethod} %{URIPATH:url}(?:%{URIPARAM:params})?(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})"}
		remove_field => ["request1"]
	}

	geoip {
		source => "remote_addr"
		#database => "/opt/logstash-6.5.4/Geoip/GeoLite2-City_20191022/GeoLite2-City.mmdb"
	}
}

output {
	if [fields][type] =~ "nginxlogs" {
	elasticsearch {
	  hosts => [ "172.27.27.220:9200","172.27.27.221:9200","172.27.27.222:9200" ]
	  index => "logstash-nginxaccess-%{+YYYY.MM.dd}"
	  template_overwrite => true
	  user => "xxx"
	  password => "xxxx"
	  #document_type => "%{[type]}"
	}
	}
	#stdout { codec => rubydebug }

}

  这样配置后,url的类型为text,这时候才可以模糊搜索。

原文地址:https://www.cnblogs.com/jcici/p/11955912.html

时间: 2024-10-30 15:56:28

filebeat+nginx 绘图时url不能模糊搜索的问题的相关文章

ELK+Filebeat+Nginx集中式日志解决方案(二)——添加ElasticSearch集群

一.使用说明: Elasticsearch插件:  Elasticsearch常用的几个插件为: # head # 地址  https://github.com/mobz/elasticsearch-head mobz/elasticsearch-head # kopf # 地址  https://github.com/lmenezes/elasticsearch-kopf lmenezes/elasticsearch-kopf # bigdesk # 地址 https://github.com

配置NGINX支持中文URL 中文文件名或目录404无法访问的解决方法

Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置.不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的.但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的.为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面. 我们把这

ELK + Filebeat +Nginx 集中式日志分析平台(一)

一.环境准备 本次我们采用 yum 官方仓库进行安装,之前采用 rpm 包安装的文档大家请看 http://blog.51cto.com/wzlinux/2175836 . 1.软件版本 Filebeat 6.5.1Logstash 6.5.1Elasticsearch 6.5.1Kibana 6.5.1JDK 1.8.0_181 2.服务器准备 IP 系统 角色 172.18.8.200 CentOS 7.5 Minimal Elasticsearch + Kibana 172.18.8.20

配置使用vim编辑Nginx配置文件时语法高亮

vim是Unix系统中非常实用的文本编辑器,它和传统的vi相比最大的区别在于它所支持的配色方案,这个功能使得平时编辑一些配置文件或者是在写代码的时候极大的提高工作效率,如果我们在系统中有安装vim相应的包且开启了syntax配色方案的时候会不显示语法高亮往往是配置设置错误所引起的.一般配置错误有2个地方:1.是远程服务器的仿真客户终端配置错误:2.是服务器上环境变量配置错误.在这里就用SecureCRT仿真客户终端为例子简单的说一下vim开启syntax配色方案: 在SecureCRT上需要配置

Skia往SkBitmap上绘图时画不出来的问题

使用SkBitmap作为SkCanvas后端绘图时画不出来的问题 用默认条件在采用了Intel Pentium CPU的PC上编译Skia(参见Windows下从源码编译Skia)后,采用SkBitmap作为SkCanvas的后端来绘图时,遇到了奇怪问题:"无论画什么,跟没画一个样". 代码如下: SkImageInfo ii = SkImageInfo::Make(480, 320, kRGBA_8888_SkColorType, kPremul_SkAlphaType); bitm

154在屏幕中绘图时设置透明度(扩展知识:为图片视图添加点击手势识别器,来实现点击事件操作)

一张图片,通过混合模式绘制后,能得到不同效果的图片. 这里的示例仅是测试效果:实际上可以通过不同程度的混合模式绘制,来得到符合需求的效果. 效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UIViewController 4 @property (strong, nonatomic) UIImageView *imgVBlend; 5 @property (strong, nona

使用Curl进行抓取远程内容时url中文编码问题 转载

PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义.下面是详细解释: string urlencode( string str) 返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+). 例子 1 :urlencode函数与

CAD绘图时,ID坐标查询功能

我们在日常的CAD绘图设计过程中,常常会用到CAD查询功能,其中查询坐标功能是一个特别常用的功能之一,我们要绘制出精准优质的CAD图纸,就必须要熟练地掌握好CAD绘图的各项功能,CADID坐标查询功能当然也必须要熟练地使用.小编今天就给大家分享一下如何使用ID坐标查询功能的具体方法.演示步骤如下: 步骤一:准备CAD图形素材 1.首先我们当然是先运行迅捷CAD编辑器专业版,然后打开一张我们需要的CAD素材图纸: 2.或是在CAD绘图区域里任意绘制一个图形作为素材,我们在这里绘制一个矩形为例. 步

CAD绘图时如何查询ID坐标呢?

CAD绘图时如何查询ID坐标呢?我们在日常的CAD绘图设计过程中,常常会用到CAD查询功能,其中查询坐标功能是一个特别常用的功能之一,我们要绘制出精准优质的CAD图纸,就必须要熟练地掌握好CAD绘图的各项功能,ID坐标查询功能当然也必须要熟练地使用.小编今天就给大家分享一下.具体演示步骤如下: 步骤一:准备CAD图形素材 1.首先我们当然是先运行迅捷CAD编辑器专业版,然后打开一张我们需要的CAD素材图纸: 2.或是在CAD绘图区域里任意绘制一个图形作为素材,我们在这里绘制一个矩形为例. 步骤二