【云原生 Prometheus篇】Prometheus架构详解与核心组件的应用实例(Exporters、Grafana...)

news2024/9/22 15:41:55

Prometheus Part1

  • 一、常用的监控系统
    • 1.1 简介
    • 1.2 Prometheus和zabbix的区别
  • 二、Prometheus
    • 2.1 简介
    • 2.2 Prometheus的主要组件
      • 1)`Prometheus server`
      • 2)`Exporters`
      • 3)`Alertmanager`
      • 4)`Pushgateway`
      • 5)`Grafana`
    • 2.3 Prometheus的工作流程
    • 2.4 Prometheus数据采集配置
  • 三、二进制部署Prometheus
    • 3.1 初始化操作
    • 3.2 下载Prometheus源码包并解压
    • 3.3 Prometheus添加到系统服务中
    • 3.4 访问测试
  • 四、Exporters部署实例
    • 4.1 实例一:部署 Node Exporter 监控系统级指标
      • Step1 准备源代码包
      • Step2 将node-expoter添加到系统服务中
      • Step3 加入到 Prometheus 监控中
      • 补充:常用的各指标
    • 4.2 实例二:通过mysql exporter监控 MySQL
      • Step1 部署mysql exporter
      • Step2 修改Mysql的配置
      • Step3 启动mysqld_exporter服务
      • Step4 添加Mysql到Prometheus监控中
      • Step5 查看Prometheus web界面
    • 4.3 实例三:监控Nginx
      • Step1 安装nginx
      • Step2 修改nginx的配置文件,启动nginx
      • Step3 解压 nginx-exporter并启动
      • Step4 将nginx加入到Prometheus监控中
      • Step5 访问Prometheus web页面
  • 五、部署 Grafana平台进行展示
    • 5.1 下载和安装
    • 5.2 配置数据源
    • 5.3 导入grafana监控面板

一、常用的监控系统

1.1 简介

在这里插入图片描述

老牌传统的:Zabbix 、Nagios、Cacti …

云时代的:Prometheus、夜莺 … …

1.2 Prometheus和zabbix的区别

Zabbix:更适用于传统业务架构的物理机、虚拟机环境的监控,对容器的支持比较差;数据存储主要采用的是关系型数据库,会随着监控节点数量的增加,关系型数据库的压力也会变大,监控数据的读写也会变的很慢;对大规模集群监控的性能比Prometheus要弱一些,可适用于单集群不超过2000节点的场景。

Prometheus:还能支持云环境、Kubernetes容器集群的监控,是目前容器监控最好的解决方案;数据存储采用的是时序数据库,大大的节省了存储空间,并且提升了查询效率;单集群支持的节点规模更大,通常超过2000台节点、业务服务数量大于1000个的时候建议直接上Prometheus。

二、Prometheus

Prometheus 官网地址:https://prometheus.io

Prometheus github 地址:https://github.com/prometheus

2.1 简介

Prometheus 是一个开源的监控系统 + 时间序列数据库数据模型是 指标度量名称{键值对标签} 的时间序列数据格式。

2.2 Prometheus的主要组件

在这里插入图片描述

1)Prometheus server

Prometheus服务的核心组件

通过http pull拉取的方式采集监控指标数据(时间序列数据);

作为时序数据库持久化存储监控指标数据;

根据告警规则生成告警通知推送给alertmanager;

内建service discovery动态服务发现功能(支持文件、consul、K8S等自动发现方式)

2)Exporters

指标暴露器,用于对原生不支持prometheus直接采集监控指标数据的系统或应用,收集监控指标数据并转换格式给prometheus server拉取采集。

常用的exporters描述
Node-Exporter用于收集服务器节点的物理指标状态数据,如平均负载、CPU、内存、磁盘、网络等资源信息的指标数据,需要部署到所有运算节点。
mysqld-exporter/nginx-exporter用于监控特定服务,比如mysql/nginx
Kube-State-Metrics用于为 Prometheus 采集 K8S 资源数据
cAdvisor用来监控容器内部使用资源的信息,比如 CPU、内存、网络I/O、磁盘I/O
blackbox-exporter监控业务容器存活性

3)Alertmanager

接收prometheus server发来的告警通知,负责对告警通知去重、分组,并路由给接收人(电子邮件、钉钉、企业微信等方式)

4)Pushgateway

作为中转站,接收一些短期任务或只会push推送数据的任务发来的监控指标数据,用于临时存储监控指标数据并统一给prometheus server拉取采集

5)Grafana

外置的监控数据展示平台,接入prometheus数据源,通过promQL查询,并以图形化形式展示

2.3 Prometheus的工作流程

在这里插入图片描述

1)prometheus server通过http pull拉取的方式从监控目标target(exporter或pushgateway暴露的http接口)拉取监控指标数据;

2)prometheus server将采集到的监控指标数据通过时序数据库持久化存储在本地磁盘或外置存储中;

3)prometheus server将采集到的监控指标数据与本地配置的告警规则进行计算比对,如果触发告警则会生成告警通知推送给alertmanager;

4)alertmanager接收到prometheus server发来的告警通知后,对告警通知去重、分组,再通过电子邮件/钉钉/企业微信等方式发送给接收人;

5)prometheus支持原生的web UI或grafana接入prometheus数据源,通过promQL查询,并以图形化形式展示。

prometheus支持使用influxdb等作为外置时序数据库,实现长期存储历史数据。

prometheus可基于thanos实现prometheus集群的高可用(主要方式是在K8S上部署,通过边车模式与prometheus部署在同一个Pod里共享监控数据)

2.4 Prometheus数据采集配置

#这是一个模板
scrape_configs:
- job_name: XXX              #自定义监控任务的名称
  metrics_path: "/metrics"   #指定获取监控指标数据的URL路径,一般都是 /metrics
  scheme: "http"             #指定拉取监控指标数据的协议,http(默认值)|https
  static_configs:            #定义静态配置的监控目标
  - targets:                   #指定监控目标的IP和exporter的端口
    - <IP1>:<exporter的端口>
    - <IP2>:<exporter的端口>
    labels:                    #自定义监控目标的标签
	  <标签key>: <标签value>

三、二进制部署Prometheus

3.1 初始化操作

systemctl stop firewalld
setenforce 0

3.2 下载Prometheus源码包并解压

上传 prometheus-2.45.0.linux-amd64.tar.gz 到 /opt 目录中,并解压

#建立工作目录
mkdir -p /opt/prometheus

#上传源码包
cd /opt/prometheus
tar xf prometheus-2.45.0.linux-amd64.tar.gz

#方便补全
mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus

在这里插入图片描述

Prometheus配置清单文件详解

cat /usr/local/prometheus/prometheus.yml | grep -v "^#"

global:					#用于prometheus的全局配置,比如采集间隔,抓取超时时间等
  scrape_interval: 15s			#采集目标主机监控数据的时间间隔,默认为1m
  evaluation_interval: 15s 		#触发告警生成alert的时间间隔,默认是1m
  # scrape_timeout is set to the global default (10s).
  scrape_timeout: 10s			#数据采集超时时间,默认10s

alerting:				#用于alertmanager实例的配置,支持静态配置和动态服务发现的机制
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

rule_files:				#用于加载告警规则相关的文件路径的配置,可以使用文件名通配机制
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:			#用于采集时序数据源的配置
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"		#每个被监控实例的集合用job_name命名,支持静态配置(static_configs)和动态服务发现的机制(*_sd_configs)

    # metrics_path defaults to '/metrics'
    metrics_path: '/metrics'    #指标数据采集路径,默认为 /metrics
    # scheme defaults to 'http'.

    static_configs:				#静态目标配置,固定从某个target拉取数据
      - targets: ["localhost:9090"]

3.3 Prometheus添加到系统服务中

#配置系统启动文件
cat > /usr/lib/systemd/system/prometheus.service <<'EOF'
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle
  
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

启动

#启动 Prometheust
systemctl enable prometheus --now

netstat -natp | grep :9090

在这里插入图片描述

3.4 访问测试

浏览器访问:http://192.168.2.108:9090 ,访问到 Prometheus 的 Web UI 界面。
在这里插入图片描述

点击页面的 Status -> Targets;

如看到 Target 状态都为 UP,说明 Prometheus 能正常采集到数据。
在这里插入图片描述
在这里插入图片描述

浏览器访问:http://192.168.2.108:9090/metrics ,可以看到 Prometheus 采集的指标数据。

其中 Help 字段用于解释当前指标的含义Type 字段用于说明数据的类型

在这里插入图片描述

四、Exporters部署实例

4.1 实例一:部署 Node Exporter 监控系统级指标

Step1 准备源代码包

上传 node_exporter-1.3.1.linux-amd64.tar.gz 到 /opt 目录中,并解压。

tar xf node_exporter-1.3.1.linux-amd64.tar.gz

mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin

Step2 将node-expoter添加到系统服务中

配置启动文件

cat > /usr/lib/systemd/system/node_exporter.service <<'EOF'
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

启动

systemctl enable node_exporter --now

netstat -natp | grep :9100

在这里插入图片描述

浏览器访问:http://192.168.2.108:9100/metrics ,可以看到 Node Exporter 采集到的指标数据。
在这里插入图片描述

Step3 加入到 Prometheus 监控中

修改Prometheus配置文件

vim /usr/local/prometheus/prometheus.yml
#在尾部增加如下内容
  - job_name: nodes
    metrics_path: "/metrics"
    static_configs:
    - targets:
	  - 192.168.2.108:9100
	  - 192.168.2.100:9100
	  - 192.168.2.102:9100
      labels:
        service: kubernetes

在这里插入图片描述

重新载入配置

#方法一
systemctl reload prometheus

#方法二
curl -X POST http://192.168.2.108:9090/-/reload 

测试

浏览器查看 Prometheus 页面的 Status -> Targets
在这里插入图片描述
在这里插入图片描述

补充:常用的各指标

●node_cpu_seconds_total
●node_memory_MemTotal_bytes
●node_filesystem_size_bytes{mount_point=PATH}
●node_system_unit_state{name=}
●node_vmstat_pswpin:系统每秒从磁盘读到内存的字节数
●node_vmstat_pswpout:系统每秒钟从内存写到磁盘的字节数

更多指标介绍:https://github.com/prometheus/node_exporter

4.2 实例二:通过mysql exporter监控 MySQL

注:切换到Mysql服务器部署

Step1 部署mysql exporter

解压mysql exporter源码包

tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz

mv mysqld_exporter-0.14.0.linux-amd64/mysqld_exporter /usr/local/bin/

配置启动文件

cat > /usr/lib/systemd/system/mysqld_exporter.service <<'EOF'
[Unit]
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf=/etc/my.cnf

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

Step2 修改Mysql的配置

修改Mysql的配置文件

vim /etc/my.cnf
[client]
......
host=localhost
user=exporter
password=abc123

在这里插入图片描述

授权 exporter 用户

#登录收据库
mysql -uroot -p123123

#授权
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost' IDENTIFIED BY 'abc123';

#刷新
flush privillages

在这里插入图片描述

重启mysqld服务

systemctl restart mysqld

在这里插入图片描述

Step3 启动mysqld_exporter服务

systemctl enable mysqld_exporter --now

netstat -natp | grep :9104

在这里插入图片描述

Step4 添加Mysql到Prometheus监控中

切换到Prometheus 服务器上操作。

修改 prometheus 配置文件,加入到 prometheus 监控中

vim /usr/local/prometheus/prometheus.yml
#在尾部增加如下内容
  - job_name: mysqld
    metrics_path: "/metrics"
    static_configs:
    - targets:
          - 192.168.2.106:9104
      labels:
        service: mysqld

在这里插入图片描述

重新载入配置

systemctl reload prometheus

Step5 查看Prometheus web界面

浏览器查看 Prometheus 页面的 Status -> Targets
在这里插入图片描述

4.3 实例三:监控Nginx

nginx-exporter下载地址:https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz

nginx 下载地址:http://nginx.org/download/

nginx 插件下载地址:https://github.com/vozlt/nginx-module-vts/tags

Step1 安装nginx

下载并解压nginx插件包

cd /opt

tar xf nginx-module-vts-0.1.18.tar.gz
mv nginx-module-vts-0.1.18 /usr/local/nginx-module-vts

安装nignx

#安装依赖
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#管理用户
useradd -M -s /sbin/nologin nginx

#解压代码包
cd /opt
tar xf nginx-1.24.0.tar.gz

#编译安装
cd nginx-1.24.0/
./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--add-module=/usr/local/nginx-module-vts

make & make install

Step2 修改nginx的配置文件,启动nginx

修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf
http {
    vhost_traffic_status_zone;					#添加
    vhost_traffic_status_filter_by_host on;		#添加,开启此功能,在 Nginx 配置有多个 server_name 的情况下,会根据不同的 server_name 进行流量的统计,否则默认会把流量全部计算到第一个 server_name 上
	......
	server {
	......
	}
	
    server {
        vhost_traffic_status off;		#在不想统计流量的 server 区域,可禁用 vhost_traffic_status
        listen 8080;
        allow 127.0.0.1;
        allow 192.168.2.108;			#设置为 prometheus 的 ip 地址

        location /nginx-status {
            stub_status on;
            access_log off;
        }

        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
}

#假如 nginx 没有规范配置 server_name 或者无需进行监控的 server 上,那么建议在此 vhost 上禁用统计监控功能。否则会出现 127.0.0.1、hostname 等的域名监控信息。

在这里插入图片描述

在这里插入图片描述

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx -t

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

将nginx添加到系统服务中

cat > /lib/systemd/system/nginx.service <<'EOF'
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

启动

systemctl enable nginx --now

在这里插入图片描述

浏览器访问:http://192.168.2.107:8080/status ,可以看到 Nginx Vhost Traffic Status 的页面信息
在这里插入图片描述

Step3 解压 nginx-exporter并启动

源码包

cd /opt/
tar -zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz

mv nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter /usr/local/bin/

添加到系统服务

cat > /usr/lib/systemd/system/nginx-exporter.service <<'EOF'
[Unit]
Description=nginx-exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/nginx-vts-exporter -nginx.scrape_uri=http://localhost:8080/status/format/json

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

启动nginx-exporter服务

systemctl enable nginx-exporter --now

netstat -natp | grep :9913

在这里插入图片描述

Step4 将nginx加入到Prometheus监控中

切换到 Prometheus 服务器。

修改 prometheus 配置文件

vim /usr/local/prometheus/prometheus.yml
#在尾部增加如下内容
  - job_name: nginx
    metrics_path: "/metrics"
    static_configs:
    - targets:
          - 192.168.2.107:9913
      labels:
        service: nginx

在这里插入图片描述

重新载入配置

systemctl reload prometheus

Step5 访问Prometheus web页面

浏览器查看 Prometheus 页面的 Status -> Targets
在这里插入图片描述

五、部署 Grafana平台进行展示

5.1 下载和安装

#下载地址
https://grafana.com/grafana/download
https://mirrors.bfsu.edu.cn/grafana/yum/rpm/
yum install grafana-enterprise-8.5.9-1.x86_64.rpm

在这里插入图片描述

systemctl enable grafana-server --now

netstat -natp | grep :3000

在这里插入图片描述

浏览器访问:http://192.168.2.108:3000默认账号和密码为 admin/admin
在这里插入图片描述
在这里插入图片描述

5.2 配置数据源

Configuration -> Data Sources -> Add data source -> 选择 Prometheus

HTTP -> URL 输入 http://192.168.2.108:9090

点击 Save & Test

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点击 上方菜单 Dashboards--->Import 所有默认模板

Dashboards -> Manage ,选择 Prometheus 2.0 Stats 或 Prometheus Stats 即可看到 Prometheus job 实例的监控图像

在这里插入图片描述
在这里插入图片描述

5.3 导入grafana监控面板

浏览器访问:https://grafana.com/grafana/dashboards

在页面中搜索 node exporter ,选择适合的面板,点击 Copy ID 或者 Download JSON

在这里插入图片描述
在这里插入图片描述

grafana 页面中,+ Create -> Import ,输入面板 ID 号或者上传 JSON 文件,点击 Load,即可导入监控面板

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

【性能优化】CPU利用率飙高与内存飙高问题

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化&#xff0c;文章内容兼具广度、深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于…

解决:ImportError: cannot import name ‘Adam‘ from ‘keras.optimizers‘

解决&#xff1a;ImportError: cannot import name ‘Adam‘ from ‘keras.optimizers‘ 背景 在使用之前的代码时&#xff0c;报错&#xff1a; from keras.optimizers import Adam ImportError: cannot import name ‘Adam’ 报错问题 from keras.optimizers import Adam I…

【赠书第7期】从零基础到精通Flutter开发

文章目录 前言 1 安装Flutter和Dart 2 了解Flutter的基础概念 2.1 Widget 2.2 MaterialApp和Scaffold 2.3 Hot Reload 3 编写你的第一个Flutter应用 3.1 创建一个Flutter项目 3.2 修改默认页面 3.3 添加交互 4 深入学习Flutter高级特性 4.1 路由和导航 4.2 状态管…

「 系统设计 」 为什么要做架构分层?

「 系统设计 」 为什么要做架构分层&#xff1f; 参考&鸣谢 3.设计模式之分层思维&#xff1a;为什么要做代码分层架构&#xff1f; 从零开始学架构&#xff08;八&#xff09;分层架构和设计模式 架构模式之分层架构总结 文章目录 「 系统设计 」 为什么要做架构分层&…

【libGDX】使用Mesh绘制立方体

1 前言 本文主要介绍使用 Mesh 绘制立方体&#xff0c;读者如果对 Mesh 不太熟悉&#xff0c;请回顾以下内容&#xff1a; 使用Mesh绘制三角形使用Mesh绘制矩形使用Mesh绘制圆形 在绘制立方体的过程中&#xff0c;主要用到了 MVP &#xff08;Model View Projection&#xff0…

<JavaEE> 什么是进程(Process)?进程管理,进程调度,内存管理,进程间通信和多进程编程

目录 一、进程&#xff08;Process&#xff09;的概念 二、进程管理 三、进程调度 四、内存管理 五、进程间通信 六、多进程编程 一、进程&#xff08;Process&#xff09;的概念 进程&#xff08;process&#xff09;也称为任务&#xff08;task&#xff09;&#xff0c…

sam和mobilesam的c#调用dll

这个主要注意&#xff1a; 我原本从一个地方把这个工程拷贝到另一个地方&#xff0c;然后我看了解决方案下的依赖项是有感叹号的&#xff0c;且这个时候代码出现很多下划的波浪红线。 然后我的做法如下&#xff1a; 然后我发现一直添加不了opencvsharp的dll文件&#xff0c;报…

Adiponectin 脂联素 ; T-cadherin +exosome

T-cadherin Adiponectin exosome T-cadherin Adiponectin exosome 代谢综合征中 外泌体、脂肪组织 和 脂联素 的器官间通讯-2019.pdf

基于IDEA+HTML+SpringBoot前后端分离电子商城

基于springboot的电子商城 项目介绍&#x1f481;&#x1f3fb; •B2C 商家对客户 •C2B2C 客户对商家对客户 1.1.1 B2C 平台运营方即商品的卖家 小米商城 •商品 •用户 1.1.2 C2B2C 平台运营方不卖商品&#xff08;也可以卖&#xff09; 卖家是平台的用户 买家也是平台用户 •…

HarmonyOS(五)—— 认识页面和自定义组件生命周期

前言 在前面我们通过如何创建自定义组件一文知道了如何如何自定义组件以及自定义组件的相关注意事项&#xff0c;接下来我们认识一下页面和自定义组件生命周期。 自定义组件和页面的关系 在开始之前&#xff0c;我们先明确自定义组件和页面的关系 自定义组件&#xff1a;Co…

基于C#实现线段树

一、线段树 线段树又称"区间树”&#xff0c;在每个节点上保存一个区间&#xff0c;当然区间的划分采用折半的思想&#xff0c;叶子节点只保存一个值&#xff0c;也叫单元节点&#xff0c;所以最终的构造就是一个平衡的二叉树&#xff0c;拥有 CURD 的 O(lgN)的时间。 从…

解决:javax.websocket.server.ServerContainer not available 报错问题

原因&#xff1a; 用于扫描带有 ServerEndpoint 的注解成为 websocket&#xff0c;该方法是 服务器端点出口&#xff0c;当进行 SpringBoot 单元测试时&#xff0c;并没有启动服务器&#xff0c;所以当加载到这个bean时会报错。 解决方法&#xff1a; 加上这个注解内容 Spr…

不做机器视觉工程师,转行,转岗的建议与想法

正所谓外行看热闹&#xff0c;内行看门道。提前咨询前辈们&#xff0c;多问问&#xff0c;多看看。要做就做&#xff0c;一定要提前做好防范。 无论你是要转行或者是转岗&#xff0c;看你有没有本钱和试错成本 有些人&#xff0c;家庭好&#xff0c;可以一直去试错和从头再来。…

MySQL 8 配置文件详解与最佳实践

MySQL 8 是一款强大的关系型数据库管理系统&#xff0c;通过适当的配置文件设置&#xff0c;可以充分发挥其性能潜力。在这篇博客中&#xff0c;我们将深入探究 MySQL 8 常用的配置文件&#xff0c;并提供一些建议&#xff0c;帮助您优化数据库性能。 配置文件概览 在 MySQL …

4.常见面试题--操作系统

特点&#xff1a;并发性、共享性、虚拟性、异步性。 Windows 和 Linux 内核差异 对于内核的架构⼀般有这三种类型&#xff1a; ● 宏内核&#xff0c;包含多个模块&#xff0c;整个内核像⼀个完整的程序&#xff1b; ● 微内核&#xff0c;有⼀个最⼩版本的内核&#xff0…

linux的基础命令

文章目录 linux的基础命令一、linux的目录结构&#xff08;一&#xff09;Linux路径的描述方式 二、Linux命令入门&#xff08;一&#xff09;Linux命令基础格式 三、ls命令&#xff08;一&#xff09;HOME目录和工作目录&#xff08;二&#xff09;ls命令的参数1.ls命令的-a选…

Java项目如何打包成Jar(最简单)

最简单的办法&#xff0c;使用Maven插件&#xff08;idea自带&#xff09; 1.选择需要打包的mudule&#xff0c;点击idea右侧的maven插件 2.clean操作 3.选择需要的其他mudule&#xff0c;进行install操作&#xff08;如果有&#xff09; 4.再次选择需要打包的module&#…

UDP客户端使用connect与UDP服务器使用send函数和recv函数收发数据

服务器代码编译运行 服务器udpconnectToServer.c的代码如下&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include<sys/socket.h> #include<errno.h> #inclu…

什么是网络爬虫技术?它的重要用途有哪些?

网络爬虫&#xff08;Web Crawler&#xff09;是一种自动化的网页浏览程序&#xff0c;能够根据一定的规则和算法&#xff0c;从互联网上抓取和收集数据。网络爬虫技术是随着互联网的发展而逐渐成熟的一种技术&#xff0c;它在搜索引擎、数据挖掘、信息处理等领域发挥着越来越重…

CentOS Stream 9系统Cgroup问题处理

安装docker容器启动失败 之前适配过Ubuntu系统的容器&#xff0c;由于版本比较高&#xff0c;没有挂载Cgroup的路径。这次使用Centos Stream 9系统安装docker容器时也遇到了这个情况。由于处理方式有些不一样&#xff0c;所以记录一下。 这是docker容器启动过报错的输出日志。…