离线安装 Logstash 插件
在没有互联网连接的服务器上为 Docker 版 Logstash 离线安装插件
前言
笔者在尝试为没有联网的服务器安装 Logstash 插件时,所查询到的教程多为修改 /usr/share/logstash/Gemfile
文件并手动安装源码。【例1】【例2】
但在执行命令 logstash-plugin install --no-verify
依旧会提示没有互联网连接。只好查阅官方文档,才知道需要先在一台安装好插件机器上导出一个插件离线包,然后才可以在没有互联网的机器上进行导入操作。并且导出时必须有互联网连接。
操作说明
-
需要一台可以连接互联网的机器,并且安装好 Logstash 以及对应插件。
以下内容均以 Docker 版本 Logstash 为例,并且本方法理论支持所有 Logstash 插件
注意需要将此 Logstash 容器某个路径映射至宿主机,用来在之后的操作导出插件离线包。如:
logstash: image: logstash:6.4.0 container_name: logstash volumes: - ./logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf - ./logstash/offlinePlugin:/offlinePlugin #此路径用来导出插件离线包 ports: - 4560:4560 - 4561:4561 - 4562:4562
-
进入容器,并执行导出命令(需要有互联网连接)
# 需要以 root 用户进入容器,否则会提示没有权限 docker exec -u root -it logstash /bin/bash # 执行导出命令,此命令会导出本机 Logstash 所有插件 bin/logstash-plugin install file:///offlinePlugin/logstash-offline-plugins.zip
-
切换至要安装的机器,将之前导出的
logstash-offline-plugins.zip
文件放入容器 /offlinePlugin 目录中,执行导入命令# 同样需要以 root 用户进入容器 docker exec -u root -it logstash /bin/bash #导入命令 bin/logstash-plugin install file:///offlinePlugin/logstash-offline-plugins.zip
-
退出容器并重启 Logstash 容器即可
# 退出容器 exit # 重启logstash服务 docker restart logstash
Last Updated: October 24, 2023