1. 说明

ELK主要由ElasticSearch、Logstash和Kibana三个开源工具组成

Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 是用Java 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。在elasticsearch中,所有节点的数据是均等的。

Logstash :数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。

Kibana :可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据 Elasticsearch、Logstash、Kibana 安装的版本必须保持一致,防止出现莫名情况

基于dokcer搭建单机版的ELK日志采集系统(基于6.4.1版本),主要是熟悉ELK架构和日志采集展示效果,并用简单的springboot项目展示配置过程

2. 安装docker和docker-compose。链接:docker安装​​​​​​​

3. 修改linux文件句柄数:因为es集群默认的进程句柄数需要至少为262144个,系统默认的是65535, 这里将默认的进程句柄数调大到262144个

[root@VM-4-9-centos home]# echo vm.max_map_count=262144  >>  /etc/sysctl.conf
[root@VM-4-9-centos home]# sysctl -p 

4.创建数据卷,配置文件目录,将生成的容器的配置映射到宿主机保存

mkdir -p /home/images/elk_single/elasticsearch/data  #创建Elasticsearch数据挂载路径
chmod 777 /home/images/elk_single/elasticsearch/data #设置操作权限
mkdir -p /home/images/elk_single/elasticsearch/plugins # 创建Elasticsearch插件挂载路径
mkdir -p /home/images/elk_single/logstash  # 创建Logstash配置文件存储路径
touch /home/images/elk_single/logstash/logstash.conf #创建Logstash配置文件

在logstash.conf里面添加一下配置内容

input {tcp {mode => "server"host => "0.0.0.0"port => 4560codec => json_lines}
}
output {elasticsearch {hosts => "es:9200"index => "logstash-%{+YYYY.MM.dd}"}
}

5. 创建elk的dokcer compose文件存储路径

 mkdir /home/images/elk_single/elk

编辑docker-compose.yml配置文件

vi /home/images/elk_single/elk/docker-compose.yml

内容如下

version: '3'
services:elasticsearch:image: elasticsearch:6.4.1container_name: elasticsearchenvironment:- "cluster.name=elasticsearch" #集群名称为elasticsearch- "discovery.type=single-node" #单节点启动- "ES_JAVA_OPTS=-Xms256m -Xmx256m" #jvm内存分配为256MBvolumes:- /home/images/elk_single/elasticsearch/plugins:/usr/share/elasticsearch/plugins- /home/images/elk_single/elasticsearch/elasticsearch/dataports:- 9200:9200kibana:image: kibana:6.4.1container_name: kibanalinks:- elasticsearch:es #配置elasticsearch域名为esdepends_on:- elasticsearchenvironment:- "elasticsearch.hosts=http://es:9200" #因为上面配置了域名,所以这里可以简写为http://es:9200ports:- 5601:5601logstash:image: logstash:6.4.1container_name: logstashvolumes:- /home/images/elk_single/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.confdepends_on:- elasticsearchlinks:- elasticsearch:esports:- 4560:4560

在docker-compose.yml路径下执行命令,该命令会下载yml文件中配置的镜像并启动

[root@VM-4-9-centos elk]# docker-compose up -d

在Logstash中安装json_lines插件

进入容器中

docker exec -it logstash /bin/bash

切换到/bin目录下执行如下命令,随后exit退出

logstash-plugin install logstash-codec-json_lines

10.查看是否创建成功,es端口是9200, kibana端口是5601

11. docker使用过程中常用的命令

docker ps  #查看运行的容器
docker ps -a  # 查看所有的容器
docker stop [容器ID]   # 停止容器
docker start [容器ID]   # 停止容器
docker restart [容器ID]   # 重启容器
docker rm [容器ID]  # 删除容器,运行中的容器无法删除 需要先删除
docker images   #查看所有镜像
docker rmi [镜像ID]  # 删除执行镜像
docker logs -f [容器ID]  #查看容器日志

12. 创建一个简单的springboot项目生成日志并展示

添加依赖

<!--集成logstash-->
<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>5.3</version>
</dependency>

logback.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration><include resource="org/springframework/boot/logging/logback/base.xml" /><appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><!-- logstash 输入地址  与logstash.conf 配置文件的input对应--><!-- 我这里的logstash相对地址是192.168.10.128 端口是logstash.conf input配置的端口 --><destination>192.168.10.128:4560</destination><encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" /></appender><root level="INFO"><appender-ref ref="LOGSTASH" /><appender-ref ref="CONSOLE" /></root></configuration>

运行springboot项目

13. 运行都正常后访问kibana页面 日志信息创建index pattern

搭建完成

基于docker搭建单机版ELK日志采集系统相关推荐

  1. 基于Docker搭建单机版Mesos/Marathon

    摘要: 本文介绍了基于Docker搭建单机版Mesos/Marathon的方法,Mesos/Marathon的所有组件均运行于单个容器中. GitHub地址: kiwenlau/single-meso ...

  2. 基于Docker搭建分布式消息队列Kafka

    本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示.本例搭建的 ...

  3. docker 启动容器的时候没-p 后面怎么加-p_基于Docker搭建基础自动化部署

           阅读本文约需要7分钟  大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下SpringBoot如何实现全链路调用 ...

  4. 树莓派4b学习笔记三--基于Ubuntu搭建Docker 和portainer,基于Docker 搭建Homeassistant、EMQX

    文章目录 一.基于Ubuntu搭建Docker和portainer 1.Docker简介 2.Ubuntu20.04安装Docker-ce 3.Ubuntu20.04安装Docker图形化界面port ...

  5. 基于docker 搭建mysql8.0主从复制

    如何基于docker搭建mysql8.0主从复制从而实现读写分离 前言 1. docker的安装与mysql8.0镜像的打包这里不做详细介绍.以后有时间再出详细教程.安装好docker运行环境拉去my ...

  6. 基于 Docker 搭建 ownCloud 个人云盘

    在我的博客上阅读 基于 Docker 搭建 ownCloud 个人云盘 官方文档 机翻气息贯穿全文~ 概述 配置: 公开端口 8080,允许 HTTP 连接. 使用单独的 MariaDB 和 Redi ...

  7. 基于Docker搭建私有镜像仓库

    通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是 ...

  8. nginx搭建文件服务器脚本,基于docker搭建nginx文件服务器的方法步骤

    1.在本机新建配置文件docker_nginx.conf server { listen 7070; server_name localhost; charset utf-8; location /f ...

  9. 基于docker搭建zookeeper集群、kafka集群(多台真机之间的集群)

    基于docker搭建zookeeper集群.kafka集群---二(多台真机之间的集群) https://blog.csdn.net/diebiao6526/article/details/10143 ...

  10. 基于docker搭建cephfs分布式文件

    目的 在一台机器上, 利用多块硬盘, 搭建一个cephfs文件系统. 具体来说就是1个mon, 1个mds, 1个mgr, 3个osd 注意 a. 使用vmware会很方便 b. 安装过程中会遇到很多 ...

最新文章

  1. Anaconda入门使用指南(二)
  2. psql where里有自定义函数慢_阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结...
  3. Pycharm安装工具包
  4. 记下来 关于InitCommonControls()
  5. 射灯安装方法图解_射灯更换安装方法图解
  6. python切换ip群发邮件_通过 python 把家里路由的 IP 发邮件给自己
  7. 机器人庄园作文_十年后的家乡作文精选8篇
  8. NSArray去除重复元素
  9. 人机对战五子棋(权值法)
  10. Linux修改配置文件(自动)
  11. 微信开放平台和公众平台的区别
  12. c程序设计语言k rpdf,《C程序设计语言》(KR)中文高清非扫描件
  13. 消防vr虚拟救援模拟教学软件开发
  14. 我对 大内核锁BKL 的理解
  15. db2自定义函数能返回几个参数_函数的定义、参数、返回值
  16. Java中字符串为什么不以\0结尾
  17. Maven仓库管理器Nexus的安装配置
  18. com.android.gms是什么,com.google.android.gms.cast的用途是什么?
  19. dct基 matlab,DCT 变换的基函数与基图像
  20. VBA典型的技巧与示例

热门文章

  1. java date 最小值_Java_Math/Date
  2. windows屏幕放大镜
  3. idea自动化部署Alibaba Cloud Toolkit
  4. mysql数据库实验4
  5. 提高项目39-电子词典
  6. 湖北广电机顶盒(九联HDC-2100K)安装第3方app保姆教程
  7. 拖库 洗库 撞库的概念
  8. mi5splus android9,小米5SPlus 安卓9.0 原生体验 LineageOS16.0 ROOT
  9. 常见计算机故障维修实验报告,实训报告12微机常见故障处理实训报告
  10. 安装deb软件包时出现Unknown media type in type **/** 的解决办法