若依cloud -【 100 ~ 103 】

100 分布式日志介绍 | RuoYi

        分布式日志就相当于把日志存储在不同的设备上面。比如若依项目中有ruoyi-modules-file、ruoyi-modules-gen、ruoyi-modules-job、ruoyi-modules-system四个应用,每个应用都部署在单独的一台机器里边,应用对应的日志的也单独存储在一台机器里边。

        为了能够同时查看这四台机器日志,需要把这些日志进行收集汇总、集中化管理。然后使用一个控制台统一管理,我们就可以查询到所有的日志。

        技术支撑:ELK = Elasticsearch + Logstash + Kibana。

  1. Elasticsearch:搜索引擎
  2. Kibana:免费的web界面,可以界面中查看日志。
  3. Logstash:每个应用里都要安装一个Logstas,用于收集各个微服务模块的日

        工作原理:

  1. 3个微服务ABC
  2. ABC通过Logstash把日志发送到Elasticsearch里面
  3. 通过Kiana进行日志的图形化搜索

101 分布式日志(ELK)的安装与下载 | RuoYi

提示

        如果觉得官网下载慢,可以使用我分享的网盘地址:         https://pan.baidu.com/s/1E9J52g6uW_VFWY34fHL6zA 提取码: vneh

1、Elasticsearch

(1)安装

  • 解压到相应目录
tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz -C /usr/local
  • 修改配置
cd /usr/local/elasticsearch-7.10.2/config/
vim elasticsearch.yml
node.name: node-1
path.data: /usr/local/elasticsearch-7.10.2/data
path.logs: /usr/local/elasticsearch-7.10.2/logs
# 本机
network.host: 127.0.0.1
# host,这里允许所有的都可以访问
http.host: 0.0.0.0
# 端口
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
  • 创建es用户 因为ElasticSearch不支持Root用户直接操作,因此我们需要创建一个es用户(es的限制,不支持root用户直接操作):
# 创建用户
useradd es
# 分配权限
chown -R es:es /usr/local/elasticsearch-7.10.2

(2)启动

  • 切换用户成es用户进行操作
su - es
# 前台启动
/usr/local/elasticsearch-7.10.2/bin/elasticsearch
# 关闭防火墙
systemctl stop firewalld 
  • 后台启动
# 后台启动
/usr/local/elasticsearch-7.10.2/bin/elasticsearch -d 
# 关闭防火墙
systemctl stop firewalld 

在浏览器打开9200端口地址: (http://120.78.129.95:9200/ ),如果出现了下面的信息,就表示已经成功启动了 :

Elasticsearch

2、Logstash

(1)安装

  • 解压到相应目录
tar -zxvf logstash-7.10.2.tar.gz -C /usr/local
  • 新增配置文件(日志收集配置)
cd /usr/local/logstash-7.10.2/bin
vim logstash-elasticsearch.conf
input {stdin {}
}
output {elasticsearch {# 日志转发到es# es的ip和端口hosts => '120.78.129.95:9200'}stdout {# 日志使用默认的codec => rubydebug}
}

(2)启动

# 复制配置文件
cp logstash-elasticsearch.conf /usr/local/logstash-7.10.2/bin
# 进入bin目录
cd bin
# 执行以下命令后会卡住,可以暂时不用管,继续去安装Kibana
./logstash -f logstash-elasticsearch.conf

 3、kibana

(1)安装

  • 解压到相应目录
tar -zxvf kibana-7.10.2-linux-x86_64.tar.gz -C /usr/local
mv /usr/local/kibana-7.10.2-linux-x86_64 /usr/local/kibana-7.10.2
  • 修改配置
cd /usr/local/kibana-7.10.2/config
vim kibana.yml
# kibana默认的端口是5601
server.port: 5601 
# 允许所有的用户(ip)去访问
server.host: "0.0.0.0" 
# 这里是个数组([元素]),因此可以在此配置多个
# es的ip地址120.78.129.95,9200为es的端口
elasticsearch.hosts: ["http://120.78.129.95:9200"] 
kibana.index: ".kibana"
  • 授权es用户
chown -R es:es /usr/local/kibana-7.10.2/

(2)启动

  • 切换用户成es用户进行操作
su - es
/usr/local/kibana-7.10.2/bin/kibana 
  • 后台启动
/usr/local/kibana-7.10.2/bin/kibana &

在浏览器打开5601端口地址: (http://120.78.129.95:5601/ ),如果出现了下面的信息,就表示已经成功启动了 

kibana

3、注意:正常情况下,ES应该是单独的一台机器,Kibana是单独的一台机器,而Logstash跟着服务去走的(一起在一台机器)。

102 Kibana中文(页面)配置 | RuoYi

config/kibana.yml添加,并重启,测试:http://192.168.32.35:5601:

i18n.locale: "zh-CN"

103 分布式日志收集 | RuoYi

   对应服务器安装logstash(实际上每台服务器的都需要安装logstash),配置(过滤)规则(自定义日志收集规则),例如新建logstash-apache.conf(/usr/local/logstash-7.10.2/bin/logstash-apache.conf):

input {file {# 从这个路径里面扫描” sys开头,.log结尾 ”的# 去” /log/** ”里面收集path => "/home/ruoyi/logs/sys-*.log"start_position => beginningsincedb_path => "/dev/null"codec => multiline {# 时间格式# 按照时间格式去给它做对应的编排pattern => "^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"negate => trueauto_flush_interval => 3what => previous}}
}# 过滤条件:过滤匹配一下对应的文件
# 可以自己加多个文件,这里就sys-info、sys-error这两个文件
filter {# path包含infoif [path] =~ "info" {# 读取"sys-info"文件mutate { replace => { type => "sys-info" } }grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}date {match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]}# path包含error# 读取" sys-error "文件} else if [path] =~ "error" {mutate { replace => { type => "sys-error" } }} else {# 否则的话就是随机的mutate { replace => { type => "random_logs" } }}
}output {elasticsearch {hosts => '120.78.129.95:9200'}stdout { codec => rubydebug }
}
  • 把一些日志文件放到扫描目录" /home/ruoyi/logs ":
  • 启动logstash,logstash根据匹配(过滤)规则开始加载,如果匹配成功,那么logstash就会把对应的日志文件(sys-xxx.logs)的数据给上报到这个ES里面去:
# -f后面跟着配置规则文件的名称(可以是多个)
./logstash -f logstash-apache.conf
  • 通过kibana(菜单 》Discover子菜单 》创建索引模式)可视化检索各个服务日志数据。并且可以搜索,页面会对应地高亮那些搜索关键字。并可以展示哪个时间,有有多少数量的日志: 

    kibana

  • 结论:相当于logstash收集日志并传到ES里边,然后再通过kibana就能直接查询了。所以把所有的日志都统计过来了以后,同时有kibana控制台去找的话就很清晰、方便去定位问题。

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

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

相关文章

springboot如何接入netty,实现在线统计人数?

springboot如何接入netty,实现在线统计人数? Netty 是 一个异步事件驱动的网络应用程序框架 ,用于快速开发可维护的高性能协议服务器和客户端。 Netty ​ 是一个 NIO 客户端服务器框架 ​,可以快速轻松地开发协议服务器和客户端等…

微表情识别API + c++并发服务器系统

微表情识别API c并发服务器系统 该项目只开源c并发服务器程序,模型API部分不开源 地址:https://github.com/lin-lai/-API- 更新功能 4.1版本 改用epoll实现IO多路复用并发服务器 项目介绍 本项目用于检测并识别视频中人脸的微表情 目标任务: 用户上…

【李沐深度学习笔记】线性代数

课程地址和说明 线性代数p1 本系列文章是我学习李沐老师深度学习系列课程的学习笔记,可能会对李沐老师上课没讲到的进行补充。 线性代数 标量 标量(scalar),亦称“无向量”。有些物理量,只具有数值大小&#xff0c…

基于微信小程序的校园失物招领系统设计与实现(源码+lw+部署文档+讲解等)

前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…

Qt创建线程(使用moveToThread方法创建子线程)

1.moveTothread方法: (1)要使用moveToThread方法必须继承与QObject类 (2)创建任务对象时不能指定父对象 例子: MyWork* work new MyWork(this); // error MyWork* work new MyWork; // ok (3&#…

北工大汇编题——分支程序设计

题目要求 信息检素程序设计:在数据区,有9个不同的信息,编号 0-8,每个信息包括20 个字符。从键盘接收 0-8 之间的一个编号,然后再屏幕上显示出相应编号的信息内容,按“q”键退出 完整代码 DATAS SEGMENTn0…

搭建SpringBoot项目三种方式(超详细版)

目录 一、官网下载压缩包解压 二、通过Idea脚手架搭建 三、Spring Boot项目结构 3.1 pom.xml文件 3.2 启动类 3.3 配置文件 四、通过创建Maven项目添加依赖 一、官网下载压缩包解压 接下来我们搭建一个SpringBoot项目,并引入SpringMVC的功能,首先…

自学WEB服务器搭建01-安装Express+Node.js框架完成Hello World!

一、前言,网站开发扫盲知识 1.网站搭建开发包括什么? 前端、后端(服务端)数据库 前端开发主要涉及用户界面(UI)和用户体验(UX),负责实现网站的外观和交互逻辑。前端开发…

多线程进阶:常见的锁策略、CAS

之前我们所了解的属于多线程的初阶内容。今天开始,我们进入多线程进阶的学习。 锁的策略 乐观锁 悲观锁 这不是两把具体的锁,应该叫做“两类锁” 乐观锁:预测锁竞争不是很激烈(这里做的工作可能就会少一些) 悲观锁…

3.6+铁死亡+WGCNA+机器学习

今天给同学们分享一篇3.6铁死亡WGCNA机器学习的生信文章“Identification of ferroptosis related biomarkers and immune infiltration in Parkinsons disease by integrated bioinformatic analysis”,这篇文章于2023年3月14日发表在BMC Med Genomics期刊上&#…

Mac电脑信息大纲记录软件 OmniOutliner 5 Pro for Mac中文

OmniOutliner 5 Pro是一款专业级的Mac大纲制作工具,它可以帮助用户更好地组织和管理信息,以及制作精美的大纲。以下是OmniOutliner 5 Pro的主要功能和特点: 强大的大纲组织和管理功能。OmniOutliner 5 Pro为用户提供了多层次的大纲结构&…

【QT】QT事件Event大全

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享QT中的事件Event技术,主要从QT事件流程和常用QT事件方法等方面展开,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易…

virtualbox安装linux虚拟机访问互联网(外网)的方法

virtualbox安装linux虚拟机访问互联网(外网)的方法 设置方法效果图 设置方法 效果图

Linux系统编程-文件

目录 1、系统编程介绍以及文件基本操作文件编程系统调用文件基本读写练习 2、文件描述符以及大文件拷贝文件描述符大文件拷贝对比试验 3、文件实战练习 1、系统编程介绍以及文件基本操作 系统编程是基于Linux封装好的一些函数,进行开发。 Linux文件信息属性在indo…

用AI解决量子学问题

3 人工智能用于量子力学 在这一部分中,我们提供了有关如何设计高级深度学习方法以有效学习神经波函数的技术评述。在第3.1节中,我们概述了一般情况下定义和解决量子多体问题的方法。在第3.2节中,我们介绍了学习量子自旋系统基态的方法。在第…

微信收款码费率0.38太坑了

作为一个有多年运营经验的商家,我本人在申请收款功能时曾经走过了不少弯路。我找遍了市面上的知名的支付公司,但了解到的收款手续费率通常都在0.6左右,最低也只能降到0.38。这个过程吃过不少苦头。毕竟,收款功能是我们商家的命脉&…

Java笔记三

包机制: 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。 包语句的语法格式为:pack pkg1[. pkg2[. pkg3...]]; 般利用公司域名倒置作为包名;如com.baidu.com,如图 导包: 为了能够…

Python学习 day01(注意事项)

注释 print语句 变量 数据类型的转换 运算符 / 的结果为浮点数。若// 的两边有一个为浮点数,则结果为浮点数,否则为整数。 字符串 7. 精度控制 8. input()

五、点击切换、滚动切换、键盘切换

简介 通过事件改变当前展示的信息组件,交互的事件有点击上下切换、鼠标轮动上下切换、键盘上下键切换。欢迎访问个人的简历网站预览效果 本章涉及修改与新增的文件:App.vue、public 一、鼠标点击上下箭头切换 <template><div class="app-background"…

python学习--类的浅拷贝与深拷贝

变量的赋值操作 只是形成两个变量&#xff0c;实际上还是指向同一个对象 浅拷贝 Python拷贝一般都是浅拷贝&#xff0c;拷贝时&#xff0c;对象包含的子对象内容不拷贝&#xff0c;因此&#xff0c;源对象与拷贝对象会引用同一个子对象 深拷贝 使用copy模块的deepcopy函数…