首页 > 其他分享 >ELK logstash升级到2.0以及logstash-forwarder迁移到Filebeat

ELK logstash升级到2.0以及logstash-forwarder迁移到Filebeat

时间:2023-08-03 18:03:07浏览次数:30  
标签:ELK Filebeat 配置文件 nginx etc conf type logstash


将从logstash1.5版本升级到2.1版本,以及将《ELK部署指南》中使用的logstash-forwarder转移到Filebeat上。

升级步骤

  1. 停止logstash以及发送到logstash的所有管道。
  2. 更新apt或yum源或者下载新版包。
  3. 安装新版的logstash。
  4. 测试logstash配置文件是否正确。
  5. 启动logstash以及第一步停止的管道。

升级logstash和elasticsearch到2.0

升级前请先看看版本的改变信息。

下面是elasticsearch升级到2.0后,需要执行的:

Mapping改变:用户自定义的模板变化,因此在默认情况下,logstash升级将抛弃这些模板。即时没有一个自定义的模板,默认情况下logstash不会覆盖已存在的模板。

已经有一个已知的问题就是使用GeoIP过滤器需要手动更新模板。

注意,如果有自定义模板更改,务必保持和合并这些更改。

查看已有的模板:



 

curl         -         XGET          localhost         :         9200         /         _template         /         logstash




在logstash配置文件中添加下面的配置并重启:



 

output         {


                 elasticsearch         {


                         template_overwrite         =         >         true


                 }


}




有点的字段:elasticsearch2.0不允许字段名含有.字符。一些插件包括logstash-filter-metrics和 logstash-filter-elapsed已经更新弥补这一更改。这些插件更新对于logstash2.0可用。要升级这些插件可执行下面命令:


bin         /         plugin          update         <         plugin_name         >



多行过滤器:如果要在logstash配置文件中使用多行过滤器并升级到2.0,将会得到一个错误。确保filter_workers明确设置为1。如果要改变该值需通过命令行参数更改,如下所示:


bin         /         logstash         `         -         w         1         `

 




ELK logstash升级到2.0以及logstash-forwarder迁移到Filebeat_配置文件

实操

  1. 关闭logstash以及输入的管道。

 


# /etc/init.d/topbeat stop


# /etc/init.d/packetbeat stop


# /etc/init.d/filebeat stop


# /etc/init.d/logstash-forwarder stop


# /etc/init.d/logstash stop

 




这节会将logstash-forwarder迁移到Filebeat上了,后续不再启动logstash-forwarder了。

2. 升级logstash,添加yum源参见前文。



 

# yum update logstash




3. 检查配置文件

我的配置文件是以《ELK部署指南》中的配置文件为原型的。



 

# /opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/01-lumberjack-input.conf 


Configuration          OK


# /opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/10-active.conf 


Configuration          OK


# /opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/11-nginx.conf 


Configuration          OK


# /opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/99-lumberjack-output.conf


Error         :         The          setting         `         host         `         in         plugin         `         elasticsearch         `         is         obsolete          and         is         no          longer          available         .         Please          use         the         'hosts'         setting          instead         .         You          can          specify          multiple          entries          separated          by          comma          in         'host:port'         format         .         If         you          have          any          questions          about          this         ,         you          are          invited          to         visit          https         :         //discuss.elastic.co/c/logstash and ask.




更改配置文件

# mv 01-lumberjack-input.conf 01-beats-input.conf


input         {


           beats         {


             port         =         >         5044


             host         =         >         "10.1.19.18"


             type         =         >         "logs"


           }


}


 




这个是把有关logstash-forwarder使用的lumberjack删除了。


# mv 99-lumberjack-output.conf 99-beats-output.conf  


# vim 99-beats-output.conf 


output         {


if         "_grokparsefailure"         in         [         tags         ]         {


file         {         path         =         >         "/var/log/logstash/grokparsefailure-%{[type]}-%{+YYYY.MM.dd}.log"         }


}


                  


elasticsearch         {


            hosts         =         >         [         "10.162.19.184:9200"         ]


            sniffing         =         >         true


            manage_template         =         >         false


            template_overwrite         =         >         true


            index         =         >         "%{[@metadata][beat]}-%{+YYYY.MM.dd}"


            document_type         =         >         "%{[@metadata][type]}"


}


#stdout { codec =>rubydebug }


}

 




以上是output的定义。

# vim 11-nginx.conf 


filter         {


           if         [         type         ]         ==         "nginx"         {


             grok         {


               match         =         >         {         "message"         =         >         "%{IPORHOST:clientip} - %{NOTSPACE:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:method} %{NOTSPACE:request}(?: %{URIPROTO:proto}/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:status} (?:%{NUMBER:upstime}|-) %{NUMBER:reqtime} (?:%{NUMBER:size}|-) %{QS:referrer} %{QS:agent} %{QS:xforwardedfor} %{QS:reqbody} %{WORD:scheme} (?:%{IPV4:upstream}(:%{POSINT:port})?|-)"         }


               add_field         =         >         [         "received_at"         ,         "%{@timestamp}"         ]


               add_field         =         >         [         "received_from"         ,         "%{host}"         ]


             }


             date         {


                 match         =         >         [         "timestamp"         ,         "dd/MMM/YYYY:HH:mm:ss Z"         ]


             }


            geoip         {


                 source         =         >         "clientip"


                 add_tag         =         >         [         "geoip"         ]


                 fields         =         >         [         "country_name"         ,         "country_code2"         ,         "region_name"         ,         "city_name"         ,         "real_region_name"         ,         "latitude"         ,         "longitude"         ]


                 remove_field         =         >         [         "[geoip][longitude]"         ,         "[geoip][latitude]"         ]


             }


             useragent         {


                 source         =         >         "agent"


                 target         =         >         "browser"


             }


           }


}


 




对类型nginx的filter。

logstash-forwarder的配置文件


# vi /etc/logstash-forwarder.conf 


           "files"         :         [


             {


                 "paths"         :         [         "/data/logs/www.ttlsa.com/active/*.log"         ]         ,


                 "fields"         :         {         "type"         :         "active"         }


             }         ,


             {


                 "paths"         :         [         "/data/logs/www.ttlsa.com/nginx/*-access.log"         ]         ,


                 "fields"         :         {         "type"         :         "nginx"         }


             }


           ]

 




改成Filebeat的配置文件:


# vim /etc/filebeat/filebeat.yml


filebeat         :


           prospectors         :


             -


               paths         :


                 -         /         data         /         logs         /         www         .         ttlsa         .         com         /         nginx         /         *         -         access         .         log


               document_type         :         nginx                     //隐射为type:nginx


             -


               paths         :


                 -         /         data         /         logs         /         www         .         ttlsa         .         com         /         active         /         *         .         log


               document_type         :         active

 




此处document_type选项控制输出type字段,用于elasticsearch输出以确定文档类型。对于以elasticsearch输出,该值用于设置输出文档的type字段。

4. 检查配置文件是否正确


# /opt/logstash/bin/logstash -t -f /etc/logstash/conf.d/01-beats-input.conf


Configuration          OK


# /opt/logstash/bin/logstash -t -f /etc/logstash/conf.d/11-nginx.conf 


Configuration          OK


# /opt/logstash/bin/logstash -t -f /etc/logstash/conf.d/30-beats-output.conf 


Configuration          OK

 




5. 启动服务

# /etc/init.d/topbeat stop


# /etc/init.d/packetbeat stop


# /etc/init.d/filebeat stop


# /etc/init.d/logstash stop


 




以上便是升级的过程,以及将logstash-forwarder迁移到Filebeat上了。

为了避免出现下面的问题:

sun/misc/URLClassPath.java:1003:in `getResource': java.lang.InternalError: java.io.FileNotFoundException: /alidata/server/java/jre/lib/ext/localedata.jar (Too many open files)

需更改下面的配置:

# vim /etc/sysconfig/logstash  


LS_OPEN_FILES         =         65535


 




Error: Your application used more memory than the safety cap of 500M.

Specify -J-Xmx####m to increase it (#### = cap size in MB).

 


辛苦了

Specify -w for full OutOfMemoryError stack trace

需更改下面的配置:

# vim /etc/sysconfig/logstash 


LS_HEAP_SIZE         =         "1024m"


 


标签:ELK,Filebeat,配置文件,nginx,etc,conf,type,logstash
From: https://blog.51cto.com/u_6186189/6951604

相关文章

  • ELK elasticsearch 插件管理
    插件能额外扩展elasticsearch功能,提供各类功能等等。有三种类型的插件:java插件只包含JAR文件,必须在集群中每个节点上安装而且需要重启才能使插件生效。网站插件这类插件包含静态web内容,如js、css、html等等,可以直接从elasticsearch服务,如head插件。只需在一个节点上安装,不需要重启......
  • 使用ELK搭建社工库
    ELK是什么东西?ELK是ElasticSearch、Logstash、Kibana三个应用的缩写。ElasticSearch简称ES,主要用来存储和检索数据。Logstash主要用来往ES中写入数据。Kibana主要用来展示数据。为什么用ELK?传统的社工库通常用MySQL数据库来进行搭建,在相当大的数据下检索效率非常低下。在这种关......
  • ELK 企业级日志分析系统
    ELK企业级日志分析系统可以完成对日志的管理,对臃肿和杂乱的日志进行梳理,建立索引,可以提供图形化界面。目录一、ELK简介二、ELK背景三、日志特点四、ELK工作原理五、部署六、总结    一、ELK简介1.ELK概述ELK平台是一套完整的日志集中处理解决方案,将......
  • 在Windows中运行Filebeat(Running Filebeat in windows)
     我最近使用这些说明在Windows上设置了filebeathttps://www.elastic.co/downloads/beats/filebeat但它迫使我保持​​cmd提示打开运行命令filebeat.exe-cfilebeat.yml我想知道是否有办法将其作为后台进程运行?谢谢。Isetupfilebeatonwindowsrecentlyusingt......
  • 【Logstash】conf文件mysql多数据源导入elasticsearch配置说明
    #inputplugin输入插件,接收事件源input{jdbc{#定义类型_1type=>"type_1"#mysql的ip、端口以及用到的数据库名jdbc_connection_string=>"jdbc:mysql://localhost:3306/数据库名"#mysql用户名jd......
  • elk日志采集系统
    下载地址:https://elasticsearch.cn/download/安装包:mkdirelkcdelk wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.1-x86_64.rpmwgethttps://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.5.1-x86_64.rpmwgethttps:/......
  • filebeat.yaml(k8s configmap)部署清单
    apiVersion:v1kind:ConfigMapmetadata:name:bh-shard-2-filebeat-confignamespace:bluehelixlabels:app:bh-shard-2-testapp.kubernetes.io/managed-by:Helmchart:java-0.9.9heritage:Helmrelease:bluehelix-bh-shard-2data:......
  • mysql 同步至es logstash 每隔10秒执行一次增量同步
      .在Logstash的config目录下创建mysql-es.conf配置文件,Logstash会根据该配置文件从MySQL中读取数据并同步到ES库中。 input{jdbc{jdbc_connection_string=>"jdbc:mysql://localhost:3306/p2p_transaction_0?useUnicode=true&characterEncoding=utf-8&useSSL=fals......
  • logstash+Elasticseach单节点 让logstash生成单副本索引
    要让Logstash和Elasticsearch生成单副本索引,请按照以下步骤更改Logstash的输出配置文件:打开Logstash配置文件,该文件默认位于 logstash/config 目录下。找到输出部分配置,并添加以下行:output{elasticsearch{hosts=>["localhost"]index=>"your......
  • 企业级logstash简单使用(ELK)
    企业级logstash简单使用(ELK)要使用logstash收集到Elasticsearch的方式,需确保logstash版本与es版本一致。由于我也是刚刚研究使用,所以本文暂不会出现原理性的东西。Logstash介绍Logstash是具有实时流水线能力的开源的数据收集引擎。Logstash可以动态统一不同来源的数据,并将数......