docker 部署 logstash,实现 logstash + influxdb 监控 kafka 数据

一、docker 部署 logstash

1、创建 Dockerfile

vim Dockerfile

FROM logstash:7.8.0

# 安装input插件
#RUN logstash-plugin install logstash-input-kafka
# 安装output插件
RUN logstash-plugin install logstash-output-influxdb

2、创建 image

docker build -t logstash:7.8.0 .

二、kafka + logstash + influxdb,将数据写入 influxdb

1、编写配置文件

vim logstash.yml

config:
  reload:
    automatic: true
    interval: 3s
queue:
  type: persisted
xpack:
  management.enabled: false
  monitoring.enabled: false

vim cat online-stat-to-influxdb.conf

input{
    kafka {
        bootstrap_servers => "10.0.0.1:9092"
        codec => "json" # 将kafka的消息以json格式输入 这样的话  就可以直接在output和filter的部分使用"%{key}"来引用kafka消息中的对应字段的值
        group_id => "test-online-stat" #消费者组id  为了记录消费的offset
        consumer_threads => 1  # 消费者组中多少个消费者来消费这些topic中的消息  一般情况线程数对应topic的分区个数为最佳
        topics => ["test-online-stat"]  # 需要消费的topic  可以传入多个topic
        auto_offset_reset => "latest" # 如果消费者组的offset丢失或者第一次加入 从什么位置开始消费   
   }

}
output {
  influxdb {
    host => "10.0.0.2" # influx所在的ip,port默认8086.如果没有修改默认端口的话,可以不用配置port
    port => 8086
    db => "OnlineInfoCount" # 使用的数据库
    user => "LoginInfoCount"
    password => "12345678"
    measurement => "t_minute_logical_count" # 将数据插入到哪个表中
    retention_policy => "autogen" # 使用哪个保留规则
    send_as_tags => ['vwType','vwId','areaId','serverId'] # 把哪些字段作为tag,datapoints中的字段必须大于此集合中的字段数
    allow_time_override => true  #是否允许覆盖默认的@timestamp字段  logstash在向influx插入消息时默认是将@timestamp作为time字段插入 ,所以上面的 date 过滤器中直接匹配赋值即可
    flush_size => 1000 # 多少条消息提交到influx
    idle_flush_time => 1 # 多久提交一次消息到influx
    codec => json # 将消息以json格式输出
    #coerce_values => {"cnt" => "long"} # 将某些字段的值类型强转
    data_points => {
        "vwType" => "%{vwType}"
        "vwId" => "%{vwId}"
        "areaId" => "%{areaId}"
        "serverId" => "%{serverId}"
        "cnt" => "%{cnt}"
        "time" => "%{time}"
    }
  }
  #stdout {codec => rubydebug} # 将消息打印出来
}

2、启动 container

docker run -d --name logstash -v /home/docker/logstash/config/online-stat-to-influxdb.conf:/usr/share/logstash/pipeline/online-stat-to-influxdb.conf -v /home/docker/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml --add-host=master:10.0.0.1 logstash:7.8.0

3、查看日志

docker logs -f --tail=100 logstash

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DockerKafkaLogstash是三个不同的技术工具。Docker是一个开源的容器化平台,可以帮助开发人员和运维人员更轻松地构建、部署和运行应用程序。Kafka是一个分布式流处理平台,用于处理高容量的实时数据流。Logstash是一个开源的数据收集引擎,用于将不同来源的数据进行收集、转换和传输。 在你提供的引用中,有关于使用Docker部署和配置Logstash的信息。首先,你需要安装Docker,并下载所需的Logstash镜像。然后,创建一个专用网络用于容器之间的通信。接下来,你可以使用Docker命令启动Logstash容器,并配置Logstash的输入和输出。在输入配置中,你可以指定要采集的日志文件路径和类型。在输出配置中,你可以指定将日志数据发送到Elasticsearch中的索引。 请注意,上述引用中的命令和配置是一个示例,具体的部署和配置取决于你的实际需求和环境。你可以根据自己的情况进行相应的修改和调整。 #### 引用[.reference_title] - *1* *3* [如何使用docker部署与配置ELK(elasticsearch+logstash+kibana)](https://blog.csdn.net/chscomfaner/article/details/121201626)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Docker安装Logstash,并拉取Kafka数据](https://blog.csdn.net/huangwp2000/article/details/124692085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

magic_kid_2010

你的支持将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值