Ubuntu上使用Docker安装ELK和Metricbeat

要在Ubuntu上使用Docker安装ELK(Elasticsearch, Logstash, Kibana)和Metricbeat,版本为7.12.1,以下是详细步骤:

先决条件

确保已经安装了Docker和Docker Compose。如果没有安装,可以按照以下步骤进行安装:

安装Docker

首先,确保你的Ubuntu系统已经安装了Docker。如果没有安装Docker,可以使用以下命令进行安装:

sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
安装Docker Compose

Docker Compose用于定义和运行多容器Docker应用。如果还没有安装Docker Compose,可以使用以下命令进行安装

sudo apt install -y docker-compose

创建Docker Compose文件

在你的工作目录中创建一个名为docker-compose.yml的文件,并添加以下内容:

version: '3.7'

services:
  elasticsearch:
    image: elasticsearch:7.12.1
    container_name: elasticsearch
    environment:
      - node.name=elasticsearch
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elk

  logstash:
    image: logstash:7.12.1
    container_name: logstash
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline
    ports:
      - 5000:5000
    networks:
      - elk
    depends_on:
      - elasticsearch

  kibana:
    image: kibana:7.12.1
    container_name: kibana
    environment:
      ELASTICSEARCH_URL: http://elasticsearch:9200
      I18N_LOCALE: "zh-CN" # 设置kibana中文显示(默认中文)
    ports:
      - 5601:5601
    networks:
      - elk
    depends_on:
      - elasticsearch

  metricbeat:
    image: docker.elastic.co/beats/metricbeat:7.12.1
    container_name: metricbeat
    user: root
    volumes:
      - ./metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
      - /var/run/docker.sock:/var/run/docker.sock
      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
      - /proc:/hostfs/proc:ro
      - /:/hostfs:ro
    environment:
      - "ELASTICSEARCH_HOSTS=http://elasticsearch:9200"
      - "SETUP_DASHBOARDS_ENABLED=true" # 使用metricbeat默认仪表盘
    networks:
      - elk
    depends_on:
      - elasticsearch
      - kibana

networks:
  elk:
    driver: bridge  #创建一个名叫elk的网络,桥接模式(因为容器间需要通信,容器加入到网络就可以根据容器名进行通信)

volumes:
  esdata:
    driver: local

配置Logstash

创建一个目录结构logstash/pipeline,并在该目录中创建一个名为logstash.conf的文件,内容如下:

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    manage_template => false
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

配置Metricbeat

创建一个目录metricbeat,并在该目录中创建一个名为metricbeat.yml的文件,内容如下:

metricbeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

setup.template.settings:
  index.number_of_shards: 1

output.elasticsearch:
  hosts: ["http://elasticsearch:9200"]

processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  - add_docker_metadata: ~

logging.level: info

启动ELK Stack和Metricbeat

在你的工作目录中运行以下命令来启动所有服务:

sudo docker-compose up -d

检查服务状态

可以使用以下命令来查看服务是否正常运行:

sudo docker-compose ps

访问Kibana

打开浏览器,访问http://localhost:5601,你应该能够看到Kibana的界面。可以在这里设置索引模式和查看Metricbeat的数据。

通过这些步骤,你已经在Ubuntu上使用Docker成功安装了ELK 7.12.1和Metricbeat 7.12.1。如果有任何问题,请检查各个配置文件和日志,以确保所有服务正常运行。

docker-compose常用指令

检查Docker Compose版本

打开终端并运行以下命令:

docker-compose --version

如果Docker Compose安装成功,你会看到类似于以下的输出:

docker-compose version 1.29.2, build 5becea4c
检查Docker Compose安装路径

还可以通过检查Docker Compose的安装路径来确认它是否正确安装:

which docker-compose

如果安装成功,你会看到类似于以下的输出,显示docker-compose的可执行文件路径:

/usr/local/bin/docker-compose
停止容器

在你的项目目录(包含docker-compose.yml文件的目录)中,运行以下命令来停止所有服务:

sudo docker-compose down

这个命令将停止并删除所有由docker-compose.yml文件定义的容器、网络和卷。

停止特定服务

如果你只想停止特定的服务,而不是所有服务,可以使用以下命令:

sudo docker-compose stop <service_name>

例如,如果你只想停止Kibana服务,可以运行:

sh
复制代码
sudo docker-compose stop kibana
停止所有服务但保留容器

如果你想停止所有服务但保留容器(下次可以快速启动),可以使用以下命令:

sudo docker-compose stop
4. 检查容器状态

你可以使用以下命令检查容器的状态:

sudo docker-compose ps

这将显示当前由Docker Compose管理的所有容器的状态。

重新启动服务

如果你之后需要重新启动服务,可以使用以下命令:

sudo docker-compose up -d

-d选项表示以分离模式(后台)启动容器。

通过这些命令,你可以有效地管理和控制由Docker Compose启动的容器和服务。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值