Linux云计算 |【第二阶段】SECURITY-DAY3

主要内容:

Prometheus监控服务器、Prometheus被监控端、Grafana监控可视化

补充:Zabbix监控软件不自带LNMP和DB数据库,需要自行手动安装配置;Prometheus监控软件自带WEB页面和DB数据库;Prometheus数据库为时序数据库,Zabbix数据库为关系型数据库;

一、Prometheus概述

Prometheus 是一个开源的系统监控和警报工具包,最初由 SoundCloud 开发,并于2012年首次发布。Prometheus 在2016年加入云原生计算基金会(CNCF),成为继 Kubernetes 之后的第二个托管项目。Prometheus 以其强大的数据模型、灵活的查询语言和高效的存储机制而闻名,已成为云原生和容器化环境中的监控标准之一。

主要功能:

数据模型

  • Prometheus 采用时间序列数据模型,存储多维度的度量指标。
  • 每个时间序列由指标名称和一组键值对(标签)唯一标识。

查询语言

  • Prometheus 提供了一种名为 PromQL(Prometheus Query Language)的强大查询语言,用于实时查询和分析时间序列数据。
  • PromQL 支持复杂的查询、聚合和数据转换操作。

数据收集

  • Prometheus 通过拉取(pull)模型从目标系统收集数据,目标系统通常通过 HTTP 接口暴露度量指标。
  • 支持通过中间代理(如 Pushgateway)处理推送(push)模型。

告警管理

  • Prometheus 提供了一个独立的告警管理组件,称为 Alertmanager,用于处理、去重、分组和路由告警。
  • Alertmanager 支持多种通知方式,包括电子邮件、Slack、PagerDuty 等。

可视化

  • Prometheus 自带一个简单的图形界面,用于基本的数据查看和查询。
  • 通常与 Grafana 集成,提供更强大的可视化和仪表板功能。

存储

  • Prometheus 将数据存储在本地磁盘上,采用自定义的存储引擎,高效地处理大量时间序列数据。
  • 支持通过远程存储接口与外部存储系统集成。

Prometheus架构图:

Prometheus 的架构主要包括以下组件:

  • Prometheus Server:核心组件,负责数据收集、存储和查询。
  • Exporters:用于暴露现有应用程序或系统的度量指标,如 Node Exporter、MySQL Exporter 等。
  • Pushgateway:用于处理短期任务或批处理作业的度量指标推送。
  • Alertmanager:处理告警,支持去重、分组和通知路由。
  • Web UI / Grafana:用于数据可视化和仪表板展示。

优势:

  • 开源:免费使用,社区支持活跃。
  • 强大的数据模型和查询语言:支持多维度数据模型和灵活的 PromQL 查询语言。
  • 高效的存储机制:自定义的存储引擎,适合处理高吞吐量的时间序列数据。
  • 灵活的告警管理:独立的 Alertmanager 组件,支持复杂的告警规则和通知机制。
  • 云原生支持:原生支持 Kubernetes 和其他云原生技术,适合容器化环境。

应用场景:

Prometheus 适用于各种监控场景,特别是云原生和容器化环境,包括:

  • 容器和微服务监控
  • 基础设施监控(如服务器、网络设备)
  • 应用程序性能监控
  • 持续集成和持续交付(CI/CD)管道监控
  • 云环境和虚拟化监控


案例1:Prometheus监控服务器

案例要求:部署prometheus监控服务器,完成以下任务:

  • 1)安装监控服务器
  • 2)修改配置文件
  • 3)编写service文件,管理服务
  • 4)查看监控数据

主机分配表(主机系统均为CentOS7,提前配置IP、主机名、系统YUM源)

实验拓扑图:

步骤1:设置防火墙和SELinux限制

[root@prometheus ~]#firewall-cmd --set-default-zone=trusted
[root@prometheus ~]#setenforce 0
[root@prometheus ~]#sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config

步骤2:部署服务端监控软件(prometheus操作)

1)安装prometheus软件(可参考/linux-soft/2/prometheus_soft.tar.gz)

[root@prometheus ~]# tar -xf prometheus_soft.tar.gz
[root@prometheus ~]# cd prometheus_soft/
[root@prometheus prometheus_soft]# ls
1-cpu_rev2.json
1-node-exporter-for-prometheus-dashboard-update-1102_rev11.json
alertmanager-0.20.0.linux-386.tar.gz
grafana-6.7.3-1.x86_64.rpm
mysqld_exporter-0.12.1.linux-amd64.tar.gz
mysql-overview_rev5.json
mysql_rev1.json
node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
prometheus-2.17.2.linux-386.tar.gz
pushgateway-1.2.0.linux-amd64.tar.gz[root@prometheus prometheus_soft]# tar -xf prometheus-2.17.2.linux-386.tar.gz    //解压软件压缩包
[root@prometheus prometheus_soft]# ls prometheus-2.17.2.linux-386/
console_libraries  LICENSE  prometheus      promtool
consoles           NOTICE   prometheus.yml  tsdb
[root@prometheus prometheus_soft]# mv prometheus-2.17.2.linux-386 /usr/local/prometheus     //移动到/usr/local/prometheus(类似tomcat)
[root@prometheus prometheus_soft]# ls /usr/local/prometheus/

Prometheus软件解压即可直接执行;

2)修改prometheus配置文件(添加Target监控对象)

  • 配置文件:prometheus.yml    //文件为YAML格式
  • 格式:/usr/local/prometheus/promtool check config 配置文件   //检查语法错误
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
...
scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['192.168.4.10:9090']   //配置抓取目标,被监控端主机和端口

解释:targets监控对象,指定需被监控的主机IP:端口号(192.168.4.10:9090监控本机,端口9090)

检查配置配置文件是否有语法错误

[root@prometheus ~]# /usr/local/prometheus/promtool check config \
> /usr/local/prometheus/prometheus.yml
Checking /usr/local/prometheus/prometheus.ymlSUCCESS: 0 rule files found     //语法没有错误(仅供参考)

3)编写服务service文件,使用systemd管理服务(端口9090)

[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml   
[Install]
WantedBy=multi-user.target
[root@prometheus ~]# systemctl enable prometheus.service --now  //设置服务开机自启并立刻启动
[root@prometheus ~]# ss -nlptu | grep :9090
tcp    LISTEN     0      128      :::9090                 :::*                   users:(("prometheus",pid=764,fd=6))

补充:--config指定配置文件位置,在启动服务时可找到该文件

步骤3:登录Prometheus监控控制台

1)查看监控主机、监控数据

使用浏览器访问http://192.168.4.10:9090,可看到监控控制台首页;

查看监控主机,点击【Status】-->【Targets】,可查看监控到的对象主机;

点击http://192.168.4.10:9090/metrics,可查看到该主机的监控数据(可视化效果不佳)

通过【Graph】,选择监控数据,如go_memstats_alloc_bytes,点击<Execute>执行,可查看具体某个监控数据和Value;

点击<Graph>,可查看选择的监控数据对应的监控图形


 常见错误:No datapoints found.

思路分析:

  • 1)防火墙与SELinux是否限制;
  • 2)配置文件中的targets是否没有数据;
  • 3)检查Prometheus.service服务是否启动(端口9090)
  • 4)没有数据库的目录,在Service文件里添加--storage.tsdb.path=/usr/local/prometheus/data/
  • 5)Prometheus时间与创建历史时间不对

解决办法:

Servies服务可手动启动服务:/usr/local/prometheus/prometheus \

--config.file=/usr/local/prometheus/prometheus.yml

 二、被监控端

1)监控方式

Prometheus客户端分为pull和push两种提交数据的方式:

  • ① Pull:监控服务端主动向被监控端拉取数据,这样需要在被监控端上安装exporters(导出器)作为守护进程;
  • ② Push:被监控端需安装pushgateway插件,然后由运维人员通过脚本将监控数据组织成键值形式提交给pushgateway,再由该插件提交给监控服务端;

2)Exporter导出器

按照监控要求实现什么类型的监控,则需要单独安装exporter(导出器),可参考官网开源的exporter,解压即可直接运行。

补充:广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter,而Exporter的一个实例称为target;


案例2:Prometheus被监控端

案例要求:配置Prometheus被监控端主机,主要完成以下任务:

  • 1)安装被监控端软件(exporter监控导出器)
  • 2)编写service文件,使用systemd管理服务
  • 3)修改监控服务器配置文件
  • 4)查看监控数据

步骤1:设置防火墙与SELinux限制

[root@node1 ~]#firewall-cmd --set-default-zone=trusted
[root@node1 ~]#setenforce 0
[root@node1 ~]#sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config

步骤2:部署被控制端软件(node1操作)

1)安装node_export导出器(可参考/linux-soft/2/prometheus_soft.tar.gz)

[root@node1 ~]# tar -xf prometheus_soft.tar.gz
[root@node1 ~]# cd prometheus_soft/
[root@node1 prometheus_soft]# ls
mysqld_exporter-0.12.1.linux-amd64.tar.gz
node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
...
[root@node1 prometheus_soft]# tar -xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
[root@node1 prometheus_soft]# ls node_exporter-1.0.0-rc.0.linux-amd64
LICENSE  node_exporter  NOTICE
[root@node1 prometheus_soft]# mv node_exporter-1.0.0-rc.0.linux-amd64 /usr/local/node_exporter
[root@node1 prometheus_soft]# ls /usr/local/node_exporter

2)编写服务service文件,使用systemd管理服务(端口9100)

[root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
[root@node1 ~]# systemctl enable node_exporter --now   //设置服务开机自启并立刻启动
[root@node1 ~]# ss -nlptu | grep :9100
tcp    LISTEN     0      128      :::9100                 :::*                   users:(("node_exporter",pid=898,fd=3))

步骤3:修改监控服务器的配置文件(Prometheus操作)

1)修改配置文件

参考配置文件的监控任务模板,在【scrape_configs:】下添加3行新内容,具体内容如下:

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['192.168.4.10:9090']- job_name: 'node1'                  //监控任务名称(可任意)static_configs:- targets: ['192.168.4.11:9100']    //被监控端主机和端口
[root@prometheus ~]# systemctl restart prometheus.service     //重启服务

步骤4:登录Prometheus监控控制台

1) 查看监控主机、监控数据

使用浏览器访问http://192.168.4.10:9090,进入监控首页,通过【Status】-->【Targets】,查看监控主机列表,验证是否有新增监控对象主机(确保被监控端服务正常开启,端口9100)

选择具体的监控数据(例如node_load1平均负载量1分钟),点击<Graph>,可查看选择的监控数据对应的监控图形

三、Grafana概述

Grafana 是一个开源的分析和交互式可视化平台,专门用于监控和分析时间序列数据。它由 Torkel Ödegaard 创建,并于2014年首次发布。Grafana 以其强大的可视化能力、灵活的仪表板和插件生态系统而闻名,已成为监控领域的重要工具之一。

主要功能:

数据源支持:

  • Grafana 支持多种数据源,包括 Prometheus、Graphite、InfluxDB、Elasticsearch、MySQL、PostgreSQL 等。
  • 用户可以从多个数据源中获取数据,并在同一个仪表板上进行可视化展示。

可视化:

  • 提供丰富的可视化选项,包括图表、图形、表格、热图、仪表盘等。
  • 支持自定义可视化,用户可以根据需要创建复杂的图表和仪表板。

仪表板:

  • 提供灵活的仪表板功能,用户可以创建、编辑和共享仪表板。
  • 支持变量(Variables)和模板(Templating),便于动态更新和过滤数据。

告警和通知:

  • 支持基于仪表板数据的告警功能,可以在检测到异常时发送通知。
  • 支持多种通知渠道,包括电子邮件、Slack、PagerDuty 等。

插件生态系统:

  • 提供丰富的插件系统,用户可以扩展 Grafana 的功能,包括数据源插件、面板插件和应用插件。
  • 社区活跃,不断有新的插件和功能被开发和发布。

权限管理:

  • 支持基于角色的访问控制(RBAC),可以对用户和团队进行细粒度的权限管理。
  • 支持 LDAP、OAuth 和其他认证方式。

Grafana 的架构主要包括以下组件:

  • Grafana Server:核心组件,负责处理请求、数据查询和可视化展示。
  • 数据源:连接到各种时间序列数据库和监控系统,获取数据。
  • 仪表板:用户定义的可视化界面,用于展示和分析数据。
  • 插件系统:扩展 Grafana 功能的插件,包括数据源插件、面板插件和应用插件。


案例3:grafana可视化监控数据

案例要求:配置grafana实现数据可视化效果,完成以下任务:

  • 1)安装Grafana
  • 2)修改grafana配置
  • 3)导入可视化模板
  • 4)查看监控图表

步骤1:安装部署grafana(prometheus操作)

1)安装grafana软件(可参考/linux-soft/2/prometheus_soft.tar.gz)

[root@prometheus ~]# cd prometheus_soft/
[root@prometheus prometheus_soft]# ls
grafana-6.7.3-1.x86_64.rpm
...
[root@prometheus prometheus_soft]# yum -y install grafana-6.7.3-1.x86_64.rpm  //安装软件包(可在任何主机上安装)

2)启动服务

[root@prometheus ~]# systemctl enable grafana-server.service --now   //设置服务开机自启动服务并立刻启动
[root@prometheus ~]# ss -nlptu | grep :3000     //grafana服务端口3000
tcp    LISTEN     0      128      :::3000                 :::*                   users:(("grafana-server",pid=1201,fd=7))

3)登录可视化平台,重置登录密码

浏览器访问Grafana可视化平台http://192.168.4.10:3000,默认用户名和密码:admin

重置用户名和密码:admin(第一次登录,为了安全需要重置密码)

登录Grafana可视化平台后,显示首页页面内容,如图所示:

补充:浏览器兼容问题,可能无法重置密码,如果无法重置密码,则可设置grafana允许匿名登录,具体操作如下(非必要,不要执行如下操作)

[root@prometheus ~]# vim /etc/grafana/grafana.ini
[auth.anonymous]    //anonymous匿名的
enabled = true   //是否允许匿名
org_role = Admin   //以什么角色登录(Admin管理员用户)
[root@prometheus ~]# systemctl restart grafana-server.service   //修改后需重启服务

步骤2:配置Grafana

浏览器访问Grafana控制台,http://192.168.4.10:3000,添加数据源(有数据才能生成可视化图形)

1)添加数据源(查看Prometheus监控端的系统信息)

Grafana可以将数据图形化,点击【Add data source】,选择从【Prometheus】获取数据;

填写Prometheus的基本信息,URL指定:http://192.168.4.10:9090,从该URL获取数据源;

2)导入可视化模板

使用不同的可视化模板(折线图、饼图、热图等),可实现将不同的数据进行图形化展示,点击<Data Sources>,选择需要可视化的数据源(例如Prometheus-1)

点击【Dashboards商业智能仪表盘】,导入Prometheus 2.0 Stats图形化模板;

点击<Prometheus 2.0 Stats图形化模板>,可查看该模板下连接Prometheus数据源的可视化界面,如图所示:

步骤3:查看被监控主机的系统信息

1)导入主机监控的可视化模板(node_exporter模板)

模板:1-node-exporter-for-prometheus-dashboard-update-1102_rev11.json

通过真机浏览器访问,所以需解压在真机目录下(可参考/linux-soft/2/prometheus_soft.tar.gz)

[root@localhost 桌面]# tar -xf /linux-soft/2/prometheus_soft.tar.gz    //解压压缩包

2)选择数据源

导入监控主机的可视化模板后,就可以查看主机的监控图形了,但该可视化图形的数据暂未获取,需要设置prometheus为数据源(Prometheus-1),完成后点击导入;

返回Grafana首页,点击node_exporter可视化模板,查看可视化监控图形;

最终的可视化界面,如图所示:


案例4:监控数据库

案例要求:使用prometheus监控MariaDB数据库,完成以下任务:

  • 1)安装数据库
  • 2)安装数据库exporter
  • 3)配置数据库账户和密码
  • 4)导入监控模板

步骤1:安装MariaDB(node1操作)

1)安装软件,启动服务

[root@node1 ~]# yum -y install mariadb-server
[root@node1 ~]# systemctl enable mariadb --now
[root@node1 ~]# ss -nlptu | grep :3306
tcp    LISTEN     0      50        *:3306                  *:*                   users:(("mysqld",pid=1415,fd=14))

2)创建数据库账户,配置密码

监控服务器需要监控数据库,需创建一个对数据库有权限的账户并配置密码。

[root@node1~]# mysql
MariaDB [(none)]> grant all on *.* to 'jerry'@'127.0.0.1' identified by '123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit

解释:创建用户jerry,授予该用户对所有数据库和表拥有所有权限,可以从本机127.0.0.1登录服务器,密码为123

步骤2:部署被控制端软件

1)安装mysqld_exporter导出器(可参考/linux-soft/2/prometheus_soft.tar.gz)

[root@node1 ~]# cd prometheus_soft/
[root@node1 prometheus_soft]# ls
mysqld_exporter-0.12.1.linux-amd64.tar.gz
mysql-overview_rev5.json
mysql_rev1.json
...
[root@node1 prometheus_soft]# tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
[root@node1 prometheus_soft]# ls mysqld_exporter-0.12.1.linux-amd64
LICENSE  mysqld_exporter  NOTICE
[root@node1 prometheus_soft]# mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter

2)创建数据库配置文件.my.cnf,记录访问数据库信息

[root@node1 ~]# vim /usr/local/mysqld_exporter/.my.cnf
[client]
host=127.0.0.1    //数据库的主机
port=3306   //数据库的端口
user=jerry   //数据库的用户名
password=123   //数据库的密码

解释:创建数据库配置文件.my.cnf,在监控服务器访问被监控服务器的mysqld_exporter服务时,exporter会自动读取配置文件,使用配置文件用的账户和密码信息访问数据库,获取数据库监控信息;

3)编写服务service文件,使用systemd管理服务(端口9104)

[root@node1 ~]# vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter \
--config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
[Install]
WantedBy=multi-user.target
[root@node1 ~]# systemctl enable mysqld_exporter --now
[root@node1 ~]# ss -nlptu | grep :9104
tcp    LISTEN     0      128      :::9104                 :::*                   users:(("mysqld_exporter",pid=1561,fd=3))

补充:--config是mysqld_exporter的选项,指定配置文件位置

步骤3:修改监控服务器的配置文件(Prometheus操作)

1)修改监控服务器配置文件

参考配置文件的监控任务模板,在【scrape_configs:】下添加3行新内容,具体内容如下:

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
scrape_configs:    //抓取数据
...- job_name: 'mysql'     //监控任务的名称static_configs:- targets: ['192.168.4.11:9104']    //被监控主机IP和端口
[root@prometheus ~]# systemctl restart prometheus.service

解释:targets指定被监控主机192.168.4.11,端口9104,连接后pull拉取监控数据

步骤4:登录Prometheus监控控制台

1) 查看监控主机、监控数据

使用浏览器访问http://192.168.4.10:9090,进入监控首页,通过【Status】-->【Targets】,查看监控主机列表,验证是否有新增监控对象主机(确保被监控端服务正常开启,端口9104)

步骤5:配置Grafana可视化

1)查看Prometheus监控服务状态(浏览器访问http://192.168.4.10:9090)

查看prometheus是否已经识别到MariaDB数据库主机,状态为UP;

2)访问Grafana平台,导入数据库可视化模板(浏览器访问http://192.168.4.10:3000)

导入数据库可视化模板

设置prometheus为数据源(Prometheus-1),完成后点击导入;

可查看该模板下连接Prometheus数据源的可视化界面,如图所示:

思维导图:

小结:

本篇章节为【第二阶段】SECURITY-DAY3 的学习笔记,这篇笔记可以初步了解到 Prometheus监控服务器、Prometheus被监控端、Grafana监控可视化。除此之外推荐参考相关学习网址:

  • prometheus-配置文件-scrape_configs、relabel_config等抓取相关配置(二) - SoulChild随笔记
  • 第4章 Exporter详解 - Exporter是什么 - 《Prometheus操作指南》 - 书栈网 · BookStack

Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解

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

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

相关文章

JVM 运行时内存结构简介

JVM 运行时内存结构简介 一、前言二、JVM 运行时内存结构2.1 线程隔离数据区&#xff1a;2.2 线程共享数据区&#xff1a; 三、JVM 内存区域划分1. 程序计数器&#xff08;PC&#xff09;2. 虚拟机栈3. 本地方法栈4. Java 堆5. 方法区6. 运行时常量池 附录 一、前言 JVM&#…

手撕C++类和对象(中)

1.类的默认成员函数 默认成员函数就是⽤⼾没有显式实现&#xff0c;编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类&#xff0c;我 们不写的情况下编译器会默认⽣成以下6个默认成员函数&#xff0c;需要注意的是这6个中最重要的是前4个&#xff0c;最 后两个取地址重载不…

Linux 内核源码分析---IPv6 数据包

IPv6是英文“Internet Protocol Version 6”&#xff08;互联网协议第6版&#xff09;的缩写&#xff0c;是互联网工程任务组&#xff08;IETF&#xff09;设计的用于替代IPv4的下一代IP协议&#xff0c;其地址数量号称可以为全世界的每一粒沙子编上一个地址。 由于IPv4最大的…

鸿蒙Harmony开发——设备发烫问题分析

&#xff1b; 本文字数&#xff1a;4207字 预计阅读时间&#xff1a;25分钟 设备过热问题是影响用户体验和设备性能的重要因素。过热不仅会导致性能下降&#xff0c;还可能损坏硬件。因此&#xff0c;开发者需要及时发现、分析并解决这一问题。本文将首先介绍评估设备过热的关键…

文心快码(Baidu Comate)初体验

文心快码&#xff08;Baidu Comate&#xff09;初体验 1文心快码简介和安装&#xff1a;简要介绍文心快码&#xff08;Baidu Comate&#xff09;、安装方法、使用方法等&#xff1b; Baidu Comate 是由百度自主研发&#xff0c;基于文心大模型&#xff0c;结合百度丰富的编程现…

C/C++逆向:寻找main函数(Debug-x86)

在程序的逆向分析中&#xff0c;寻找main函数在逆向分析中是非常重要的&#xff0c;它是程序的核心执行点&#xff0c;从这里开始&#xff0c;程序的主要逻辑开始展开&#xff1b;在这边我们需要明确两个概念&#xff1a;用户入口&#xff08;User Entry Point&#xff09; 和 …

WIN 10 添加右键菜单(VSCode 打开当前目录)

WIN 10 添加右键菜单&#xff08;VSCode 打开当前目录&#xff09; 前言最终效果操作步骤 前言 每次打开代码都需要先打开 VSCode&#xff0c;再选择最近打开的项目或者浏览打开项目&#xff0c;感觉比较难找。所以自己添加了右键命令。 最终效果 操作步骤 cmd 打开注册表 找…

appium学习记录

免责声明 本文内容仅供参考&#xff0c;将appuim与爬虫技术相结合可能违反某些app的使用条款和法律法规。作者不对因此产生的法律问题或技术风险负责。建议读者在进行爬取操作前&#xff0c;充分了解相关法律法规并确保合规。 1、初识appium 背景&#xff1a;部分APP需要反编译…

C#用户控件usercontrol中的子控件事件及属性的传递

也不知道这个标题怎么写&#xff0c;但是问题是个老问题&#xff0c;大家都可能遇到过&#xff0c;不过有同学问到&#xff0c;那就写出来。其实很简单。只不过有的同学看了其他博文后脑子还是懵懵的。所以这里就分两部分来说明一下。 文章目录 一、属性的传递1、原理2、步骤3…

Mac M1Pro 安装Java性能监控工具VisualVM 2.1.9

本地已经安装了java8&#xff0c;在终端输入jvisualvm提示没有安装 zhiniansara ~ % jvisualvm The operation couldn’t be completed. Unable to locate a Java Runtime that supports jvisualvm. Please visit http://www.java.com for information on installing Java.官网…

RPA自动化流程机器人助力企业财务数字化转型

在数字经济时代&#xff0c;企业需要快速响应市场变化&#xff0c;而财务数字化转型是企业适应现代商业环境、提升竞争力的必要步骤。财务数字化转型不仅涉及企业财务能力的提升&#xff0c;推动了财务管理与决策模式的转变。RPA自动化流程机器人因其能通过自动化技术帮助企业实…

[云计算] 虚拟化笔记

原著&#xff1a; 韩冰&#xff0c;[云计算课程]&#xff0c; 有删改。 目的 对 IT 资源简化&#xff0c;用户通过标准接口访问。 资源是提高一定功能的实现 。可以是硬件&#xff0c; 如CPU, 也可以是软件。 发展史 1961 IBM CPU 分时间片&#xff0c; 一个CPU 虚拟化为多…

【Nature】在科研中应用ChatGPT:如何与数据对话

随着人工智能技术的迅猛发展&#xff0c;大型语言模型&#xff08;LLMs&#xff09;正逐渐成为科研领域的一种创新工具。这些模型通过自然语言处理技术&#xff0c;使得研究人员能够以直观的方式与数据进行交互&#xff0c;从而简化了数据分析和解释的过程。在《自然》杂志2024…

当外接硬盘接入到macOS上,只读不可写时,应当格式化

当windows磁盘格式例如 NTFS 的硬盘接入到macOS上时&#xff0c;会发现无法新建文件夹&#xff0c;无法删除、重命名。原因是磁盘格式对不上macOS&#xff0c;需要进行格式化。格式化时请注意备份重要数据。具体做法如下&#xff0c;在macOS中找到磁盘工具&#xff0c;然后对磁…

QT Quick QML 实例之定制 TableView

QT Quick QML 实例之定制 TableView 一、演示二、C关键步骤1. beginInsertRows()&#xff08;用户插入行&#xff09;2. roleNames() &#xff08;表格中列映射&#xff09;3. data() &#xff08;用户获取数据&#xff09;4. headerData() &#xff08;表头&#xff09;5. fla…

影视会员官方渠道api对接

API对接是指两个不同的软件系统或应用程序之间通过API&#xff08;应用程序编程接口&#xff09;进行交互的过程。这种交互允许数据和功能的共享&#xff0c;而不必暴露系统的内部工作原理。在影视会员充值场景中&#xff0c;API对接具有以下几个关键特点和优势&#xff1a; 数…

【从Qwen2,Apple Intelligence Foundation,Gemma 2,Llama 3.1看大模型的性能提升之路】

从早期的 GPT 模型到如今复杂的开放式 LLM&#xff0c;大型语言模型 (LLM) 的发展已经取得了长足的进步。最初&#xff0c;LLM 训练过程仅侧重于预训练&#xff0c;但后来扩展到包括预训练和后训练。后训练通常包括监督指令微调和校准&#xff0c;这是由 ChatGPT 推广的。 自 …

11、Redis高级:Key设置、BigKey解决、批处理优化、集群下批处理、慢查询

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 遵循基本格式&#xff1a;[业务名称]:[数据名]:[id]长度不超过…

沉浸式解压小视频在哪找?非常减压的几个视频素材网站分享

沉浸式解压小视频&#xff0c;以其独特的舒缓音乐、宁静自然景观和柔和动态图像&#xff0c;成为了迅速消解压力的有效途径。这些视频能够帮助我们暂时离开紧张的现实&#xff0c;重获内心的平和。如果你正在寻找优质的解压视频素材&#xff0c;不用担心&#xff0c;接下来我会…

【HarmonyOS NEXT星河版开发学习】综合测试案例-各平台评论部分

目录 前言 功能展示 整体页面布局 最新和最热 写评论 点赞功能 界面构建 初始数据的准备 列表项部分的渲染 底部区域 index部分 知识点概述 List组件 List组件简介 ListItem组件详解 ListItemGroup组件介绍 ForEach循环渲染 列表分割线设置 列表排列方向设…