docker安装logstash

本文详细介绍了如何在Linux宿主机上使用Docker安装Logstash,包括配置logstash.yml、beats.conf和容器运行参数,以及以不同方式启动Logstash服务。重点在于设置网络和与Elasticsearch的连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker安装logstash

镜像下载省略
先创建本地配置文件,运行容器时将文件映射到容器中,后期修改配置也方便

1、编辑logstash.yml配置文件,logstash.yml配置文件放在宿主机/data/elk/logstash目录下,内容如下:

path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash

2、编辑beats.conf文件,文件放在宿主机/data/elk/logstash/conf.d目录下,内容如下:

input {
    tcp {
        port => 9600
        codec => "json"
        proxy_protocol => true #开启后能获取到代理IP和真实IP地址,并且开启后只能通过nginx代理连接,不能直接连接
    }
}

filter {
    ruby {
        code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
    }
    ruby {
        code => "event.set('@timestamp',event.get('timestamp'))"
    }
    mutate {
        remove_field => ["timestamp"]
    }
    mutate {
        gsub => [ "message", "\\n", "\n\r" ]
    }
}

output {
     elasticsearch {
        action => "index"
        hosts => ["192.168.5.71:9200"]
        index => "%{[appname]}"
     }
}

3、创建logstash容器

docker run -di --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 -p 5044:5044 -p 9600:9600 --name logstash -v /data/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /data/elk/logstash/conf.d/:/usr/share/logstash/conf.d/ --net esnet logstash:7.8.0

注意网卡net必须和elasticsearch使用同一个(如果elasticsearch是用容器安装),否则数据无法同步!!!

4、查看容器运行状态

docker ps
docker logs -f logstash

下面介绍在linux宿主机安装方法

linux安装logstash

1.解压tar包
2.vi 安装目录/config/logstash-sample.conf

input {
    tcp {
        port => 9600
        codec => "json"
        proxy_protocol => true #开启后能获取到代理IP和真实IP地址,并且开启后只能通过nginx代理连接,不能直接连接
    }
}

filter {
    ruby {
        code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
    }
    ruby {
        code => "event.set('@timestamp',event.get('timestamp'))"
    }
    mutate {
        remove_field => ["timestamp"]
    }
    mutate {
        gsub => [ "message", "\\n", "\n\r" ]
    }
}

output {
     elasticsearch {
        action => "index"
        hosts => ["192.168.5.71:9200"]
        index => "%{[appname]}"
     }
}

3.启动logstash
cd bin目录下,执行:

nohup ./logstash -f ../config/logstash-sample.conf --config.reload.automatic &

nohup,后台启动
该–config.reload.automatic选项启用自动配置重新加载,因此您不必在每次修改配置文件时停止并重新启动Logstash。

  • 推荐使用service方式启动。

ps -ef | grep logstash 查看logstash进程是否开启

nohup方式启动(了解,不推荐)

nohup logstash -f ../config/logstash-sample.conf --config.reload.automatic &

配置logstash以service方式启动

1、修改logstash安装目录下config/startup.options

LS_HOME=/app/nari/logstash/

# logstash settings directory, the path which contains logstash.yml
LS_SETTINGS_DIR=${LS_HOME}/config

LS_CONFIG_DIR=${LS_HOME}/config.d

# Arguments to pass to logstash
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config ${LS_CONFIG_DIR}"

2、将logstash.conf文件放置在LS_CONFIG_DIR目录下。
3、切换到root用户执行以下命令,会在/etc/systemd/system/下生成logstash.service文件。

logstash安装目录(绝对路径)/bin/system-install

4、赋予logstash.service可执行权限(chmod +x 文件名)。
5、使用systemctl start|stop|restart|enable logstash 启动和停止服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值