JesseTzh
· 421 words Logstash 运维

离线安装 Logstash 插件

在没有互联网连接的服务器上为 Docker 版 Logstash 离线安装插件


前言

笔者在尝试为没有联网的服务器安装 Logstash 插件时,所查询到的教程多为修改 /usr/share/logstash/Gemfile 文件并手动安装源码。【例1】【例2

但在执行命令 logstash-plugin install --no-verify 依旧会提示没有互联网连接。只好查阅官方文档,才知道需要先在一台安装好插件机器上导出一个插件离线包,然后才可以在没有互联网的机器上进行导入操作。并且导出时必须有互联网连接

操作说明

  1. 需要一台可以连接互联网的机器,并且安装好 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
  2. 进入容器,并执行导出命令(需要有互联网连接)

    # 需要以 root 用户进入容器,否则会提示没有权限
    docker exec -u root -it logstash /bin/bash
    # 执行导出命令,此命令会导出本机 Logstash 所有插件
    bin/logstash-plugin install file:///offlinePlugin/logstash-offline-plugins.zip
  3. 切换至要安装的机器,将之前导出的 logstash-offline-plugins.zip 文件放入容器 /offlinePlugin 目录中,执行导入命令

    # 同样需要以 root 用户进入容器
    docker exec -u root -it logstash /bin/bash
    #导入命令
    bin/logstash-plugin install file:///offlinePlugin/logstash-offline-plugins.zip
  4. 退出容器并重启 Logstash 容器即可

    # 退出容器
    exit
    # 重启logstash服务
    docker restart logstash

Last Updated: October 24, 2023


About Author

Avatar

JesseTzh

3

Posts

1,104

Words

About More →