ELK + logstash + rabbitmq 构建数据采集

本文详细介绍了如何在CentOS8系统上使用Docker来部署RabbitMQ、Logstash和Elasticsearch(ELK)堆栈。首先拉取RabbitMQ镜像,创建并运行容器,启用管理界面。接着配置Logstash,包括输入(RabbitMQ)和输出(Elasticsearch)设置,处理日志数据。然后启动Logstash容器。最后,配置并启动Elasticsearch容器,确保其监听所有网络接口。整个过程涵盖了ELK日志收集系统的基本搭建步骤。

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

环境

centos8 + docker

docker 安装rabbitmq

  • pull rabbitmq镜像, 注意带-management表示是有后台管理网页功能
docker pull rabbitmq:3.9-management
  • 创建并运行容器
sudo docker run -d --name rabbitmq \
--hostname localhost \
-p 4369:4369 \
-p 5671:5671 \
-p 5672:5672 \
-p 15671:15671 \
-p 15672:15672 \
-p 25672:52672 rabbitmq:3.9-management

docker 安装 logstash

docker hub 上复制 pull 命令,我pull的版本是8.1.2

docker pull logstash:8.1.2

本地创建logstash的config文件夹

mkdir ~/docker/logstash/config
mkdir ~/docker/logstash/config/conf.d

在config文件中添加logstash.yml文件

http.host: "0.0.0.0"
path.config: /usr/share/logstash/config/conf.d/*.conf
path.logs: /usr/share/logstash/logs

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.hosts: [ "http://127.0.0.1:9200" ]

在conf.d文件中添加输入输出配置文件my_config.conf

input {
    rabbitmq {
        host => "127.0.0.1"
        port => 5672
        vhost => "virtual host"
        user => "user name"
        password => "password"
        exchange => "log"
        queue => "log_info"
        durable => true
        codec => "json"
    }
}

output {
    stdout { }
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "rabbitmq_log"
    }
}

给上面创建的文件夹和文件添加权限,否则后面创建容器时会提示 “/usr/share/logstash/config/logstash.yml permission denied"(权限不足的问题困扰了我一天,git和stack overflow 都没有合适的答案,最后在CSDN上找到了解答)

chmod -R 777 logstash

启动容器

sudo docker run -dit --name logstash \
-p 5044:5044 \
-p 9600:9600  \
--privileged=true \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-v /home/wbxbuilds/docker/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
-v /home/wbxbuilds/docker/logstash/config/conf.d:/usr/share/logstash/config/conf.d \
-v /home/wbxbuilds/docker/logstash/logs:/usr/share/logstash/logs logstash:8.1.2

docker 安装ELK

从dockerhub上拷贝pull命令,我下载的时7.0.0版本,网上说ELK的版本要和logstash一致,但是我目前还没遇到问题

创建文件夹

mkdir ~/docker/elasticsearch/config
mkdir ~/docker/elasticsearch/data
mkdir ~/docker/elasticsearch/plugins

添加配置文件elasticsearch.yml到config目录下

http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

给文件添加权限(被上面整怕了)

chmod -R 777 elasticsearch

启动容器

sudo docker run -d --name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
-v /home/wbxbuilds/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/wbxbuilds/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/wbxbuilds/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.17.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值