【基于Docker-Compose安装ELK日志系统完整操作步骤】

这篇具有很好参考价值的文章主要介绍了【基于Docker-Compose安装ELK日志系统完整操作步骤】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

ELK是三个开源软件的缩写,分别是Elasticsearch、Logstash、Kibana,一般情况下会结合FileBeat使用
Elasticsearch:是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Kibana:是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。
Logstash:主要是用来日志的搜集、分析、过滤日志的工具,支持多种多样的数据获取方式。一般工作方式为c/s架构,Client端安装在需要收集日志的服务器上,Server端负责将收到的各节点日志进行过滤、修改等操作,再一并发往Elasticsearch上去。
Filebeat:轻量级数据收集引擎,隶属于Beats。是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。目前Beats包含四种工具:Packetbeat(搜集网络流量数据)、Topbeat(搜集系统、进程和文件系统级别的CPU和内存使用情况等数据)、Filebeat(搜集文件数据)、Winlogbeat(搜集Windows事件日志数据)。

二、准备工作

2.1 安装Docker

因为本文介绍的是基于docker安装Yapi,所以先决条件是系统必须先安装好docker才能往下走,如果对docker的安装还不熟悉的可以查看我的另一篇文章【Linux安装最新版Docker完整教程】,安装完之后再往下看。

2.2 安装Docker-Compose

#下载最新版docker-compose
curl -L https://github.com/docker/compose/releases/download/2.16.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#添加可执行权限
chmod +x /usr/local/bin/docker-compose
#查看版本信息
docker-compose --version

【基于Docker-Compose安装ELK日志系统完整操作步骤】

三、Docker-Compose编排部署ELK

3.1 创建所需的挂载目录

#创建es挂载目录
mkdir -p /mnt/elk/es/{config,data,logs,plugins}
#赋予777权限
chmod 777 /mnt/elk/es/{config,data,logs,plugins}
#创建kibana挂载目录
mkdir -p /mnt/elk/kibana/{config,plugins}
#赋予777权限
chmod 777 /mnt/elk/kibana/{config,plugins}
#创建logstash挂载目录
mkdir -p /mnt/elk/logstash/{config,pipeline}
#赋予777权限
chmod 777 /mnt/elk/logstash/{config,pipeline}
#创建filebeat挂载目录
mkdir -p /mnt/elk/filebeat/{config,logs}
#赋予777权限
chmod 777 /mnt/elk/filebeat/{config,logs}

3.2 创建相应的配置文件

在/mnt/elk/es/config目录下创建 elasticsearch.yml文件,内容如下:

network.host: 0.0.0.0  #使用的网络
http.cors.enabled: true #跨域配置
http.cors.allow-origin: "*"
#xpack.security.enabled: true  #开启密码配置

在/mnt/elk/kibana/config目录下创建kibana.yml

i18n.locale: "zh-CN"  #汉化
server.name: "kibana"
server.host: "0.0.0.0"
server.shutdownTimeout: "10s"
elasticsearch.hosts: ["http://elasticsearch:9200"]
#elasticsearch.username: "kibana_system" #注意不能用elastic超管账号登录
#elasticsearch.password: "在es中设置kibana_system的密码"

在/mnt/elk/logstash/pipeline目录下创建logstash.conf文件,内容如下:

input {
  beats {
    port => 5044
  }
}
filter {
    grok {
        match => {
            "message" => "(?m)^\[%{INT:pid}\]%{SPACE}%{TIMESTAMP_ISO8601:createTime}%{SPACE}\[%{DATA:threadName}\]%{SPACE}%{LOGLEVEL:LEVEL}%{SPACE}%{JAVACLASS:javaClass}#(?<methodName>[a-zA-Z_]+):%{INT:linenumber}%{SPACE}-%{GREEDYDATA:msg}"
        }
    }  
}
output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]
    index => "test-log"
    user => "elastic"
    password => "XXXXXX"
  }
}

在/mnt/elk/logstash/config目录下创建logstash.yml文件,内容如下:

http.host: "0.0.0.0"
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.hosts: ["http://elasticsearch:9200"]
#xpack.monitoring.elasticsearch.username: "elastic"
#xpack.monitoring.elasticsearch.password: "在es中设置elastic的密码"

在/mnt/elk/filebeat/config目录下创建filebeat.yml文件,内容如下:

# 定义应用的input类型、以及存放的具体路径
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/logapp/*.log #日志输出地址
  tags: ["test-log"]
#============================= Filebeat modules ===============================
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: true
# ============================== logstash =====================================  
output.logstash:
  hosts: ["logstash:5044"]
  enabled: true

在/mnt/elk目录下创建docker-compose.yml文件,内容如下:

version: '3'
services:
  elasticsearch:
    image: elasticsearch:8.5.3  #镜像
    container_name: elasticsearch  #定义容器名称
    restart: always  #开机启动,失败也会一直重启
    privileged: true
    environment:
      - "cluster.name=elasticsearch" #设置集群名称为elasticsearch
      - "discovery.type=single-node" #以单一节点模式启动
      - "ES_JAVA_OPTS=-Xms512m -Xmx1024m" #设置使用jvm内存大小
    volumes:
      - /mnt/elk/es/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
      - /mnt/elk/es/data:/usr/share/elasticsearch/data #数据文件挂载
      - /mnt/elk/es/logs:/usr/share/elasticsearch/logs #日志文件挂载
      - /mnt/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - "9200:9200"
      - "9300:9300"
    networks:
      - elk_net
  kibana:
    image: kibana:8.5.3
    container_name: kibana
    restart: always
    privileged: true
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200 #设置访问elasticsearch的地址
    volumes:
      - /mnt/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - 5601:5601
    networks:
      - elk_net
  logstash:
    image: logstash:8.5.3
    container_name: logstash
    restart: always
    privileged: true
    volumes:
      - /mnt/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
      - /mnt/elk/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    ports:
      - 5044:5044
    networks:
      - elk_net
  filebeat:
    container_name: filebeat
    image: elastic/filebeat:8.5.3
    user: "root"
    depends_on:
      - elasticsearch
      - logstash
      - kibana
    restart: on-failure
    privileged: true
    volumes:
      - /mnt/elk/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml
      - /mnt/elk/filebeat/logs:/var/log/logapp
    networks:
      - elk_net
networks:
  elk_net:
    driver: bridge

3.3 启动docker-compose

#修改sysctl.conf配置,否则启动可能会报错
vim /etc/sysctl.conf
{
vm.max_map_count=262144
}
#刷新文件,使配置生效
sysctl -p
#进入ELK容器编排文件所在目录
cd /mnt/elk
#启动ELK容器编排
docker-compose up -d
#查看容器启动情况
docker ps
#进入es容器设置账号密码登录
docker exec -it elasticsearch /bin/bash 
#执行设置:elastic、apm_system、kibana_system、logstash_system、beats_system、remote_monitoring_user共6个用户账号密码
./bin/elasticsearch-setup-passwords interactive -u 'http://192.168.0.132:9200'
#退出容器
exit
#修改elasticsearch.yml配置文件开启密码校验
{
xpack.security.enabled: true
}
#重启es容器
docker restart elasticsearch
#修改kibana.yml配置文件使用密码登录es
{
monitoring.ui.container.elasticsearch.username: "kibana_system"
monitoring.ui.container.elasticsearch.password: "刚刚在es中设置kibana_system的密码"
}
#重启kibana容器
docker restart kibana
#安装json_lines插件
docker exec -it logstash /bin/bash
#进入bin目录
cd bin
logstash-plugin install logstash-codec-json_lines
#退出容器
exit
#修改
{
#xpack.monitoring.elasticsearch.username: "elastic"
#xpack.monitoring.elasticsearch.password: "在es中设置elastic的密码"
}
#重启logstash容器
docker restart logstash

【基于Docker-Compose安装ELK日志系统完整操作步骤】

四、访问Kinaba地址:http://192.168.0.132:5601

【基于Docker-Compose安装ELK日志系统完整操作步骤】
查看索引管理
【基于Docker-Compose安装ELK日志系统完整操作步骤】
往/mnt/elk/filebeat/logs添加日志文件test.log
【基于Docker-Compose安装ELK日志系统完整操作步骤】
【基于Docker-Compose安装ELK日志系统完整操作步骤】
进入视图管理器查看收集到的日志信息
【基于Docker-Compose安装ELK日志系统完整操作步骤】
【基于Docker-Compose安装ELK日志系统完整操作步骤】
【基于Docker-Compose安装ELK日志系统完整操作步骤】文章来源地址https://www.toymoban.com/news/detail-497954.html

到了这里,关于【基于Docker-Compose安装ELK日志系统完整操作步骤】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker-compose部署elk(8.9.0)并开启ssl认证

    这里做了端口映射以及挂载数据卷。 1.使用docker-compose命令部署 部署前需要先将挂载的数据卷注释掉,用于拷贝配置文件到本地磁盘 创建所需目录,拷贝配置文件到本地,并设置读写权限为 777 修改jvm参数(作者电脑配置不够高,所以需要进行修改) 3.1 修改elasticsearch的jvm参

    2024年02月08日
    浏览(27)
  • 麒麟V10系统离线安装docker和docker-compose

            在银河麒麟高级服务器操作系统V10SP2版(x86)服务器上运行应用需要安装docker和docker-compose环境,原来服务器有外网环境,直接yum安装即可,非常方便。但是现在遇到了服务器不能上外网,只能离线安装的场景。笔者在网上查询了很多方法,但是都遇到了各种各样的问题

    2024年02月02日
    浏览(30)
  • 安装银河麒麟linux系统docker(docker-compose)环境,注意事项(一定能解决,有环境资源)

    故障1:如果运行docker-compose up 报“Cannot create redo log files because data files are corrupt or the database was not shut down cleanly after creating the data files”是没有安装下面的依赖包,记得安装依赖包,如下图所示 故障2:如果运行docker-compose up 报“–initialize specified but the data directory has files i

    2024年01月17日
    浏览(34)
  • 基于docker-compose安装nacos、redis、mysql、rabbitmq、pgsql,并且上传自己的项目到portainer

    目录 一、Linux环境配置 二、Docker、docker-compose 1、docker安装 2、Docker-Compose 安装    1、基于docker-compose安装nacos、redis、mysql、rabbitmq、pgsql    2、执行命令 3、配置openjdk:8 4、配置自己的项目 5、nacos无默认密码问题 1、配置静态IP wondows+r,输入cmd——》ipconfig  Linux上输入cd /

    2024年02月10日
    浏览(37)
  • (实战)docker-compose部署分布式日志方案EFK(Elasticsearch+Fluentd+Kibana)

    目录 背景 技术架构 部署安装 环境准备 配置Logback并模拟产生日志 制作fluentd镜像 运行docker-compose 效果展示         在现代的软件开发和运维领域,监控和日志管理是至关重要的任务。随着应用程序规模的扩大和分布式系统的普及,有效地跟踪和分析日志数据成为了挑战

    2024年02月03日
    浏览(29)
  • 使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)

    ELK 是指 Elasticsearch、Logstash 和 Kibana 这三个开源软件的组合。 Elasticsearch 是一个分布式的搜索和分析引擎,用于日志的存储,搜索,分析,查询。 Logstash 是一个数据收集、转换和传输工具,用于收集过滤和转换数据,然后将其发送到 Elasticsearch 或其他目标存储中。 Kibana 是一个数

    2024年01月20日
    浏览(40)
  • 【Docker-compose】基于Docker-compose创建LNMP环境并运行Wordpress网站平台

    参见使用Docker构建LNMP环境并运行Wordpress网站平台 Docker-Compose将所管理的容器分为三层,分别是 项目(project)、服务(service)以及容器(container) 。 Docker-Compose运行目录下的所有文件组成一个项目, 若无特殊指定项目名即为当前目录名 。 一个工程当中可包含多个服务,每个

    2024年02月15日
    浏览(38)
  • 【docker 安装】 与【docker-compose 安装】

    不同的操作系统需要不同的docker安装文件:具体下载位置: Docker: https://download.docker.com/linux/static/stable/ docekr-compose:https://github.com/docker/compose/releases 1. 验证客户机器是否有docker 和docker-compose 1.1 docker安装 将压缩包上传到服务器并解压 拷贝docker文件夹至/usr/bin/下 拷贝docker.se

    2024年02月15日
    浏览(37)
  • docker-compose安装

    一、安装docker(二进制方式) 1、下载docker二进制包 2、添加执行权限并解压 3、二进制文件放到/usr/bin下:mv docker/* /usr/bin/ 4、创建docker配置文件 5、docker 被systemd管理 6、重新加载配置文件: 7、启动并设为开机自启: 8、查看版本:docker --version 二、安装docker-compose 1、使用g

    2024年02月15日
    浏览(29)
  • docker-compose安装脚本

    portainer mysql rabbitMQ

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包