当前位置: 首页 > news >正文

若依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.lryc.cn/news/175166.html

相关文章:

  • 可转债实战与案例分析——成功的和失败的可转债投资案例、教训与经验分享
  • @NotNull注解不生效,全局异常处理
  • 【办公自动化】使用Python一键往Word文档的表格中填写数据(文末送书)
  • OpenHarmony应用核心技术理念与需求机遇简析
  • 让Pegasus天马座开发板实现超声波测距
  • C++11 多线程学习
  • 数学公式测试
  • 机器学习——SVM(支持向量机)
  • 【李沐深度学习笔记】基础优化方法
  • tmux 配置vim风格按键,支持gbk编码
  • Python —— excel文件操作(超详细)
  • 什么是AI问答机器人?它的应用场景有哪些?
  • 静态文件
  • Centos7 自部署中间件开机启动,以及java应用开机启动方法
  • 密度估计公式
  • 2023 ICPC 网络赛 第一场(补题:F)
  • MySQL慢查询优化、日志收集定位排查、慢查询sql分析
  • HZOJ-266:表达式计算
  • JavaScript学习小结
  • MySQL学习笔记13
  • 怎么获取外网ip地址
  • 算法 只出现一次的两个数字-(哈希+异或)
  • 外卖霸王餐小程序、H5、公众号版外卖系统源码
  • amlogic 机顶盒关闭DLNA 后,手机还能搜到盒子
  • @Autowire、@Recourse用啥?
  • [linux] 过滤警告⚠️
  • Linux必备操作系统命令大全
  • 【rtp】VideoTimingExtension 扩展的解析和写入
  • 网络安全CTF比赛有哪些事?——《CTF那些事儿》告诉你
  • Winform直接与Wpf交互