基于docker搭建单机版ELK日志采集系统

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 => 4560
    codec => 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.1
    container_name: elasticsearch
    environment:
      - "cluster.name=elasticsearch" #集群名称为elasticsearch
      - "discovery.type=single-node" #单节点启动
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m" #jvm内存分配为256MB
    volumes:
      - /home/images/elk_single/elasticsearch/plugins:/usr/share/elasticsearch/plugins
      - /home/images/elk_single/elasticsearch/elasticsearch/data
    ports:
      - 9200:9200
  kibana:
    image: kibana:6.4.1
    container_name: kibana
    links:
      - elasticsearch:es #配置elasticsearch域名为es
    depends_on:
      - elasticsearch
    environment:
      - "elasticsearch.hosts=http://es:9200" #因为上面配置了域名,所以这里可以简写为http://es:9200
    ports:
      - 5601:5601
  logstash:
    image: logstash:6.4.1
    container_name: logstash
    volumes:
      - /home/images/elk_single/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
    depends_on:
      - elasticsearch
    links:
      - elasticsearch:es
    ports:
      - 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

 

 

        

搭建完成

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值