应用日志集成到ElasticSearch

1、阿里云sls平台集成日志

阿里sls集成日志步骤

2、filebeat 收集到指定es

安装docker容器

Docker安装

拉取镜像:

docker pull elastic/filebeat:7.5.1

启动:

docker run -d --name=filebeat elastic/filebeat:7.5.1

拷贝容器中的数据文件到宿主机:

mkdir -p /data/elk7
docker cp filebeat:/usr/share/filebeat /data/elk7/

设置权限

chmod 777 -R /data/elk7/filebeat
#go-w: 这个命令表示去掉文件的“组”和“其他用户”的写权限。其中,
#g 代表组权限,o 代表其他用户权限,-w 表示去掉写权限。
chmod go-w /data/elk7/filebeat/filebeat.yml

配置filebeat

vim /data/elk7/filebeat/filebeat.yml

修改样例如下:

filebeat.inputs:- type: logenabled: truepaths:- /var/log/*.logfields:AppId: "springbootadmin"ENV: "DEV"fields_under_root: truetags: ["服务ip地址自定义其他", "boot"]json.keys_under_root: true- type: logenabled: truepaths:- /java/*.logfields:AppId: "live-admin"ENV: "DEV"fields_under_root: truetags: ["服务ip地址自定义其他", "live"]json.keys_under_root: trueprocessors:- timestamp:field: "time"timezone: "Asia/Shanghai"layouts:- "yyyy-MM-dd HH:mm:ss.SSS"output.elasticsearch:hosts: 'es:9200'username: "elastic"password: "elastic"indices:- index: "spring-boot-admin-%{+yyyy.MM}"when.contains:tags: "boot"- index: "live-admin-%{+yyyy.MM}"when.contains:tags: "live"setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0

日志输入源

  • 使用 filebeat.inputs
    部分定义了两个日志输入源。每个输入源监视不同路径下的日志文件,并根据路径指定的类型和字段进行处理。其中,第一个输入源监视
    /var/log/.log 路径下的日志文件,用于收集 Spring Boot Admin 应用的日志;第二个输入源监视
    /java/
    .log 路径下的日志文件,用于收集 Live Admin 应用的日志。

日志标签:

  • 在每个输入源的 tags
    配置中,使用了一组自定义的标签。这些标签通常用于标识日志的来源或类型。在这个配置中,每个输入源都定义了自己的标签,以便后续根据标签将日志发送到不同的索引中。

Elasticsearch 输出

  • 在 output.elasticsearch 部分指定了 Elasticsearch
    的地址和认证信息,并配置了索引的模板。根据不同的标签,将日志发送到不同的索引中。在这个配置中,根据标签 “boot” 将 Spring
    Boot Admin 的日志发送到名为 spring-boot-admin-%{+yyyy.MM} 的索引中,根据标签 “live” 将
    Live Admin 的日志发送到名为 live-admin-%{+yyyy.MM} 的索引中。

Elasticsearch 索引设置

  • 在 setup.template.settings 部分配置了 Elasticsearch
    索引的一些设置,包括分片数和副本数。这些设置可以优化 Elasticsearch 索引的性能和可用性。

删除之前的容器:

docker rm -f filebeat

再重启启动:

docker run   --name=filebeat --restart=always \-v /data/elk7/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /var/log/springboot/:/var/log/springboot/ \
-v /data/log/live-admin/logs/:/var/log/live-admin/logs/ \
-d  elastic/filebeat:7.5.1

排查问题命令

docker logs filebeat

进入容器:

docker exec -it filebeat /bin/bashdocker exec -it filebeat /bin/sh

nginx的日志采集

如果要采集nginx的日志的话需要设置nginx日志格式

#修改nginx.conf,在http 、https中设置日志格式
#添加 log_format  main 
user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;worker_rlimit_nofile 10240;
events {worker_connections  10240;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;server_tokens off;proxy_hide_header X-Powered-By;proxy_hide_header Server;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;proxy_connect_timeout     30000;keepalive_timeout  30000;client_max_body_size 100m;client_header_buffer_size 512k;large_client_header_buffers 4 512k;#gzip  on;include /etc/nginx/conf.d/*.conf;
}

在**filebeat.inputs:**新增一个log

- type: logenabled: truepaths:- /var/log/nginx/access.logfields:AppId: "nginx"ENV: "DEV"fields_under_root: truetags: ["ip","nginx"]json.keys_under_root: true

在**indices:**下新增一个index

 - index: "nginx-%{+yyyy.MM}"when.contains:tags: "nginx"

设置命令行中执行 Nginx 相关的命令时不输入完整路径

export PATH=/usr/sbin:/usr/local/nginx/sbin:$PATH
  • /usr/sbin 目录通常包含系统管理和维护的命令,例如一些系统管理工具和服务程序的启动脚本等。
  • /usr/local/nginx/sbin 目录包含了 Nginx 服务器的可执行文件,包括启动 Nginx 的命令 nginx。

通过将这两个目录添加到 PATH 中,可以方便地在命令行中直接执行 nginx 命令来启动或管理 Nginx 服务器,而不必输入完整的路径。

再次删除容器重新启动,把nginx日志也挂在上去

docker run  --name=filebeat --restart=always \
-v /data/elk7/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /var/log/springboot/:/var/log/springboot/ \
-v /data/log/live-admin/logs/:/var/log/live-admin/logs/ \
-v /var/log/nginx/:/var/log/nginx/ \
-d  elastic/filebeat:7.5.1

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

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

相关文章

【C++航海王:追寻罗杰的编程之路】stack

目录 1 -> stack的介绍和使用 1.1 -> stack的介绍 1.2 -> stack的使用 1.3 -> stack的模拟实现 1 -> stack的介绍和使用 1.1 -> stack的介绍 stack的文档介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中&#xff0c…

零基础机器学习(5)之线性回归模型的性能评估

文章目录 线性回归模型的性能评估1.举例1-单一特征2.举例2-多特征 线性回归模型的性能评估 评估线性回归模型时,首先要建立评估的测试数据集(测试集不能与训练集相同),然后选择合适的评估方法,实现对线性回归模型的评…

设计模式——模板方法模式封装.net Core读取不同类型的文件

1、模板方法模式 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 特点:通过把不变的行为搬移到超类,去除子类中重复的代…

css的transition详解

CSS的transition属性是一个简写属性,用于设置四个过渡效果属性,以在元素的状态改变时创建平滑的动画效果。这四个属性分别是: transition-property: 定义应用过渡效果的CSS属性名称。当指定的CSS属性改变时,过渡效果将…

【保姆级讲解Linux常见命令】

🌈🌈🌈🌈欢迎 🌈🌈🌈 🎉👍点赞⭐评论⭐收藏🎉 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让…

力扣---零钱兑换---动态规划

思路: 这是一道典型的动态规划问题(希望下次不用提示,能直接认出来):我将g[i]定义为总金币为i所需的最少硬币个数。所以递推公式可以表示为:g[i]min(g[i-1],g[i-2],g[i-5])1,也就是g[i]min(g[i-…

类似于 FastAdmin的快速后台开发框架都有哪些

类似于FastAdmin,能够根据数据表直接生成程序、语言包和界面的框架,确实存在一些其他的选项。以下是一些推荐: ThinkPHP框架的扩展与工具:除了FastAdmin,ThinkPHP作为一个流行的PHP框架,有很多扩展和工具可…

【算法】棋盘(模板题)

小蓝拥有 nn 大小的棋盘,一开始棋盘上全都是白子。 小蓝进行了 m 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。 请输出所有操作做完后棋盘上每个棋子的颜色。 输入格式 输入的第…

【Python音视频技术】玩AI视频创作引发写Python音视频技术系列文章1---视频添加字幕

最近对视频创作感兴趣, 详情见之前写的几篇文章。 【AI应用】模仿爆款视频二次创作短视频操作步骤 【人工智能】AI数字人视频演示 【人工智能】AI视频二次创作演示 作为程序员出身的我,看到一些功能, 我都有猎奇的习惯, 想着自己用什么技…

js数据流详细讲解

文章目录 单向数据流单向数据流示例: 双向数据流双向数据流示例: 延伸和扩展状态管理Redux 示例: 异步数据流异步操作示例(使用 async/await): 数据转换和处理数据处理示例(使用 lodash): 实时数…

【软件测试】探索和学习在模型中的软件测试

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-JIGESSc1ecUpVUnH {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

Hive自定义GenericUDF函数

Hive自定义GenericUDF函数 当创建自定义函数时,推荐使用 GenericUDF 类而不是 UDF 类,因为 GenericUDF 提供了更灵活的功能和更好的性能。以下是使用 GenericUDF 类创建自定义函数的步骤: 编写Java函数逻辑:编写继承自 GenericUDF…

七种查找方式(Java)

一、基本查找 也叫做顺序查找 说明:顺序查找适合于存储结构为数组或者链表。 基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍历到的结点与要查找的值相比较&#xff…

数字功放VS模拟功放,选择适合你的音频解决方案

数字功放和模拟功放是音频系统中常用的两种功放技术,适用于不同的音频应用,都具有各自的优势和特点。本文将为您详细介绍数字功放和模拟功放的差异,并帮助您找到适合自己的音频解决方案。 1、数字功放是一种利用数字信号处理技术的功放。它将…

Unity:2D

目录 1. 简介 2. 2D Sorting 3. 9-slicing Sprites 3.1 9-slicing and Colliders 4. Sprite Renderer 5. Sprite Creator 6. Sprite Editor 6.1 Slice 6.1 Resize polygons 6.2 Custom Outline 6.3 Custom Physics Shape 6.4 Secondary Textures 6.5 Data Provider…

基础:TCP四次挥手做了什么,为什么要挥手?

1. TCP 四次挥手在做些什么 1. 第一次挥手 : 1)挥手作用:主机1发送指令告诉主机2,我没有数据发送给你了。 2)数据处理:主机1(可以是客户端,也可以是服务端)&#xff0c…

常见六大WEB安全问题

一、XSS跨站脚本攻击 1.Cross-Site Scripting(跨站脚本攻击)简称 XSS(因为缩写和 CSS重叠,所以只能叫 XSS),是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行…

错误groupadd: cannot open /etc/group的解决方法

今天在客户的服务器上安装mysql创建用户时遇到了groupadd: cannot open /etc/group错误,记录一下错误解决方法。 该错误的原因是因为对系统的关键文件进行了锁定,防止篡改,可以通过以下命令查看是否锁定: lsattr /etc/group 显…

力扣---全排列---回溯

思路: 递归做法,一般会有visit数组来判断第 i 位是否被考虑了。我们先考虑第0位,再考虑第1位,再考虑第2位...dfs函数中还是老套路,先判定特殊条件,再从当下的角度(决定第 j 位是哪个元素&#x…

Java 枚举(超详细讲解)

Java语言的强大之处在于它提供了多种多样的类库,从而大大提高了程序的编程效率和质量。 一、枚举 事先考虑到某一变量可能的取值,尽可能用自然语言忠表意清楚的单词来表示它的每一个值,用这中思路定义的类型被称为枚举类型。 枚举事由一组固…