【微服务】日志搜集elasticsearch+kibana+filebeat(单机)

日志搜集es+kibana+filebeat(单机)
日志直接输出到es中,适用于日志量小的项目
基于7.17.16版本

主要配置在于filebeat, es kibana配置改动不大

环境部署

es kibana单机环境部署


解压即可
常见报错,百度即可。

记录一个今天碰到的错误,
es可以正常启动,但是Head插件访问索引,点不了
这块会无法点击
在这里插入图片描述

org.elasticsearch.ElasticsearchException: not all primary shards of [.geoip_databases] index are active

解决

#增加配置elasticsearch,yml
#关闭geoip数据库的更新 重启即可
ingest.geoip.downloader.enabled: false

访问es ip:9200
在这里插入图片描述
访问Kibana
ip:5601
在这里插入图片描述

filebeat

全部配置

filebeat.inputs:
# 采集多个服务的日志,配置多个数组即可,
- type: logid: kw_serverenabled: truepaths:# 多个目录配置,配置多个数组元素即可,不知道filebeat是否支持多级目录匹配 /**/*.log- /usr/local/kw-microservices/*.log- /usr/local/nginx/*.log# 设置fields,标记此日志 注意字段区分,方便后面添加索引fields:app: kw_server# 日志首行匹配方式  multiline.type: pattern  multiline.pattern: '^\d{4}-\d{2}-\d{2}'multiline.negate: truemultiline.match: after  
# ============================== Filebeat modules ==============================filebeat.config.modules:# Glob pattern for configuration loadingpath: ${path.config}/modules.d/*.yml# Set to true to enable config reloadingreload.enabled: false# Period on which files under path should be checked for changes#reload.period: 10s# ======================= Elasticsearch template setting =======================
setup.ilm.enabled: false                    # 如果要创建多个索引,需要将此项设置为 false# 这块的配置还不太懂,貌似是为了使用自定义索引模版用的,貌似这块的配置目前是没什么用的,我没有在es中创建索引模版
setup.template.name: kw_server_index            # 设置模板的名称
setup.template.pattern: kw_server-*         # 设置模板的匹配方式,索引的前缀要和这里保持一致
setup.template.overwrite: true                # 开启新设置的模板
setup.template.enabled: false                 # 关掉默认的模板配置
setup.template.settings:index.number_of_shards: 1#index.codec: best_compression#_source.enabled: false
# ================================== Outputs ===================================# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:# Array of hosts to connect to.hosts: ["localhost:9200"]index: kw_server-%{[fields.type]}-%{+yyyy.MM.dd}     # 设置索引名称,后面引用的 fields.type 变量。此处的配置应该可以省略(不符合下面创建索引条件的日志,会使用该索引)indices:                                             # 使用 indices 代表要创建多个索引- index: kw_server-log-%{+yyyy.MM.dd}       # 设置 日志的索引,注意索引前面的 station_log 要与setup.template.pattern 的配置相匹配when.equals:                                     # 设置创建索引的条件:当 fields.type 的值等于 newframe-log-access 时才生效fields.app: kw_server# 这里是用的pipeline 过滤日志添加字段TraceId链路ID用得,之前是好使的,不知道为什么这版本不好使了,也没报错,就是字段加不上# 改用后面的processors.script方式处理了# pipeline: "extract-traceid-pipeline"      # ================================= Processors =================================
processors:# 添加字段,可以增加条件判断,具体看官网文档- add_fields:target: ""fields:label: "kw-microservices"# 日志过滤脚本,这里用得是js语法 # 处理时间问题,提取链路ID TID- script:lang: javascriptid: my_filter1tag: enablesource: function process(event) {var str= event.Get("message");var time =str.split(" ").slice(0,2).join(" ");event.Put("start_time",time);var pattern = /(TID:[\w]+)/; var match = str.match(pattern); if (match) {  event.Put("TID", match[1].slice(4));  }}# 格式化日期- timestamp:# 格式化时间值 给 时间戳 field: start_time# 使用我国东八区时间  解析log时间timezone: Asia/Shanghailayouts:- '2006-01-02 15:04:05'- '2006-01-02 15:04:05.999'test:- '2019-06-22 16:33:51'# 删除字段 - drop_fields:# when: 可以设置去除的条件#   conditionfields: ["log","host","input","agent","ecs","start_time"]  

filebeat timestamp字段值不对

两种解决方式

  • filebeat processors
  • es pipeline

processors.script

注意 这里面得javascript ,不能使用let 只能使用var
在source中,不要使用 #代码注释,会报错。

processors:- script:lang: javascriptid: my_filter1tag: enablesource: function process(event) {var str= event.Get("message");var time =str.split(" ").slice(0,2).join(" ");event.Put("start_time",time);}     - timestamp:# 格式化时间值 给 时间戳 field: start_time# 使用我国东八区时间  解析log时间,必须配置,否则在kibana中查看到的会多8小时timezone: Asia/Shanghailayouts:- '2006-01-02 15:04:05'- '2006-01-02 15:04:05.999'test:- '2019-06-22 16:33:51'- drop_fields:# when: 可以设置去除的条件#   conditionfields: ["log","host","input","agent","ecs","start_time"] 

es pipline

在es中创建pipline ,这个我没有试过,用的第一种方式
在这里插入图片描述

output.elasticsearch:# Array of hosts to connect to.hosts: ["localhost:9200"]index: kw_server-%{[fields.type]}-%{+yyyy.MM.dd}     # 设置索引名称,后面引用的 fields.type 变量。此处的配置应该可以省略(不符合下面创建索引条件的日志,会使用该索引)indices:                                             # 使用 indices 代表要创建多个索引- index: kw_crm_server-log-%{+yyyy.MM.dd}       # 设置 日志的索引,注意索引前面的 station_log 要与setup.template.pattern 的配置相匹配when.equals:                                     # 设置创建索引的条件:当 fields.type 的值等于 newframe-log-access 时才生效fields.app: kw_crm_serverpipeline: "在es中创建的pipeline名称"

添加字段

es pipline方式

之前使用7.13版本,这种方式是添加TID字段成功过的,今天使用了7.17版本不好使了,也不报错。

在开发工具中,添加模版

PUT /_ingest/pipeline/extract-traceid-pipeline
{"description" : "extract-traceid-pipeline",    "processors" : [{"grok" :{            "field" : "message",    "patterns" : ["\\[(?:TID:)%{DATA:TID}\\]"],//匹配增加忽略 表示当filebeat输入的数据没有该字段时,则不作任何处理便将文档ES,如果不配置则会抛出字段缺失的异常,文档不会正常写入。"ignore_missing": true,  "ignore_failure": true  }}]
}

查看创建的结果
GET /_ingest/pipeline/extract-traceid-pipeline

filebeat processors

增加script,具体的pattern ,要看实际的过滤字段的格式

processors:- script:lang: javascriptid: my_filter1tag: enablesource: function process(event) {var pattern = /(TID:[\w]+)/;  var match = log_message.match(pattern);  if (match) {  event.set("TID", match[1].slice(4));  }}

kibana

在开发工具中,有grok,可以测试日志的正则表达式
在这里插入图片描述

测试效果

创建索引模式
在这里插入图片描述

discover中,查询日志信息

  • 可以看到TID被加上了
  • message中的时间和timestamp是一致的
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改csdn的字体大小颜色

修改csdn的字体大小颜色 修改csdn的字体大小颜色 修改csdn的字体大小颜色一、设置字体与颜色格式二、修改字体格式三、修改字体颜色 一、设置字体与颜色格式 <font face"华文行楷" colorred size5>本字体是华文行楷&#xff0c;红色&#xff0c;5号大小</fo…

怎样获取power shell 的全部可用命令?2/5(篇幅有点长,分成5份)

在power shell 窗口中&#xff0c;有一个获取全部可用命令的命令&#xff1a;get-command&#xff0c;获取到的命令有1640多个&#xff0c;够学习了吧&#xff1f;那么&#xff0c;power shell 命令有哪些类别呢&#xff1f; PowerShell命令可以分为以下几类&#xff1a; Cmdl…

TS学习笔记二:基础类型及变量声明

本节介绍TypeScript中的基础类型及变量声明方式的说明。TypeScript支持与JavaScript几乎相同的数据类型&#xff0c;此外还提供了实用的枚举类型方便我们使用。基础类型包括&#xff1a;数字&#xff0c;字符串&#xff0c;结构体&#xff0c;布尔值等。 学习视频 TS学习笔记二…

java发送邮件(注:本章以163邮箱为例)

目录 前言 一邮件服务器与传输协议 二.发送邮件思路 2.1注册163邮箱: 2.2、打开邮箱服务获取授权码 三.代码实现邮件发送 3.1第三方jar包 3.2创建邮件工具类 3.3编写测试类 前言 电子邮件的应用非常广泛&#xff0c;例如在某网站注册了一个账户&#xff0c;自动发送一…

机器学习在什么场景下最常用-九五小庞

机器学习在多个场景中都有广泛的应用&#xff0c;下面是一些常见的应用场景&#xff1a; 自然语言处理&#xff08;NLP&#xff09;&#xff1a;如语音识别、自动翻译、情感分析、垃圾邮件过滤等。数据挖掘和分析&#xff1a;如市场分析、用户画像、推荐系统、欺诈检测等。智能…

你不得不知道的常用 Git 命令

最近在学习的时候发现 git 命令没有自己想象中那么简单&#xff0c;特此做一期 《 常用 Git 命令 》&#xff0c;不仅是给掘友分享&#xff0c;也能巩固自己学到的知识。 在此向大家推荐一个学习 git 指令的小游戏 Learn Git Branching&#xff0c;以通关的方式进行学习&#…

2024年【高处安装、维护、拆除】考试题及高处安装、维护、拆除模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 高处安装、维护、拆除考试题是安全生产模拟考试一点通总题库中生成的一套高处安装、维护、拆除模拟试题&#xff0c;安全生产模拟考试一点通上高处安装、维护、拆除作业手机同步练习。2024年【高处安装、维护、拆除】…

电脑的任务栏怎么恢复到底下?简单的4个方法帮你解决!

“我在使用电脑的时候突然发现电脑底部的任务栏不见了&#xff0c;有什么方法可以将任务栏恢复到底下吗&#xff1f;快给我出出主意吧&#xff01;” 在使用电脑时&#xff0c;我们可能会发现电脑的任务栏跑到屏幕顶部或消失的情况。这不仅影响了我们的使用体验&#xff0c;还可…

如何使用左移方法优化性能测试

开发周期早期阶段的性能测试&#xff08;左移方法&#xff09;可以让产品提供更好的性能和更高的投资回报率。查看如何使用左移方法优化性能测试。 每一次冲刺都至关重要&#xff0c;并且做出的决策速度快如闪电。为了促进快速反馈过程&#xff0c;测试团队必须在很短的时间内…

JS逆向实战案例1——某房地产url动态生成

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、 反爬分析 url&#xff1a;aHR0cHM6Ly9uZXdob3VzZS4wNTU3ZmRjLmNvbQ 该站点项目url通过点击JS生成&#xff0c;project_id与生成后…

mysql清空并重置自动递增初始值

需求&#xff1a;当上新项目时&#xff0c;测试环境数据库导出来的表id字段一般都有很大的初始递增值了&#xff0c;需要重置一下 先上代码&#xff1a; -- 查看当前自动递增值 SHOW CREATE TABLE table_name; -- 重建自动递增索引&#xff08;可选&#xff09; ALTER TABLE t…

Spring - 如何控制多个 AOP 切面执行顺序?

众所周知&#xff0c;Spring 声明式事务是基于 AOP 实现的&#xff0c;那么&#xff0c;如果我们在同一个方法自定义多个 AOP&#xff0c;我们如何指定他们的执行顺序呢&#xff1f; 三种解决方案 1、通过实现 org.springframework.core.Ordered 接口 Component Aspect S…

Vue-13、Vue绑定css样式

1、绑定css样式字符串写法&#xff0c;适用于&#xff1a;样式的类名不确定 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>绑定css样式</title><!--引入vue--><script type"tex…

上海市委网信办技术沙龙|美创科技分享数据流动下的安全应对

为有效提升上海市党政机关和重点单位的技术能力与水平&#xff0c;1月11日&#xff0c;上海市委网信办组织开展以“数据安全治理与合规流动经验分享”为主题的第三十二期网络安全技术沙龙。全市26家党政机关和重点单位相关网络安全技术人员参加此次活动。 美创科技作为上海市委…

关于git删除仓库中原本应该忽略的文件的研究

开门见山&#xff0c;先抛出一个结论&#xff1a; 任何被提交到远程仓库中的数据&#xff0c;都不能被彻底删除&#xff0c;只要提交上去了&#xff0c;就会永远留存。 任何被提交到远程仓库中的数据&#xff0c;都不能被彻底删除&#xff0c;只要提交上去了&#xff0c;就会…

三、04 nginx负载均衡

目录 简介1、准备三台主机且都安装了ngix2、先配置第一个服务主机配置文件nginx.conf制作页面写入页面内容检测语法&重启nginx查看第一个服务器再用同样样的方法 搭建第一个web 服务即可可以使用scp 直接复制 第一个web 服务器的文件配置文件第二个页面的 html 代码 配置代…

分别取出一个时间序列中的年份,月份和日期

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 只留下时间序列中 各行元素的年、月或日 结果的数据类型是序列 Series.dt.year Series.dt.month Series.dt.day [太阳]选择题 以下关于代码输出结果的说法中正确的是? import pandas as pd ts…

“超人练习法”系列09:耶克斯–多德森定律

01 你现有水平和学习风格 搞明白自己是个大事&#xff0c;搞不明白就糊涂一辈子。 首先&#xff0c;要弄清楚自己现在是个啥水平&#xff0c;有啥技能可以拿出来的&#xff0c;然后再定个目标&#xff0c;知道自己想往哪方面努力。 你擅长的学习方式是啥呢&#xff1f;是那种…

第十五届蓝桥杯单片机组备赛——独立键盘矩阵键盘

文章目录 一、按键原理二、独立键盘&矩阵键盘2.1 独立按键2.2 矩阵键盘 一、按键原理 原理很简单&#xff0c;当我们没有按下SW2时&#xff0c;由于上拉电阻得作用&#xff0c;使得输入引脚得信号为高电平&#xff0c;当按下按键后&#xff0c;引脚直接接地&#xff0c;输入…

虹科分享 | PCAN工具:强大的CAN通讯解决方案,你了解多少?

导读&#xff1a;在当今的汽车和工业自动化领域&#xff0c;可靠的通讯系统至关重要&#xff0c;PCAN工具为这些应用提供了强大的支持。本文将介绍PCAN工具的功能、应用和优势&#xff0c;以帮助您根据实际需求选择合适的工具和配件。 PCAN 网络允许 PCAN 应用程序&#xff08…