如何在智能告警平台CA触发测试告警
725
2023-02-12
ELK logstash升级到2.0以及logstash-forwarder迁移到Filebeat(21st)
将从logstash1.5版本升级到2.1版本,以及将《ELK部署指南》中使用的logstash-forwarder转移到Filebeat上。
升级步骤
停止logstash以及发送到logstash的所有管道。更新apt或yum源或者下载新版包。安装新版的logstash。测试logstash配置文件是否正确。启动logstash以及第一步停止的管道。
升级logstash和elasticsearch到2.0
升级前请先看看版本的改变信息。
下面是elasticsearch升级到2.0后,需要执行的:
Mapping改变:用户自定义的模板变化,因此在默认情况下,logstash升级将抛弃这些模板。即时没有一个自定义的模板,默认情况下logstash不会覆盖已存在的模板。
已经有一个已知的问题就是使用GeoIP过滤器需要手动更新模板。
注意,如果有自定义模板更改,务必保持和合并这些更改。
查看已有的模板:
1 | curl-XGET localhost:9200/_template/logstash |
在logstash配置文件中添加下面的配置并重启:
1 2 3 4 5 | output{ elasticsearch{ template_overwrite=>true } } |
有点的字段:elasticsearch2.0不允许字段名含有.字符。一些插件包括logstash-filter-metrics和 logstash-filter-elapsed已经更新弥补这一更改。这些插件更新对于logstash2.0可用。要升级这些插件可执行下面命令:
1 | bin/plugin update<plugin_name> |
多行过滤器:如果要在logstash配置文件中使用多行过滤器并升级到2.0,将会得到一个错误。确保filter_workers明确设置为1。如果要改变该值需通过命令行参数更改,如下所示:
1 | bin/logstash`-w1` |
实操
关闭logstash以及输入的管道。
1 2 3 4 5 | # /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 |
2. 升级logstash,添加yum源参见前文。
1 | # yum update logstash |
3. 检查配置文件
我的配置文件是以《ELK部署指南》中的配置文件为原型的。
更改配置文件
1 2 3 4 5 6 7 8 | # mv 01-lumberjack-input.conf 01-beats-input.conf input{ beats{ port=>5044 host=>"10.1.19.18" type=>"logs" } } |
这个是把有关logstash-forwarder使用的lumberjack删除了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 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的定义。
对类型nginx的filter。
logstash-forwarder的配置文件
改成Filebeat的配置文件:
此处document_type选项控制输出type字段,用于elasticsearch输出以确定文档类型。对于以elasticsearch输出,该值用于设置输出文档的type字段。
4. 检查配置文件是否正确
1 2 3 4 5 6 | # /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. 启动服务
1 2 3 4 | # /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)
需更改下面的配置:
1 2 | # 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
需更改下面的配置:
1 2 | # vim /etc/sysconfig/logstash LS_HEAP_SIZE="1024m" |
发表评论
评论列表