
elk
QYHuiiQ
谁动了我的代码
展开
-
elasticsearch笔记
参考书籍:《Elasticsearch技术解析与实战》分片一旦建立,则分片的数量不能修改。 一个索引可以存储很大的数据,可以超过一台机器的存储限制,因为一个索引可以分为多个分片分布在多个机器上。 存储一个文档时,具体存储在哪个分片上,是由散列值来决定的。默认情况下,散列值是由文档的ID生成的,文档的ID可以在存储时自己指定,也可以自动生成。 Lucene对倒排索引的实现是通过将下图中的三列分别作为词典文件、频率文件、位置文件进行保存的。...原创 2022-02-21 20:29:31 · 780 阅读 · 0 评论 -
如何设置kibana特定的用户能查看特定的dashboard
1.在kibana-management-security-roles中创建role:1.1填写role name.1.2选择该用户只能看到的index,权限选择read1.3kibana中的权限选择none.2.创建user:2.1填写username2.2填写full name2.3选择role:kibana_dashboard_only_user以及刚才创建的role。这样使用该用户登录kibana时左侧导航栏就只能看到dashboard,且不可看到编辑按钮,且只可看到原创 2020-07-05 17:52:08 · 1951 阅读 · 0 评论 -
给elasticsearch设置密码
1.在elasticsearch.yml中添加如下配置:xpack.security.enabled: truexpack.license.self_generated.type: basicxpack.security.transprt.ssl.enabled: true修改完配置之后重启elasticsearch。2.执行如下命令:bin/elasticsearch-setup-passwords interactive依次设置密码。3.在kibana.yml中添加配置:原创 2020-07-05 17:41:23 · 7374 阅读 · 3 评论 -
kibana dashboard如何设置dashboard只读
有的时候我们想对特定的dashboard进行分享,但是又担心浏览者会对dashboard进行修改或删除,所以可以新建一个user对其赋予只读权限:kibana-management-security-users-create new user输入相应的信息,然后赋予它下面这几个role:kibana_dashboard_only_userkibana_read_onlyreadonly如果不加第三个role,只能进到界面中,看不到图。这样在用此用户账号登陆时kibana左边的导航栏里就是原创 2020-06-23 17:46:24 · 2009 阅读 · 0 评论 -
elasticsearch reindex步骤
1.从old-cluster中查出template,然后在new-cluster中导入template:curl -X PUT "http://new-ip:9200/_template/template_name" -H "Content-Type: application/json" -d 'template内容'2.创建index:curl -X PUT "http://new-ip:9200/index_name"3.按照官方指导将refresh_interval设置为-1,nu原创 2020-06-22 16:54:43 · 3275 阅读 · 0 评论 -
kibana如何集成多个dashboard
1.新建一个visaulization,类型为Markdown.2.在编辑框中编辑如下示例:###Title1[link显示的文本](#/dashboard/dashboard_id)[link2显示的文本](#/dashboard/dashboard2_id)。。。。可以在同一个title下添加多个dashboard link.也可以再写一个不同title下的dashboard:###Title2注:此处Title,link,dashboard_id根据自己的场景改变,原创 2020-06-22 16:37:02 · 814 阅读 · 0 评论 -
kibana 如何自定义dashboard id
进入kibana-management-saved objects界面中,在搜索框右侧选择dashboard,会显示下图:type:(dashboard)然后在搜索框中显示的文本后面按一个空格之后输入自己要修改的dashboard名称:type:(dashboard) Test Dashboard搜索出来之后选中dashboard name前面的复选框,然后点击搜索框最右侧的export按钮,打开export出来的export.json。修改json文件中的id,改为自定义的id,保原创 2020-06-22 16:14:18 · 1294 阅读 · 0 评论 -
Received an event that has a different character encoding than you configured
在使用logstash解析某log文件时,由于文件中出现了非正常编码的字符,导致启动logstash在解析到某条数据时会报错:Received an event that has a different character encoding than you configured.解决方案就是在input中添加如下配置:codec => plain {charset=>"US-ASCII"}...原创 2020-06-06 15:56:44 · 3825 阅读 · 1 评论 -
This member will leave the group because consumer poll timeout has expired.
在使用logstash读取kafka中的数据时过一段时间之后logstash会报出leave group的错误,此后数据不再读入。怀疑是由于kafka每次poll的量太大或者poll的间隔太小,导致上一次度的数据还没有消费完,就又要去poll,但实际上此时无法继续去拉取新数据,这样如果时间久了,可能就会认为consumer停止了通信,从而被驱除group。根据自己的应用场景数据量对input中的如下三个配置项做出了测试后的调整:max_poll_interval_ms=>"60000"ma原创 2020-06-06 15:47:39 · 4815 阅读 · 0 评论 -
elasticsearch watcher action email发送表格类型的邮件
有时候我们想对es query出来的数据在action发送邮件时以表格的形式发送,可以参考下面的方法:"action": { "test_send_email": { //action name "email": { //action type "to": [ "abc@xxxx.com",...原创 2020-04-24 17:14:06 · 1554 阅读 · 0 评论 -
elasticsearch query中如何查询从当天零时起到现在的数据(00:00)
在es query时,有时我们想查询当天零时起到现在的数据,表达方式如下:{ "range": { "timestamp": { "gte": "now/d", //表示当天的开始 "lt": "now" } }}...原创 2020-04-24 16:59:33 · 5426 阅读 · 1 评论 -
elasticsearch watcher中时区转换问题,并对日期进行格式化
由于在elasticsearch中保存的是UTC时区,如果我们想要对时区进行转换,可以在transform中用script的方式操作:"transform": { "script": { "source": "def docs=[];for(item in ctx.payload.hits.hits) {def document = ['field1': item._...原创 2020-04-24 16:52:47 · 1543 阅读 · 0 评论 -
logstash处理input数据中message同级的 host,@timestamp字段
https://blog.youkuaiyun.com/smile_lty/article/details/79931775原创 2020-03-30 18:35:41 · 997 阅读 · 0 评论 -
logstash 将两个字段合并为一个字段的方法
https://blog.youkuaiyun.com/u011870280/article/details/80019976原创 2020-03-12 15:19:33 · 4523 阅读 · 0 评论 -
logstash date插件匹配星期几用E匹配
[Tue Feb 13 2020 15:23:46]EEE MMM dd yyyy HH:mm:ss原创 2020-03-11 19:40:46 · 409 阅读 · 0 评论 -
logstash date插件匹配毫秒值
13:24:34.546732像这样带有毫秒数的,这里使用SSSSSS来匹配原创 2020-03-11 19:38:21 · 1239 阅读 · 0 评论 -
logstash multiline插件想要使用pattern匹配多个指定字符串
如果是pattern想要匹配多个指定的字符串,只需要用|将每个字符串隔开:codec => multiline { pattern => "hangzhou|shanghai" //这样就可以匹配到hangzhou或者shanghai negate => true what => "previous"...原创 2020-03-11 18:14:59 · 1866 阅读 · 0 评论 -
使用logstash grok解析x-forwarder log
x-forwarder.log中的特点是:前面第一个ip是client,后面的ip都是proxy,proxy可以有多个。logstash conf:if "," in [message]{ grok{ match => { "message" => "%{IP:client}(?:, %{IP:proxy1}|)(?:, %...原创 2020-03-10 21:31:45 · 400 阅读 · 0 评论 -
logstash date插件设置日期格式正确,但是在elasticsearch中一直不是date类型
[19/Feb/2020:03:53:09 -0500]date{ match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] target => "@http_timestamp"}原创 2020-03-06 11:24:46 · 2167 阅读 · 0 评论 -
kibana中已存在的字段在avaliable中类型显示问号,无法在visualize中使用
kibana中在discover页面数据展示的左侧有一项是avaliable fileds,每个字段前面会有不同的标识,如t,?,时钟。。。。表示的含义参考:https://blog.youkuaiyun.com/yy4545/article/details/99936007如果字段左边是一个?,说明这个字段未做索引,需要在index pattern页面进行刷新。否则无法在visualize中使用...原创 2020-03-03 14:56:31 · 1108 阅读 · 0 评论 -
logstash解析apache log画visualize报错:pattern does not contain any of the following field types:geo_point
在使用logstash解析apache log时,在kibana的visualize中根据ip展示在地图上,logstash中使用grok插件解析apache log,并使用geoip匹配ip,但是在创建visualize时报如下错误,无法选中geo.location这个field。No Compatible Fields:The “xxxxx” index pattern does not...原创 2020-03-02 12:33:26 · 946 阅读 · 0 评论 -
elasticsearch curator安装及应用
参考链接:https://blog.youkuaiyun.com/zou79189747/article/details/80526221https://www.cnblogs.com/wynjauu/articles/9372659.htmlcurator与elasticsearch版本的兼容性列表:https://www.elastic.co/guide/en/elasticsearch/clie...原创 2020-02-20 16:40:04 · 1800 阅读 · 1 评论 -
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232
在启动elasticsearch时报如下错误,而之前启动的时候是成功的。Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=‘Cannot allocate memory‘ (errno=12)## There...原创 2020-02-07 20:10:08 · 3076 阅读 · 0 评论 -
elasticsearch watcher chain input截取字符串并引用参数
需求:在es的watcher中想使用chain input,第一个Input使用http input,然后对response中的数据进行部分截取作为第二个Input中的参数。官方提供的一种方法是在第一个input和第二个input中间加一个transform的script对数据进行处理再进入第二个input。但是这里我们想要分割字符串获取其中的某个值时,通常会使用split方法,但是在es的scr...原创 2020-01-07 21:39:53 · 2142 阅读 · 0 评论 -
logstash如何将output中index name中引用的日期时区改为EST
在使用Logstash中的output为elasticsearch时,有的时候我们会在index name中引用时间戳,如:index => "wyh_index_%{+YYYY.MM.dd}",但是elasticsearch中默认的时区是UTC的,在业务需求中想要显示成别的时区,在网上找到了一种转换时区的方式:input{ file{ path => "/usr/l...原创 2019-12-21 20:37:02 · 2675 阅读 · 0 评论 -
logstash中input为file时文件没有变化时读过一次就不再读了
在测试阶段时,会对同一个文件读很多次,但是发现有的时候好像logstash就跟没读文件似的,遇到这种情况,我们可以添加两个属性,这样每次读的时候就会重新读。start_position => "beginning" 、、表示文件从开头读取sincedb_path => "/dev/null" //这个属性指定的是读取文件的进度记录到哪个文件了。看到很多地方写的是/dev/...原创 2019-11-10 14:56:03 · 861 阅读 · 0 评论 -
logstash中multilline插件读取静态文件丢失最后一条数据
在使用multiline插件时发现总是读不到最后一条数据,且在停掉logstash时这条数据才会读出来。翻了帖子后发现应该添加auto_flush_interval => 1属性才行。input { file { path => ...... start_position => ...... sincedb_path =&g...原创 2019-11-10 14:46:25 · 1071 阅读 · 0 评论 -
logstash 中multiline合并数据为一条
在用logstash处理csv文件时,文件中有一行数据中有一个单元格内的数据是换行的,这样Logstash读取的时候会变成两行,也就是把原来完整的一行因为有值是换行的,所以就拆分成两条了,这种情况下我们需要将两条合并为一条。我所处理的文件中正常是每一行都是以数字id作为开头的,另外第一行数据是以逗号开头的,所以目前的处理方法是认为数字和逗号开头的换行是正常换行,其他的换行属于需要合并的。这时就...原创 2019-11-10 14:33:56 · 2196 阅读 · 0 评论 -
logstash csv filter中如何不让表头输出
在用logstash处理csv文件中,不想让表头信息也当作一条记录输出出去,那么如何把这条记录删除嘞,那就是选择一个表头列名,判断这个列的值是表头列名本身,那就说明是表头数据,然后把它drop掉即可:csv { //其他业务处理 .... //删除表头数据 if ([YOUR_COLUMN_NAME_A] == "YOUR_COLUMN_NAME_A") {//就是任意找一个...原创 2019-11-10 14:19:07 · 1023 阅读 · 0 评论 -
在使用elasticsearch的rest api查询index数据时默认返回10条
在使用elasticsearch的rest api查询index数据时hits.total显示的是28条,但是下面返回的每条记录具体信息只有10条,遇到这个问题就很诧异,感觉应该是少返回了,不是数据处理错误,看了技术网站发现elasticsearch的默认返回数据是10条,所以如果想看到完整的数据详情,可以在api中加上size设置返回条数:http://xxxxx:9200/yourind...原创 2019-11-10 14:13:04 · 5989 阅读 · 0 评论 -
logstash中date插件处理多个日期字段
在logstash的date插件中使用match处理数据中的日期字段时,如果是一条记录中有多个日期字段需要进行处理,那么写法应该是在同一个date插件中并列写多个match还是有别的处理方法呢,试了一下并列写match会提示错误,后来看到一篇帖子给出了正确的写法,这里记录一下:date { match => ["createTime", "yyyy-MM-dd"] ...原创 2019-11-10 14:07:55 · 2218 阅读 · 1 评论 -
使用logstash csv filter插件时自动检测表头失败
在logstash中使用csv filter解析表头时,一种方法是用coulmn直接把每个表头一一对应写进去,另一种方法是在csv插件中使用autdetect_column_names => "true"设置为true,logstash会自动识别表头,但是这种情况下,出现的问题是,比如csv文件中有一行表头,三条数据,那解析之后,有的时候是输出了表头和第二第三条数据,有的时候是没有输出表头,...原创 2019-11-10 14:02:36 · 1185 阅读 · 0 评论 -
docker部署logstash
1.从docker上拉取logstash镜像:[root@localhost local]# docker pull logstash:6.6.02.查看镜像是否下载成功:[root@localhost wyh_docker]# docker imagesREPOSITORY TAG IMAGE ID CRE...原创 2019-11-03 21:44:56 · 3184 阅读 · 1 评论 -
使用logstash中的grok插件解析apache日志输出至elasticsearch
在实际应用中,我们可能会对apache产生的请求访问日志进行解析,对其中的一些数据进行处理。我们可以使用Logstash中提供的grok插件(该插件是针对apache的日志,里面可以帮我们自动识别一些信息)对数据格式进行处理,并将数据输出到elasticsearch。关于elk的搭建,可以参考这篇:https://blog.youkuaiyun.com/QYHuiiQ/article/details/87...原创 2019-05-05 16:29:52 · 2403 阅读 · 1 评论 -
elasticsearch中query统计网络请求访问的成功率
在之前的一篇(https://blog.youkuaiyun.com/QYHuiiQ/article/details/89843141)中已经使用logstash实现解析apache log,将信息匹配成各个字段后放到ealsticsearch中了,这次我们要做的是统计每3分钟每个url访问的成功率。1.先在/usr/local/wyh/elk-kafka/apache-log下创建一个log文件apa...原创 2019-05-19 12:41:51 · 3042 阅读 · 0 评论 -
如何解决apache log中带时区的日期转成date类型后在es中显示的还是text类型
在es中如果用到date_histogram时要求field必须是date类型的,需要我们在Logstash中将时间字段改为date类型的,如下的日期:11/Apr/2019:16:47:37 -0400格式:"dd/MMM/yyyy:HH:mm:ss Z"使用date转换后在es中写query时还是显示text类型,最后试了一下在这个字段前加上@,在es中就可以显示为da...原创 2019-05-19 12:50:39 · 1230 阅读 · 0 评论 -
logstash中grok使用if判断消息是否包含某个字符串及以某个字符开头
在grok匹配时有的时候我们可能会根据不同的情况进行不同的匹配原则,这个时候就想到用if先对消息进行判断。在grok中也是可以用if,else if,else。example:filter{ if "start" in [message]{ --message就是指原始消息 grok{ match => xxxxxxxxx...原创 2019-05-09 20:28:35 · 12768 阅读 · 3 评论 -
logstash中grok自带的pattern如何查看
有的时候我们想看一下logstash中grok自带的patterns,可以从根源了解它的匹配规则,这里就记录一下它藏的地方:logstash安装包/vendor/bundle/jruby/2.3.0/gems/logstash-patterns-core-4.1.2/patternscat grok-patterns...原创 2019-05-09 20:38:28 · 1974 阅读 · 0 评论 -
使用java连接elasticsearch
1.新建maven项目,引入依赖:<dependencies> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>6.6.0&l...原创 2019-05-25 14:17:48 · 4507 阅读 · 2 评论 -
java连接elasticsearch报错NoNodeAvailableException[None of the configured nodes are available: [{#transpo
在java端连接elasticsearch时,可以输出client信息,但是在做聚合查询求最大值时会报如下异常:Exception in thread "main" NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{aKmx1XNXTtqhLPNtDvhQVA}{192....原创 2019-05-26 15:36:32 · 2893 阅读 · 2 评论