centos7.9安装elk

329 阅读4分钟

1.安装Docker和Docker Compose:

根据你的操作系统,按照官方文档(docs.docker.com/get-docker/)安装Docker和DockerCompose。确保安装了最新版本的Docker和Docker Compose。

2.创建一个文件夹来存放ELK配置文件:

在你选择的位置创建一个文件夹,用于存放ELK的配置文件。例如,可以创建一个名为elk的文件夹。

3.创建docker-compose.yml文件:

a.在上一步创建的文件夹中,创建一个名为docker-compose.yml的文件,并使用文本编辑器打开它。

b.将以下内容复制到docker-compose.yml文件中:

version: '3'

services:

  elasticsearch:

    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0

    container_name: elasticsearch

    environment:

      - discovery.type=single-node

      - "ES_JAVA_OPTS=-Xmx512m -Xms512m"

    ports:

      - 9200:9200

      - 9300:9300

    volumes:

      - esdata:/usr/share/elasticsearch/data

    networks:

      - elk-network

  logstash:

    image: docker.elastic.co/logstash/logstash:7.14.0

    container_name: logstash

    volumes:

      - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf

    ports:

      - 5000:5000/udp

    depends_on:

      - elasticsearch

    networks:

      - elk-network

  kibana:

    image: docker.elastic.co/kibana/kibana:7.14.0

    container_name: kibana

    ports:

      - 5601:5601

    depends_on:

      - elasticsearch

    networks:

      - elk-network

volumes:

  esdata:

networks:

  elk-network:

    driver: bridge

上面的配置使用了Elastic官方提供的Docker镜像,版本号为7.14.0。如果你想使用其他版本,可以将image行中的版本号替换为所需的版本。

此配置文件定义了三个服务:Elasticsearch、Logstash和Kibana。Elasticsearch用于数据存储和索引,Logstash用于日志收集和处理,Kibana用于数据可视化和分析。

在Logstash服务中,我们将当前目录下的logstash.conf文件映射到容器中的Logstash配置文件路径,以便我们可以在本地编辑和管理Logstash配置。

此外,配置文件还创建了一个网络(elk-network),用于在服务之间进行通信。

4.创建Logstash配置文件:

a.在上一步创建的文件夹中,创建一个名为logstash.conf的文件,并使用文本编辑器打开它。

b.编辑logstash.conf文件来定义Logstash的输入、过滤和输出插件的管道。以下是一个示例配置,将stdin作为输入插件,将日志发送到Elasticsearch进行索引:

input {

  gelf {

    port => 5000

    codec => "json"

  }

}

output {

  elasticsearch {

    hosts => ["elasticsearch:9200"]

    index => "%{[tag]}-%{+YYYY.MM.dd}"

  }

}

在上面的示例配置中,我们使用stdin作为输入插件,它从标准输入(stdin)读取日志。你可以根据需要替换为适合你的日志来源的输入插件。

输出插件使用Elasticsearch作为目标,将日志数据发送到Elasticsearch进行索引。我们使用了elasticsearch:9200作为Elasticsearch的主机和端口,它与Elasticsearch服务的容器名称对应。

请根据需要修改配置文件,以适应你的日志源和索引设置。

5.启动ELK堆栈:

a.在终端或命令提示符中,导航到包含docker-compose.yml文件的文件夹。

b.运行以下命令来启动ELK堆栈:

docker-compose up -d

此命令将根据docker-compose.yml文件中的配置启动Elasticsearch、Logstash和Kibana服务,并在后台运行(使用-d选项)。

Docker将自动下载所需的镜像,并启动相应的容器。

6.发送日志到ELK堆栈:

现在,你可以将日志发送到ELK堆栈中进行集中管理和分析。根据你的日志来源和配置,你可以使用不同的方法将日志发送到Logstash服务。以下是一些常见的方法:

a.在命令行中使用docker logs命令将容器的日志发送到Logstash。例如:

docker logs my-container 2>&1 | nc localhost 5000

这将获取名为my-container的容器的日志,并将其通过网络发送到Logstash。

b.在容器配置中设置日志驱动,将日志直接发送到Logstash。具体设置取决于你使用的容器平台和日志驱动。在Docker Compose文件或Docker命令中,你可以使用--log-driver参数指定日志驱动,并使用--log-opt参数来配置驱动选项。

**version: '3'
**

services:

  my-app:

    image: my-app-image

    # 其他服务配置...

    logging:

      driver: gelf

      options:

        gelf-address: "udp://logstash-host:5000"

c.如果你在Kubernetes上运行容器,可以使用日志聚合和转发机制将容器日志发送到Logstash。你可以配置Kubernetes的日志引擎(如Fluentd、Filebeat等)将容器日志发送到Logstash。

根据你的具体情况,选择适合的方法将日志发送到Logstash。

7.使用Kibana进行日志分析和可视化:

a.打开浏览器,访问Kibana的Web界面。默认情况下,Kibana的地址是http://localhost:5601

作者:眺望77
链接:www.jianshu.com/p/979132847…
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。