1.拉取镜像 elasticsearch
docker pull elasticsearch:7.7.1
2.运行镜像(single-node 单节点启动) 网上建议设置是512M内存 可以根据虚拟机大小调整 我的虚拟机只有2G 所以我这里设置成128M 如果小伙伴出现容器自动退出一般就是内存设置太大
docker run -p 192.168.0.240:9200:9200 -p 192.168.0.240:9300:9300 -d -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx128m" --name els elasticsearch:7.7.1
3.拉取镜像 kibana
docker pull kibana:7.7.1
4.因为要用kibana连接els所以先看看自己的docker网络名称 我电脑查到的是 bridge
docker network ls
5.使用查询到的网络名称bridge 进行连接 els的ip地址
docker run --name kib --net bridge -p 192.168.0.240:5601:5601 -d -e "ELASTICSEARCH_HOSTS=http://192.168.0.240:9200" kibana:7.7.1
6.如果发现一段时候后 访问kibana 还是一直提示 Kibana server is not ready yet 可能内部网络没接通 具体用logs 日志可以查
7.这里再推荐一款快速查询els谷歌插件 "Multi Elasticsearch Head")
8.启动rabbitmq作为日志输入来源 步骤 拉取镜像 -> 启动容器 -> 加载网页端插件
docker pull rabbitmq docker run -d -p 15672:15672 -p 5672:5672 --hostname myRabbit --name rabbitmq rabbitmq docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
访问 http://192.168.0.240:15672
如果出现 Stats in management UI are disabled on this node 错误 则需要修改下rbmq的配置
#进入rabbitmq容器 docker exec -it rabbitmq /bin/bash #进入容器后,cd到以下路径 cd /etc/rabbitmq/conf.d/ #修改 echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf #退出容器 exit #重启rabbitmq容器 docker restart rabbitmq
9.拉取 logstash
docker pull logstash:7.7.1
10.添加两个配置文件放在Linux的/root/elk文件夹下 用于启动的时候读取自定义配置
logstash.conf
input { rabbitmq { durable => true exchange => "rabbitTextlog" exchange_type => "direct" key => "credit_log" host => "192.168.0.240" port => 5672 user => "guest" password => "guest" queue => "rabbitTextlogqueue" auto_delete => false } } output{ elasticsearch { hosts=>["192.168.0.240:9200"] index => "myrabbitmqlog" } }
logstash.yml
http.host: "0.0.0.0" xpack.monitoring.elasticsearch.hosts: [ "http://192.168.0.240:9200" ]
11.启动容器
docker run --name richard_logstash -p 5044:5044 -p 9600:9600 -e "discovery.type=single-node" -v /root/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /root/elk/logstash.yml:/usr/share/logstash/config/logstash.yml logstash:7.7.1
测试数据有正常到Els 则部署成功
另外可以用 docker compose 自动部署
1.先安装compose
# 下载docker compose sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 添加可执行权限 sudo chmod +x /usr/local/bin/docker-compose # 将文件copy到 /usr/bin/目录下 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose # 查看版本 docker-compose --version
2.编写部署文件
version: '3.3' services: service1: image: rabbitmq:latest ports: - 15672:15672 - 5672:5672 container_name: "lyj_rabbit" #容器名称 service2: depends_on: - service1 image: elasticsearch:7.7.1 environment: - "ES_JAVA_OPTS=-Xms128m -Xmx128m" - discovery.type=single-node ports: - 9200:9200 - 9300:9300 container_name: "lyj_es" #容器名称 service3: depends_on: - service2 image: kibana:7.7.1 environment: - ELASTICSEARCH_HOSTS="http://192.168.0.240:9200" ports: - 5601:5601 container_name: "lyj_kibana" #容器名称 service4: depends_on: - service3 image: logstash:7.7.1 environment: - discovery.type=single-node volumes: - /root/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf - /root/elk/logstash.yml:/usr/share/logstash/config/logstash.yml ports: - 5044:5044 - 9600:9600 container_name: "lyj_logstash" #容器名称
3.到文件目录执行
docker-compose up
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)