Prometheus服务器、Prometheus被监控端、Grafana、监控MySQL数据库、自动发现概述、配置自动发现、Alertmanager

目录

Prometheus概述

部署Prometheus服务器

环境说明:

配置时间

安装Prometheus服务器

添加被监控端

部署通用的监控exporter

Grafana

概述

部署Grafana

展示node1的监控信息

监控MySQL数据库

配置MySQL

配置mysql exporter

配置mysql exporter

配置prometheus监控mysql

自动发现机制

概述

基于文件自动发现

修改Prometheus使用自动发现

配置web2接受Prometheus监控

Alertmanager

概述

Alertmanager特性

部署Alertmanager

部署

配置文件

Prometheus与Alertmanager对接

配置Alertmanager通过邮件发送告警


Prometheus概述

  • Prometheus是一个开源系统监控和警报工具包,最初由 SoundCloud构建。
  • 也是一款监控软件,也是一个时序数据库。Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳以及称为标签的可选键值对一起存储。
  • 主要用在容器监控方面,也可以用于常规的主机监控。
  • 使用google公司开发的go语言编写。
  • Prometheus是一个框架,可以与其他组件完美结合。

部署Prometheus服务器

环境说明:

  • Prometheus:192.168.88.5
  • web1:192.168.88.100

配置时间

# 1. 查看时区[root@prometheus ~]# timedatectl Local time: Sun 2023-01-01 11:15:11 CSTUniversal time: Sun 2023-01-01 03:15:11 UTCRTC time: Sun 2023-01-01 03:15:11Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: noNTP service: inactiveRTC in local TZ: no# 2. 如果时区不正确,则改为正确的时区[root@prometheus ~]# timedatectl set-timezone Asia/Shanghai# 3. 查看时间[root@prometheus ~]# date# 4. 如果时间不正确,则改为正确的时间[root@prometheus ~]# date -s "年月日 时:分:秒"

安装Prometheus服务器

  • 拷贝Prometheus相关软件包到服务器
  • 解压即部署
[root@prometheus ~]# cd prometheus_soft/[root@prometheus prometheus_soft]# tar xf prometheus-2.37.5.linux-amd64.tar.gz [root@prometheus prometheus_soft]# mv prometheus-2.37.5.linux-amd64 /usr/local/prometheus
  • 配置文件

    • 配置文件中包含三个配置块:globalrule_filesscrape_configs
    • global块控制 Prometheus 服务器的全局配置。我们有两个选择。第一个,scrape_interval控制 Prometheus 抓取目标的频率。您可以为单个目标覆盖它。在这种情况下,全局设置是每 15 秒抓取一次。该evaluation_interval选项控制 Prometheus 评估规则的频率。Prometheus 使用规则来创建新的时间序列并生成警报。
    • rule_files块指定我们希望 Prometheus 服务器加载的任何规则的位置。现在我们还没有规则。
    • 最后一个块,scrape_configs控制 Prometheus 监控的资源。由于 Prometheus 还将有关自身的数据公开为 HTTP 端点,因此它可以抓取和监控自身的健康状况。在默认配置中,有一个名为 的作业prometheus,用于抓取 Prometheus 服务器公开的时间序列数据。该作业包含一个单一的、静态配置的目标,即localhost的9090端口。Prometheus期望度量在/metrics路径上的目标上可用,所以这个默认作业是通过 URL 抓取的:http://localhost:9090/metrics。
  • 编写服务启动文件并启动服务

[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service[Unit]Description=Prometheus Monitoring SystemAfter=network.target[Service]ExecStart=/usr/local/prometheus/prometheus \--config.file=/usr/local/prometheus/prometheus.yml \--storage.tsdb.path=/usr/local/prometheus/data/[Install]WantedBy=multi-user.target# 启动服务[root@prometheus prometheus_soft]# systemctl daemon-reload [root@prometheus prometheus_soft]# systemctl enable prometheus.service --now[root@prometheus prometheus_soft]# ss -tlnp | grep :9090LISTEN 0      128                *:9090             *:*    users:(("prometheus",pid=4396,fd=7)) 
  • 访问web页面:http://192.168.88.5:9090/

  • 查看监控自身的数据,如分配置给Prometheus运行的内存数量

添加被监控端

  • 监控方式:

    • 拉取:pull。监控端联系被监控端,采集数据
    • 推送:push。被监控端主动把数据发给监控端。在prometheus中,push的方式需要额外的组件pushgateway
  • 被监控端根据自身运行的服务,可以运行不同的exporter(被监控端安装的、可以与Prometheus通信,实现数据传递的软件)

  • exporter列表:Exporters and integrations | Prometheus

部署通用的监控exporter

  • node-exporter用于监控硬件和系统的常用指标
  • exporter运行于被监控端,以服务的形式存在。每个exporter所使用的端口号都不一样。
  • 在web1[192.168.88.100]上部署node exporter
# 1. 拷贝node_exporter到web1[root@prometheus ~]# scp prometheus_soft/node_exporter-1.5.0.linux-amd64.tar.gz 192.168.88.100:/root/# 2. 解压即部署[root@web1 ~]# tar xf node_exporter-1.5.0.linux-amd64.tar.gz [root@web1 ~]# mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter# 3. 创建服务文件,并启动服务[root@web1 ~]# vim /usr/lib/systemd/system/node_exporter.service[Unit]Description=node_exporterAfter=network.target[Service]Type=simpleExecStart=/usr/local/node_exporter/node_exporter[Install]WantedBy=multi-user.target[root@web1 ~]# systemctl daemon-reload [root@web1 ~]# systemctl enable node_exporter.service --now[root@web1 ~]# ss -tlnp | grep :9100LISTEN 0      128                *:9100             *:*    users:(("node_exporter",pid=7371,fd=3)) 
  • 在Prometheus服务器上添加监控节点
# 1. 修改配置文件,追加以下内容。特别注意缩进[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml ...略...- job_name: "web1"static_configs:- targets: ["192.168.88.100:9100"]# 2. 重启服务[root@prometheus ~]# systemctl restart prometheus.service 
  • 查看添加结果

Grafana

概述

  • Grafana是一款开源的、跨平台的、基于web的可视化工具
  • 展示方式:客户端图表、面板插件
  • 数据源可以来自于各种源,如prometheus

部署Grafana

  • 装包、启服务
[root@prometheus ~]# yum install -y prometheus_soft/grafana-enterprise-9.3.2-1.x86_64.rpm[root@prometheus ~]# systemctl enable grafana-server.service --now
  • 初始化。访问http://192.168.88.5:3000。初始用户名和密码都是admin。第一次登陆时,要求改密码,本例中密码改为tedu.cn。如果登陆报错,请更换其他浏览器。

  • 修改主题

  • 对接Prometheus

 添加仪表盘

 查看仪表盘

展示node1的监控信息

  • grafana模板下载:Dashboards | Grafana Labs
  • 导入主机监控模板。

 

监控MySQL数据库

配置MySQL

[root@web1 ~]# yum install -y mysql-server[root@web1 ~]# systemctl enable mysqld --now[root@web1 ~]# mysqlmysql> create user dbuser1@localhost identified by '123456';mysql> grant all privileges on *.* to dbuser1@localhost;mysql> quit

配置mysql exporter

配置mysql exporter
# 1. 安装[root@prometheus ~]# scp prometheus_soft/mysqld_exporter-0.14.0.linux-amd64.tar.gz 192.168.88.100:/root/[root@web1 ~]# tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz [root@web1 ~]# mv mysqld_exporter-0.14.0.linux-amd64 /usr/local/mysqld_exporter# 2. 编写用于连接mysql服务的配置文件[root@web1 ~]# vim /usr/local/mysqld_exporter/.my.cnf[client]host=127.0.0.1port=3306user=dbuser1password=123456# 3. 创建service文件[root@web1 ~]# vim /usr/lib/systemd/system/mysqld_exporter.service[Unit]Description=mysqld_exporterAfter=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@web1 ~]# systemctl daemon-reload[root@web1 ~]# systemctl enable mysqld_exporter.service --now
配置prometheus监控mysql
  • 修改配置文件,启动服务
# 1. 在配置文件中追加内容[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml ...略...- job_name: "mysql"static_configs:- targets: ["192.168.88.100:9104"]# 2. 重启服务[root@prometheus ~]# systemctl restart prometheus.service 
  • 查看状态

  • 在Grafana中展示数据

 

 ​​​​​

自动发现机制

概述

  • 自动发现是指Prometheus自动对节点进行监控,不需要手动一个一个去添加,和Zabbix的自动发现、自动注册一个道理
  • Prometheus有多种自动发现发现,比如file_sd_configs基于文件自动发现、基于K8S自动发现、基于openstack自动发现、基于consul自动发现等。

基于文件自动发现

  • file_sd_configs实现文件级别的自动发现
  • 使用文件自动发现功能后,Prometheus会定期检查配置文件是否有更新
  • 如果有更新的话就将新加入的节点接入监控,服务端无需重启服务
修改Prometheus使用自动发现
  • 修改Prometheus
# 1. 备份现有配置文件[root@prometheus ~]# cp /usr/local/prometheus/prometheus.yml ~# 2. 修改配置文件,删除静态配置,添加自动发现配置[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml# 将scrape_configs及以下内容修改为:21 scrape_configs:22   - job_name: "prometheus"23     file_sd_configs:24       - refresh_interval: 120s25         files:26           - /usr/local/prometheus/sd_config/*.yml# 3. 重启服务[root@prometheus ~]# systemctl restart prometheus.service 
  • web中将没有任何监控项目

  • 创建自动发现规则文件
[root@prometheus ~]# mkdir /usr/local/prometheus/sd_config[root@prometheus ~]# vim /usr/local/prometheus/sd_config/discovery.yml- targets:- 192.168.88.5:9090- 192.168.88.100:9100- 192.168.88.100:9104
  • 大概2分钟之后,刷新target web页面

配置web2接受Prometheus监控
  • 将web1的node exporter拷贝到web2
[root@web1 ~]# scp -r /usr/local/node_exporter 192.168.88.200:/usr/local/[root@web1 ~]# scp /usr/lib/systemd/system/node_exporter.service 192.168.88.200:/usr/lib/systemd/system/
  • 启服务
[root@web2 ~]# systemctl daemon-reload [root@web2 ~]# systemctl enable node_exporter.service --now
  • 修改自动发现文件
[root@prometheus ~]# vim /usr/local/prometheus/sd_config/discovery.yml - targets:- 192.168.88.5:9090- 192.168.88.100:9100- 192.168.88.100:9104- 192.168.88.200:9100
  • 大概2分钟之后,刷新target web页面

  • 在Grafana上查看结果

Alertmanager

概述

  • Prometheus服务器中的告警规则向Alertmanager发送告警。然后,Alertmanager管理这些告警,包括静默、抑制、分组以及通过电子邮件、即时消息系统和聊天平台等方法发出通知。

  • 设置告警和通知的主要步骤是:

    • 设置和配置Alertmanager
    • 配置Prometheus与Alertmanager对接
    • 在普罗米修斯中创建告警规则
  • 在Prometheus中一条告警规则主要由以下几部分组成:

    • 告警名称:用户需要为告警规则命名
    • 告警规则:告警规则实际上主要由PromQL进行定义,其实际意义是当表达式(PromQL)查询结果持续多长时间(During)后出发告警

Alertmanager特性

  • Alertmanager处理客户端应用程序(如Prometheus服务器)发送的警报。它负责重复数据删除、分组,并将其路由到正确的接收方集成
  • 分组:分组将性质相似的警报分类到单个通知中。这在较大的停机期间特别有用,此时许多系统同时发生故障,数百到数千个警报可能同时发出。
  • 抑制:抑制是当某一告警发出后,可以停止重复发送由此告警引发的其它告警的机制。
  • 静默提供了一个简单的机制可以快速根据标签对告警进行静默处理。如果接收到的告警符合静默的配置, Alertmanager则不会发送告警通知。静默设置需要在Alertmanager的Web页面上进行设置。

部署Alertmanager

部署
  • 解压即部署
# 1. 解压[root@prometheus ~]# cd prometheus_soft/[root@prometheus prometheus_soft]# tar xf alertmanager-0.25.0.linux-amd64.tar.gz [root@prometheus prometheus_soft]# mv alertmanager-0.25.0.linux-amd64 /usr/local/alertmanager# 2. 编写服务文件并启动[root@prometheus prometheus_soft]# vim /usr/lib/systemd/system/alertmanager.service[Unit]Description=alertmanager System[Service]ExecStart=/usr/local/alertmanager/alertmanager \--config.file=/usr/local/alertmanager/alertmanager.yml[Install]WantedBy=multi-user.target[root@prometheus ~]# systemctl daemon-reload [root@prometheus ~]# systemctl enable alertmanager.service --now
  • 访问http://192.168.88.5:9093可以访问web配置页面

配置文件
  • Alertmanager的配置主要包含两个部分:路由(route)以及接收器(receivers)。所有的告警信息都会从配置中的顶级路由(route)进入路由树,根据路由规则将告警信息发送给相应的接收器。

  • 在Alertmanager中可以定义一组接收器,比如可以按照角色(比如系统运维,数据库管理员)来划分多个接收器。接收器可以关联邮件,Slack以及其它方式接收告警信息。

  • 目前配置文件中只设置了一个顶级路由route并且定义的接收器为default-receiver。因此,所有的告警都会发送给default-receiver。

  • 因此在Alertmanager配置中一般会包含以下几个主要部分:

    • 全局配置(global):用于定义一些全局的公共参数,如全局的SMTP配置
    • 模板(templates):用于定义告警通知时的模板,如HTML模板,邮件模板等
    • 告警路由(route):根据标签匹配,确定当前告警应该如何处理
    • 接收器(receivers):接收器是一个抽象的概念,它可以是一个邮箱也可以是微信,Slack或者Webhook 等,接收器一般配合告警路由使用
    • 抑制规则(inhibit_rules):合理设置抑制规则可以减少垃圾告警的产生
Prometheus与Alertmanager对接
  • 编辑Prometheus配置文件,修改alerting配置
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml ...略...8 alerting:9   alertmanagers:10     - static_configs:11         - targets:12           - localhost:9093...略...[root@prometheus ~]# systemctl restart prometheus.service 
  • 访问:http://192.168.88.5:9090/config,查看配置是否生效

配置Alertmanager通过邮件发送告警
# 1. 备份配置文件[root@prometheus ~]# cp /usr/local/alertmanager/alertmanager.yml ~# 2. 修改配置文件[root@prometheus ~]# vim /usr/local/alertmanager/alertmanager.yml global:smtp_from: 'zzg@tedu.cn'      # 发件人地址smtp_smarthost: 'localhost:25'   # 邮件服务器地址smtp_require_tls: false       # 是否使用TLS安全连接route:group_by: ['alertname']group_wait: 30sgroup_interval: 5mrepeat_interval: 1hreceiver: 'default-receiver'  # 接收器receivers:- name: 'default-receiver'    # 配置接收器为邮件email_configs:- to: 'root@localhost.localdomain'inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']# 3. 定义告警规则[root@prometheus ~]# mkdir /usr/local/prometheus/rules[root@prometheus ~]# vim /usr/local/prometheus/rules/hoststats-alert.rulesgroups:- name: examplerules:- alert: InstanceDownexpr: up == 0for: 5m labels:severity: warnannotations:summary: "Instance {{ $labels.instance }} down"description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."- alert: hostMemUsageAlertexpr: (node_memory_MemTotal - node_memory_MemAvailable)/node_memory_MemTotal > 0.85for: 1m labels:severity: warnannotations:summary: "Instance {{ $labels.instance }} MEM usgae high"# 4. 在Prometheus中声明规则文件位置[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml ...略...15 rule_files:16   - /usr/local/prometheus/rules/*.rules...略...# 5. 重启服务[root@prometheus ~]# systemctl restart alertmanager.service [root@prometheus ~]# systemctl restart prometheus.service # 6. 安装并启动邮件服务[root@prometheus ~]# yum install -y postfix mailx[root@prometheus ~]# systemctl enable postfix --now
  • 查看加载的规则文件

  • 测试告警。
# 1. 将web1关机[root@web1 ~]# shutdown -h now# 2. 查看邮件[root@prometheus ~]# mail>N  1 zzg@tedu.cn           Sun Jan  1 18:59 227/10404 "[FIRING:1] InstanceDown (192.168.88.200:9100 prometheus warn)"

将告警邮件内容从【<!DOCTYPE ...】这一行到【</html>】复制,粘贴到一个文件中,如文件名为alert.html,用firefox打开,可以得到以下页面:

  • 查看Alertmanager

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

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

相关文章

前端架构: 简易版脚手架开发

开发一个简易版脚手架 将脚手架命名为: xyzcli, 这个名称比较随意&#xff0c;截止在目前&#xff0c;我看到npm上没有这个包&#xff0c;尽量避免重名初始化 $ mkdir xyzcli$ cd xyzcli$ npm init -y 新建 bin/index.js#!/usr/bin/env nodeconsole.log(xyzcli)回到 package.j…

【java】11:IDEA常用快捷键+包

1. IDEA 常用快捷键 删除当前行, 默认是 ctrl Y 自己配置 ctrl d复制当前行, 自己配置 ctrl alt 向下光标补全代码 alt /添加注释和取消注释 ctrl / 【第一次是添加注释&#xff0c;第二次是取消注释】导入该行需要的类 先配置 auto import , 然后使用 altenter 即可快速…

Stable Diffusion 模型下载:majicMIX sombre 麦橘唯美

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

Matplotlib初探:认识数据可视化与Matplotlib

Matplotlib初探&#xff1a;认识数据可视化与Matplotlib Fig.1 利用Matplotlib进行数据可视化( 可视化代码见文末) &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;一、数据可视化简介&#x1f333;&#x1f333;二、Matplotlib库简介&#x…

c语言_实现类class的功能 实例

c语言_实现类class的功能 实例 1.需求与背景2.实例1.类的头文件 class_A.h2.类的实现 class_A.c3.引用4.编译与运行 3.总结 1.需求与背景 使用C , python语言久了, 发现 类 class写代码逻辑更方便, 简洁. 封装的API更加易用; 内核代码中, 也经常看到类似类的封装. 自己尝试实现…

汉服租赁网站:Java技术的文化应用

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

K8S系列文章之 [Alpine基础环境配置]

用户手册&#xff1a;Alpine User Handbook 官方WIKI&#xff1a;Alpine Linux WIKI 安装 安装的实际逻辑是通过 setup-alpine​ 脚本去调用其他功能的脚本进行配置&#xff0c;可以通过 vi 查看脚本。如果某个部分安装失败&#xff0c;可退出后单独再次执行。通过镜像文件&a…

FL Studio版本升级-FL Studio怎么升级-FL Studio升级方案

已经是新年2024年了&#xff0c;但是但是依然有很多朋友还在用FL Studio12又或者FL Studio20&#xff0c;今天这篇文章教大家如何升级FL Studio21 FL Studio 21是Image Line公司开发的音乐编曲软件&#xff0c;除了软件以外&#xff0c;我们还提供了FL Studio的升级服务&#…

树莓派与vnc的错误 树莓派自启vnc虚拟桌面

0.低分辨率屏幕可以临时改sudo nano /boot/config.txt里面的 #framebuffer_width1920 #framebuffer_height1280 改成高分辨率之后去除# 临时用vnc大屏操作 1.vnc一直无法启动vncserver-virtual -RandR1920*1280 删除xstartup.custom和用xstartup.save复原xstartup内容 就可…

NeRF——静态的快速扫描方法

NeRF&#xff08;Neural Radiance Fields&#xff09;是一种用于三维场景重建和渲染的深度学习方法&#xff0c;它利用神经网络来表示场景的连续体积密度和颜色信息。通过从一组稀疏的二维图像中重建高质量的三维场景&#xff0c;并能从任意视角生成逼真的图像&#xff0c;NeRF…

使用 MinIO 超级充电 TileDB 引擎

MinIO 是一个强大的主要 TileDB 后端&#xff0c;因为两者都是为性能和规模而构建的。MinIO 是一个单一的 Go 二进制文件&#xff0c;可以在许多不同类型的云和本地环境中启动。它非常轻量级&#xff0c;但也具有复制和加密等功能&#xff0c;并且提供与各种应用程序的集成。Mi…

牛客周赛 Round 32 E.小红的回文数【挖掘性质+哈希前缀和】

原题链接&#xff1a;https://ac.nowcoder.com/acm/contest/75174/E 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 小红定义一个整数是“好数”&#xff0c;当且仅当该…

java学习07---综合练习

飞机票 1.需求: 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 按照如下规则计算机票价格&#xff1a;旺季&#xff08;5-10月&#xff09;头等舱9折&#xff0c;经济舱8.5折&#xff0c;淡季&#xff08;11月到来年4月&#xff09;头等舱7…

Linux命令-blockdev命令(从命令行调用区块设备控制程序)

说明 blockdev命令 在命令调用“ioxtls”函数&#xff0c;以实现对设备的控制。 语法 blockdev(选项)(参数)选项 -V&#xff1a;打印版本号并退出&#xff1b; -q&#xff1a;安静模式&#xff1b; -v&#xff1a;详细信息模式&#xff1b; --setro&#xff1a;只读&#x…

浅谈jmeter性能测试步骤入门

一、Jmeter简介 1 概述 jmeter是一个软件&#xff0c;使负载测试或业绩为导向的业务&#xff08;功能&#xff09;测试不同的协议或技术。 它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。 它主要对 Apache JServ&#xff08;现在称为如 Apache Tomca…

以谷歌浏览器为例 讲述 JavaScript 断点调试操作用法

今天来说个比较实用的东西 用浏览器开发者工具 对 javaScript代码进行调试 我们先创建一个index.html 编写代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&…

Verilog和Verilog-A有什么区别

Verilog和Verilog-A都是硬件描述语言&#xff0c;用于设计和仿真电子系统。 Verilog 是一种硬件描述语言&#xff0c;广泛用于数字电路的设计、验证和仿真。它是一种结构化的语言&#xff0c;用于描述数字电路的行为和结构。Verilog可用于编写数字逻辑、寄存器传输级&#xff…

Nature Machine Intelligence 法国国家科学研究中心评论“使用大语言模型进行研究的危机”

ChatGPT 于 2022 年底发布&#xff0c;将大型语言模型 &#xff08;LLM&#xff09; 推到了聚光灯下。通过使用户能够直接用自然语言查询模型&#xff0c;ChatGPT 实现了对这些模型的访问——这是一个受欢迎的发展。从那时起&#xff0c;ChatGPT 和 Bard、Claude 和 Bing AI 等…

linux安装单机版redis详细步骤,及python连接redis案例

文章目录 linux相关工具yum方式安装redis使用编译安装redis配置redis为systemctl启动其它: 安装redis6.0python连接redis案例 linux相关工具 ./redis-benchmark #用于进行redis性能测试的工具 ./redis-check-dump #用于修复出问题的dump.rdb文件 ./redis-cli …

MongoDB聚合:$geoNear

$geoNear根据指定的点按照距离以由近到远的顺序输出文档。 从4.2版本开始&#xff0c;MongoDB移除了limit和num选项以及100个文档的限制&#xff0c;如果要限制结果文档的数量可以使用$limit阶段。 语法 { $geoNear: { <geoNear options> } }$geoNear操作接受一个包含…