Docker搭建ELK日志采集服务及Kibana可视化图表展示

2023-11-11

架构

在这里插入图片描述

ES

docker network create elk

mkdir -p /opt/ELK/es/data

chmod 777 /opt/ELK/es

docker run -d --name elasticsearch --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /opt/ELK/es/plugins:/usr/share/elasticsearch/plugins -v /opt/ELK/es/data:/usr/share/elasticsearch/data elasticsearch:7.16.1

chmod 777 /opt/ELK/es/data && docker restart elasticsearch

访问:http://ip:9200 可看到ES节点信息


Logstash

log.conf
mkdir -p /opt/ELK/logstash/conf.d
cd /opt/ELK/logstash/conf.d
touch log.conf

编辑log.conf 新增内容如下

input {
  file {
    type => "sidetreelog"
    path => "/var/log/messages/core-1.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
    stat_interval => "5"
  }
  file {
    type => "sidetreelog"
    path => "/var/log/messages/core-2.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
    stat_interval => "5"
  }
}

filter {
  grok {
    # 自定义正则文件目录
    patterns_dir => ["/usr/share/logstash/pattern"]
    # 日志采集规则
    match => {"message" => "%{IP:node} %{INT:count}\.%{WORD:batch} %{SIDETREE:stage} %{NUMBER:time}"}
  }
  mutate{
    remove_field => ["@version","host","path"]
    #rename => ["@timestamp", "create_time"]
  }
}
output {
  if[type] == "sidetreelog"{
    #无法解析的json不记录到elasticsearch中
    if "_grokparsefailure" not in [tags] {
        elasticsearch {
            hosts => "192.168.4.151:9200" 
            index => "sidetree"
            document_type => "_doc"
        }
    }
  }
  stdout {
    codec => rubydebug
  }
}
logstash.yml
cd /opt/ELK/logstash
touch logstash.yml

编辑logstash.yml内容如下

path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
jvm.options

若需要设置Logstash的内存大小,则需要修改JVM配置,读取日志时文件较多会内存溢出,一般都需要修改默认配置

touch jvm.options

编辑jvm.options内容如下 修改为8G -Xms8g

## JVM configuration

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms8g
-Xmx8g

################################################################
## Expert settings
################################################################
##
## All settings below this section are considered
## expert settings. Don't tamper with them unless
## you understand what you are doing
##
################################################################

## GC configuration
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly

## Locale
# Set the locale language
#-Duser.language=en

# Set the locale country
#-Duser.country=US

# Set the locale variant, if any
#-Duser.variant=

## basic

# set the I/O temp directory
#-Djava.io.tmpdir=$HOME

# set to headless, just in case
-Djava.awt.headless=true

# ensure UTF-8 encoding by default (e.g. filenames)
-Dfile.encoding=UTF-8

# use our provided JNA always versus the system one
#-Djna.nosys=true

# Turn on JRuby invokedynamic
-Djruby.compile.invokedynamic=true
# Force Compilation
-Djruby.jit.threshold=0
# Make sure joni regexp interruptability is enabled
-Djruby.regexp.interruptible=true

## heap dumps

# generate a heap dump when an allocation from the Java heap fails
# heap dumps are created in the working directory of the JVM
-XX:+HeapDumpOnOutOfMemoryError

# specify an alternative path for heap dumps
# ensure the directory exists and has sufficient space
#-XX:HeapDumpPath=${LOGSTASH_HOME}/heapdump.hprof

## GC logging
#-XX:+PrintGCDetails
#-XX:+PrintGCTimeStamps
#-XX:+PrintGCDateStamps
#-XX:+PrintClassHistogram
#-XX:+PrintTenuringDistribution
#-XX:+PrintGCApplicationStoppedTime

# log GC status to a file with time stamps
# ensure the directory exists
#-Xloggc:${LS_GC_LOG_FILE}

# Entropy source for randomness
-Djava.security.egd=file:/dev/urandom
自定义正则表达式

可使用Kibana的 Grok Debugger工具测试正则日志提取的正确性

在这里插入图片描述

mkdir -p /opt/ELK/logstash/pattern
cd /opt/ELK/logstash/pattern
touch pattern
vim pattern

我这里自定义的正则如下

SIDETREE (create.+time|start processing batch at time|send transaction to blockchain at time|transaction is submitted at time|transaction is confirmed at time|batch processing is finished at time)

这里配置的正则在log.conf配置文件里面就可以使用了

启动Logstash服务
docker run -d --name logstash --net elk -u root -p 5044:5044 -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro -v /opt/ELK/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /opt/ELK/logstash/conf.d/:/usr/share/logstash/conf.d/ -v /opt/ELK/logstash/jvm.options:/usr/share/logstash/config/jvm.options -v /opt/ELK/logstash/pattern:/usr/share/logstash/pattern -v /root/DIF/sidetree/ion/logs:/var/log/messages  logstash:6.8.19

docker logs -f logstash //查看日志

这里是配置的读取/root/DIF/sidetree/ion/logs目录下的core-1.log和core-2.log文件,只要这2个文件有日志写入,就会自动读取并入库到ES中


Kibana

启动
docker run -d --name kibana --net elk -p 5601:5601 kibana:7.14.2
Grok Debugger: http://ip:5601/app/dev_tools#/grokdebugger
可视化图表

先在Kibana设置Index patterns
在这里插入图片描述
创建一个聚合柱状图可视化图表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker搭建ELK日志采集服务及Kibana可视化图表展示 的相关文章

随机推荐

  • yolov5 训练一半中断,如何重连

    resume python train py xxx resume last pt
  • 用ENVI为风云三号VIRR地表温度LST日产品添加头文件(地理信息)

    上一篇文章中我们介绍了怎么用ENVI查看风云三号VIRR地表温度LST日产品的属性 下面介绍怎么用ENVI将该产品从HDF格式转换成ENVI标准格式 2019 1 7更新 有小伙伴说头文件中的datum设置成unknown才可以和他的其他矢
  • 【Google drive】【Colab】引用同级下的.py文件

    ps 1 drive后稍等片刻左侧目录会刷新 2 上传文件格式为 ipynb能够直接打开编辑 py文件只读模式
  • 1-5、Lua函数

    1 5 Lua函数 文章目录 1 5 Lua函数 5 1 多返回值 5 2 可变参数 5 3 命名参数 函数有两种用途 1 完成指定的任务 这种情况下函数作为调用语句使用 2 计算并返回值 这种情况下函数作为赋值语句的表达式使用 语法 fu
  • ffmpeg批量转换ape为mp3

    1 新建一个txt文件 并复制如下代码进入 然后保存 echo off title cd d dp0 for a in ape do ffmpeg i sa y acodec libmp3lame aq 0 na mp3 pause 2 把
  • 批量重命名:删除文件名相同的部分或指定的部分

    本代码提供两个函数 1 用于批量重命名文件 重命名时 删除 路径 下的文件名中含有 重复名 的部分 重命名删除同义名 路径 重复名 例如 删除 Image001 png Image002 png Image003 png 中的 Image
  • [Python人工智能] 六.神经网络的评价指标、特征标准化和特征选择

    从本系列文章开始 作者正式开始研究Python深度学习 神经网络及人工智能相关知识 前五篇文章讲解了神经网络基础概念 Theano库的安装过程及基础用法 theano实现回归神经网络 theano实现分类神经网络 theano正规化处理 这
  • DS1302时钟模块

    DS1302结构原理图 DS1302涓流充电计时芯片实时时钟 日历和31字节的静态RAM 通过IO口与微机处理器通讯 该实时时钟 日历提供年月日和时分秒星期 还具备月份闰平年自动校正 其信息与外部的传输由CE I O和SCLk 串行时钟 决
  • 数据库聚合函数

    1 常用函数 常用函数这里就不过多的阐述和演示 大家感兴趣的话 可以去官网看 官网地址 MySQL Developer Zone 我们主要讲聚合函数 2 聚合函数 聚合函数是我们经常使用的函数 常用聚合函数名称 描述 1 count 计数
  • MySQL从安装到精通(多表)

    目录 1 创建练习环境 1 1创建一个部门表 1 2创建一个员工表 2 多表查询的分类 2 1mysql 表子查询 2 1 1什么是子查询 subquery sql 2 1 2 单行子查询 2 1 3多行子查询 2 1 2 多列子查询 2
  • 【python】如何把你的python包发布出去(pip install)

    python 如何把你的python包发布出去 pip install 介绍 实际上分为两步 打包 发布 我们要发布的网站是https pypi org 也就是用户通过pip install XXX 就可以安装你的包 1 通过setupto
  • python环境的安装(Windows)

    步骤一安装 打开python官网https www python org 点击Downloads 选择Windows进入后根据自己的电脑是32位还是64位 右击此电脑属性查看 选择相应的版本下载 注意 要选择Windows installe
  • 【2023硅谷数模笔试题】~ 题目及参考答案

    本章目录 0 前言 1 题目 答案 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 第十一题 声明 0 前言 哈喽 二舅 最近和你们一样 不断被鞭策 今天抽个小空给大家带来的是前几天做的一套笔试题 名称如标题
  • 谈谈tomcat的优化经验

    第一次写博客 搜集了很多的优化经验 然后自己归纳下来 大概有7条 没涉及到的欢迎大家补充 1 优化方法 加大tomcat使用的jvm的内存 具体操作 Tomcat默认可以使用的内存为128MB 可在配置文件或环境变量里增加使用内存 在配置文
  • IDEA创建Maven工程后卡死,问题分析及解决

    问题 同标题 IDEA创建Maven工程后卡死 网上收集经验后 大多数版本为2020及以后的问题 但应该是同样的问题 即archetype catalog xml文件太大源地址下载过慢 这里记录一下方便的解决方式 解决方法 提前将arche
  • IDEA 热部署插件 -- JRebel

    从idea找到设置Plugins插件 激活参考http www javatiku cn idea 51 html 服务器链接 http idea javatiku cn ad4bd706 15a3 4ecf b3e3 c7b6a64942b
  • GCC强大背后

    前记 经常浏览博客园的同学应该会觉得本文有标题党之嫌 这个标题的句式来自于MiloYip大牛的大作 C 强大背后 在此 向Milo兄致意 GCC 全称GNU Compiler Collection 是一套GNU开发的编译器环境 它的创始人便
  • ENVI监督分类及精度评价

    最近协助同学做了完整的监督分类数据 特此记录下来 对于ENVI监督分类 是每一个遥感从业者掌握的最基础的一个方法 但是完整的监督分类流程和精度评价 估计往往认识不够 所以以下的分享还是有点意义 监督分类 又称训练分类法 用被确认类别的样本像
  • 34岁,转行软件测试工程师后月薪8K,我仍然坚持转行!

    本人今年34岁 目前已成功转行软件测试工程师 月薪8K 对于很多人而言 我这个年纪转行不仅有些晚 还要担许多未知的职场风险 我深知自己这一路并不容易 以下就和大家分享一下我的转行经历吧 到了我这个年纪的人 大多都被社会这个大染缸染得面目全非
  • Docker搭建ELK日志采集服务及Kibana可视化图表展示

    架构 ES docker network create elk mkdir p opt ELK es data chmod 777 opt ELK es docker run d name elasticsearch net elk p 9