若依cloud -【 100 ~ 103 】

news2024/11/24 3:45:56

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 => beginning
	sincedb_path => "/dev/null"
	codec => multiline {
      # 时间格式
      # 按照时间格式去给它做对应的编排
      pattern => "^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"
      negate => true
      auto_flush_interval => 3
      what => previous
    }
  }
}

# 过滤条件:过滤匹配一下对应的文件
# 可以自己加多个文件,这里就sys-info、sys-error这两个文件
filter {
  # path包含info
  if [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.coloradmin.cn/o/1034128.html

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

相关文章

数据结构-----堆(完全二叉树)

目录 前言 一.堆 1.堆的概念 2.堆的存储方式 二.堆的操作方法 1.堆的结构体表示 2.数字交换接口函数 3.向上调整(难点) 4.向下调整(难点) 5.创建堆 6.堆的插入 7.判断空 8.堆的删除 9.获取堆的根(顶)元素 10.堆的遍历…

Linux中sudo命令的添加和操作

使用 sudo分配权限 (1)修改/etc/sudoers 文件分配文件 # chmod 740 /etc/sudoers # vi /etc/sudoers 找到这行:root ALL(ALL) ALL, 在这行下面添加 xxx ALL(ALL) ALL (这里的xxx就是你的普通用户,而ruice就是我的普通用户 ) 编…

nginx部署多个项目

前言 实现在一台服务器上使用nginx部署多个项目的方法 查看并修改nginx安装的默认配置文件 在 Linux 操作系统中,Nginx 在编译安装时默认的配置文件路径是 /usr/local/nginx/conf/nginx.conf。 如果是通过发行版的包管理器安装,则默认的配置文件路径可能…

Cesium加载海量点数据

目录 项目地址实现效果实现方法 项目地址 https://github.com/zhengjie9510/webgis-demo 实现效果 实现方法 const pointCollection viewer.scene.primitives.add(new Cesium.PointPrimitiveCollection({ blendOption: Cesium.BlendOption.OPAQUE })); for (let longitude …

dToF 和iToF傻傻分不清楚? pmd flexx2 见你所不能见

在现下数字化越来越成熟的时代,「3D感知」无疑在生活中成为了一种基础、甚至必须的需求:从人手至少一台的智能手机,到居家生活常见的扫地机器人,再到高科技或医疗产业会使用的无人机或工业机器人,如今高度科技化和便捷的世界,处处都需要比肉眼更加强大的立体视角来进行可…

如何搭建Linux环境

W...Y的主页 😊 代码仓库分享 💕 当我们想要搭建一个Linux系统,我们应该怎么使用呢? 今天我就带领大家搭建Linux系统!!! 目录 Linux环境安装 双系统(不推荐) poww…

计算机毕设 图像识别-人脸识别与疲劳检测 - python opencv

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 这两年开始毕业设计和毕业…

14:00面试,14:06就出来了,问的问题过于变态了。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

【NAD NADPH; FMN FAD ; NMN -化学】

NAD Nicotinamide adenine dinucleotide nicotinamide 烟酰胺 NAD NADPH 烟酰胺腺嘌呤二核苷酸 nucleosidase Nicotinamide adenine dinucleotide NMN(烟酰胺单核苷酸)简介 NMN全名 nicotinamide mononucleotide,即 烟酰胺单…

【全国科普日,共筑眼健康】景远眼科科普志愿者服务队在行动

今年是第21个全国科普日,为深入贯彻落实新时代中国特色社会主义思想,针对不同群体的需求,践行科普为民,共创美好生活,9月14日至9月24日期间,景远眼科科普志愿者服务队把丰富多样的内容、常有常新的活动带到…

IP归属地应用的几个主要特点

作为一款优秀的IP地址定位工具,主题IP归属地的应用无疑是最好的选择之一。该应用可以将您需要查询的IP地址快速定位到所在的具体物理位置,并提供详细的地址和地图信息。接下来,让我们一起来看一看IP归属地应用的几个主要特点: 1. …

Python:求求按规范写我

B站|公众号:啥都会一点的研究生 写在前面 代码被阅读的次数远多于编写的次数 我们可能花费很多时间来编写一段代码,一旦完成后大概率就再不会重新写它。当这段代码不仅是自己用时,就得注意了,每次自己或其他人浏览,需…

2023.9.23(对这一年过去几个月的总结)

这个时间点杭州正在开亚运会,周六,大周,难得的大周,早上在公司健身房跑完步,就来工位看书了。 反思一下: 技术: 今年在技术学习上的目标,达成率是在太低,但看文章输出来…

tcp/ip协议2实现的插图,数据结构

(1)以上是插图第2章和3章 的 mbuf 与 ifnet 与 ifaddr 与 le_softc 与 sockaddr_dl结构体 谢谢

生信技巧 | GNU 并行操作

简介 有些分析需要很长时间,因为它在单个处理器上运行并且有大量数据需要处理。如果数据可以分成块并单独处理,那么问题就被认为是可并行化的。 数据并行情况 当文件的每一行都可以单独处理时 基因组的每条染色体都可以单独处理 组件的每个脚手架都可以单…

安全学习_开发相关_JavaEE过滤器监听器简单了解

文章目录 Web应用运行流程图 JavaEE-过滤器-Filter过滤器概述&作用过滤器相关安全测试场景 JavaEE-监听器-Listener监听器作用:监听器相关安全测试场景 过滤器和监听器,主要对安全测试有影响的是过滤器,监听器只是在对代码进行逻辑分析时…

【数学计算】使用mathematica计算圆周率π

【数学计算】使用mathematica计算圆周率 计算π的意义如何通过函数表示圆函数几何图形 计算圆周率 计算π的意义 在我们计算圆面积时,通常需要知道面积和已知变量之间的共性关系,以便能够将圆面积计算进行理论研究,以推广到所有的圆面积、周…

Golang代码漏洞扫描工具介绍——trivy

Golang代码漏洞扫描工具介绍——trivy Golang作为一款近年来最火热的服务端语言之一,深受广大程序员的喜爱,笔者最近也在用,特别是高并发的场景下,golang易用性的优势十分明显,但笔者这次想要介绍的并不是golang本身&a…

JMeter之脚本录制

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试) 前言: 对于一些JMeter初学者来说,录制脚本可能是最容易掌握的技能之一。…

C/C++开发,opencv阀值操作

目录 一、OpenCV-阀值操作 1.1阀值操作函数threshold 1.2threshold的操作类型 1.3Otsu算法 二、样例开发 2.1 Makefile 2.2 main.cpp 2.3 运行效果 三、OpenCV-自适应阀值操作 3.1 自适应阀值操作函数-adaptiveThreshold 3.2 样例开发 一、OpenCV-阀值操作 1.1阀值操…