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

centos7系统搭建nagios监控

~监控节点安装

1. 系统准备

1.1 更新系统并安装依赖

sudo yum install -y httpd php php-cli gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel wget unzip
sudo yum install -y epel-release  # 安装 EPEL 仓库
sudo yum install -y automake autoconf libtool #安装 Autotools 和依赖

2. 创建 Nagios 用户和组

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd apache  # 允许 Apache 访问 Nagios

3. 安装 Nagios Core

3.1 下载并编译源码

cd /tmp
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
tar xzf nagios-4.4.6.tar.gz
cd nagios-4.4.6
​
# 配置、编译、安装
./configure --with-command-group=nagcmd
make all
sudo make install
sudo make install-config    # 安装默认配置文件
sudo make install-commandmode

4. 安装 Nagios 插件

4.1 下载并编译插件

cd /tmp
wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar xzf nagios-plugins-2.3.3.tar.gz
cd nagios-plugins-2.3.3
​
# 配置、编译、安装
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install

5. 配置 Apache 和 Web 界面

5.1 生成 Apache 配置文件

sudo cp /tmp/nagios-4.4.6/sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf

5.2 配置身份验证

# 创建 Web 登录用户(例如 `nagiosadmin`)
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
# 输入两次密码

5.3 重启 Apache

sudo systemctl start httpd
sudo systemctl enable httpd

6. 配置 Systemd 服务

6.1 创建服务文件

sudo vi /etc/systemd/system/nagios.service

添加以下内容:

[Unit]
Description=Nagios
Wants=network-online.target
After=network-online.target
​
[Service]
Type=forking
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg
ExecReload=/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg && /usr/local/nagios/bin/nagios -s reload
​
[Install]
WantedBy=multi-user.target

6.2 启动 Nagios 服务

sudo systemctl daemon-reload
sudo systemctl start nagios
sudo systemctl enable nagios
sudo systemctl status nagios  # 检查状态应为 active (running)

7. 配置防火墙

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

8. 调整 SELinux 策略(可选)

sudo setenforce 0  # 临时禁用 SELinux(测试用)
# 或永久调整策略
sudo ausearch -c 'nagios' --raw | audit2allow -M my-nagios
sudo semodule -i my-nagios.pp

9. 访问 Nagios Web 界面

通过浏览器访问:

http://<服务器IP>/nagios​
sudo chown -R nagios:nagios /usr/local/nagios
sudo chmod -R 755 /usr/local/nagios
​
1. 检查 Nagios 配置文件
运行配置验证命令,确保无语法错误:
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
•关键点:
如果输出显示错误(如 Error processing object config files),需按提示修复配置文件。
常见错误:未闭合的引号、错误的主机/服务定义、插件路径错误。
•2. 调整 Systemd 服务超时时间
编辑服务文件,增加启动超时时间(默认 90 秒):
sudo vi /etc/systemd/system/nagios.service
修改以下参数:
[Service]
TimeoutStartSec=300  # 增加至 300 秒(5 分钟)
TimeoutStopSec=30    # 停止超时 30 秒
重新加载并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart nagios
  • 用户名nagiosadmin

  • 密码:之前设置的密码


10. 添加被监控节点

10.1 创建主机配置文件

sudo vi /usr/local/nagios/etc/objects/hosts.cfg

添加主机定义(示例):

define host {host_name       node1alias           Node1 Server
# 被监控节点 IPaddress         192.168.1.100check_command   check-host-alivemax_check_attempts  5check_interval   5check_period     24x7contacts        nagiosadmin
}

10.2 创建服务配置文件

sudo vi /usr/local/nagios/etc/objects/services.cfg

添加服务定义(示例):

sudo cat /usr/local/nagios/etc/objects/templates.cfg
​
sudo nano /usr/local/nagios/etc/objects/services1.cfg
define service {use                 local-service #cat /usr/local/nagios/etc/objects/templates.cfg的service的namehost_name           node1service_description Disk Usagecheck_command       check_nrpe!check_diskcontacts            nagiosadmin
}
​
sudo nano /usr/local/nagios/etc/objects/services.cfg
define service {use                 local-service #cat /usr/local/nagios/etc/objects/templates.cfg的service的namehost_name               node1service_description     CPU Loadcheck_command           check_nrpe!check_loadcontacts                nagiosadmin
}

10.3 配置 check_nrpe 命令

编辑 /usr/local/nagios/etc/objects/commands.cfg,添加:

define command {command_name    check_nrpecommand_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$
}

10.4 验证并重启 Nagios

sudo vi /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services1.cfg
cfg_file=/usr/local/nagios/etc/objects/services2.cfg
​
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg  # 验证配置
sudo systemctl restart nagios
​

11. 验证监控状态

  1. Web 界面:登录后查看 HostsServices 状态是否为绿色(OK)。

  2. 命令行验证:/usr/local/nagios/libexec/check_nrpe -H <被监控节点IP> -c check_load

在 CentOS 7 主监控节点上安装 check_nrpe 插件的详细步骤

check_nrpe 是 Nagios 主监控节点用来通过 NRPE 协议与被监控节点通信的核心插件。以下是安装和配置的完整流程:


1. 安装依赖

sudo yum update -y
sudo yum install -y gcc make openssl-devel automake autoconf wget

2. 下载并编译 NRPE 源码

2.1 下载源码包

cd /tmp
wget https://githubfast.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
tar xzf nrpe-4.1.0.tar.gz
cd nrpe-4.1.0

2.2 配置并编译插件

仅编译 check_nrpe 插件(无需安装完整的 NRPE 服务):

./configure --with-ssl=/usr/bin/openssl
make check_nrpe  # 仅编译插件

3. 安装 check_nrpe 插件

3.1 手动复制插件到 Nagins 插件目录

sudo cp src/check_nrpe /usr/local/nagios/libexec/

3.2 设置权限

sudo chown nagios:nagios /usr/local/nagios/libexec/check_nrpe
sudo chmod 755 /usr/local/nagios/libexec/check_nrpe

4. 验证插件功能

测试插件是否能连接被监控节点:

/usr/local/nagios/libexec/check_nrpe -H <被监控节点IP> -c check_load

5. 配置 Nagios 使用 check_nrpe

5.1 定义命令

编辑 Nagios 命令配置文件:

sudo vi /usr/local/nagios/etc/objects/commands.cfg

添加以下内容:

define command {command_name    check_nrpecommand_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$
}

5.2 添加主机和服务定义

示例主机配置文件(如 hosts.cfg):

define host {host_name       node1alias           Node1 Serveraddress         192.168.1.100check_command   check-host-alivemax_check_attempts  5check_interval  5check_period    24x7contacts        nagiosadmin
}
​
define service {host_name               node1service_description     CPU Loadcheck_command           check_nrpe!check_loadcheck_interval          5check_period            24x7notification_interval   30contacts                nagiosadmin
}

5.3 验证并重启 Nagios

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
sudo systemctl restart nagios
​
​
后台运行
sudo nohup /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg >/dev/null 2>&1 &
​
杀死进行
kill -9 $(ps -aux | grep nagios | grep -v "grep" | awk -F " " '{print $2}')
​
​

~被监控节点

1. 系统准备

1.1 更新系统并安装依赖

sudo yum install -y epel-release
sudo yum install -y gcc make openssl-devel automake autoconf wget

2. 创建 Nagios 用户和组

# 创建 Nagios 用户和组(如果不存在)
sudo useradd -r -s /sbin/nologin nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios

3. 安装 Nagios 插件

3.1 下载并编译插件

cd /tmp
wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar xzf nagios-plugins-2.3.3.tar.gz
cd nagios-plugins-2.3.3
​
# 配置、编译、安装
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install
​
# 验证插件安装
ls /usr/local/nagios/libexec/check_*  # 应显示插件列表

4. 安装和配置 NRPE

4.1 下载并编译 NRPE

cd /tmp
wget https://githubfast.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
tar xzf nrpe-4.1.0.tar.gz
cd nrpe-4.1.0
​
# 配置并编译
./configure \--with-nagios-user=nagios \--with-nagios-group=nagios \--with-ssl=/usr/bin/openssl
​
make all
sudo make install

4.2 配置 NRPE 服务

编辑配置文件 /usr/local/nagios/etc/nrpe.cfg

sudo vi /usr/local/nagios/etc/nrpe.cfg

修改以下参数:

# 替换为实际IP
allowed_hosts=127.0.0.1,192.168.198.206
# 监听所有接口或者指定接口的IP地址
server_address=0.0.0.0
server_port=5666
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10%
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_mem]=/usr/local/nagios/libexec/check_mem -w 20% -c 10%

4.3 创建 Systemd 服务文件

sudo vi /etc/systemd/system/nrpe.service

添加以下内容:

[Unit]
Description=NRPE (Nagios Remote Plugin Executor)
After=network.target
​
[Service]
Type=simple
User=nagios
Group=nagios
ExecStart=/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
Restart=on-failure
​
[Install]
WantedBy=multi-user.target

4.4 启动 NRPE 服务

sudo systemctl daemon-reload
sudo systemctl start nrpe
sudo systemctl enable nrpe
sudo systemctl status nrpe  # 检查状态应为 active (running)

5. 配置防火墙

开放 NRPE 默认端口(5666):

sudo firewall-cmd --permanent --add-port=5666/tcp
sudo firewall-cmd --reload

6. 调整 SELinux 策略(可选)

6.1 临时禁用 SELinux 测试

sudo setenforce 0

6.2 永久调整策略(推荐)

sudo yum install -y policycoreutils-python
​
sudo ausearch -c 'nrpe' --raw | audit2allow -M my-nrpe
sudo semodule -i my-nrpe.pp

7. 验证 NRPE 功能

7.1 在 Nagios 主服务器上测试

# 测试 NRPE 连通性
/usr/local/nagios/libexec/check_nrpe -H <被监控节点IP>
​
# 测试具体命令(如检查磁盘)
/usr/local/nagios/libexec/check_nrpe -H <被监控节点IP> -c check_disk

~在 CentOS 7 上使用 Grafana + InfluxDB 展示 Nagios 监控数据的详细步骤

以下是将 Nagios 监控数据存储到 InfluxDB,并通过 Grafana 可视化的完整流程:


1. 安装并配置 InfluxDB

1.1 安装 InfluxDB

# 添加 InfluxDB 仓库
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
​
# 安装并启动服务
sudo yum install influxdb
sudo systemctl start influxdb
sudo systemctl enable influxdb

1.2 创建数据库和用户

# 进入 InfluxDB CLI
influx
​
# 创建数据库和用户
CREATE DATABASE nagios;
CREATE USER nagios_user WITH PASSWORD 'your_password' WITH ALL PRIVILEGES;
GRANT ALL ON nagios TO nagios_user;
exit

2. 安装并配置 Grafana

2.1 安装 Grafana

# 添加 Grafana 仓库
sudo tee /etc/yum.repos.d/grafana.repo <<EOF
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
​
# 安装并启动服务
sudo yum install grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

2.2 访问 Grafana

  • 打开浏览器访问:http://<服务器IP>:3000,默认账号:admin/admin


3. 配置 Nagios 将数据写入 InfluxDB

3.1 安装 NCPA(Nagios Cross-Platform Agent)

# 下载并安装 NCPA
wget https://assets.nagios.com/downloads/ncpa/ncpa-2.4.0-1.el7.x86_64.rpm
sudo rpm -i ncpa-*.rpm
​
# 配置 NCPA(允许主节点访问)
sudo nano /usr/local/ncpa/etc/ncpa.cfg
# 修改以下参数:
allowed_hosts = 127.0.0.1,<Nagios主节点IP>
community_string = your_community_string
​
# 重启服务
sudo systemctl restart ncpa_listener

3.2 配置 Nagios 输出到 InfluxDB

# 安装依赖工具(用于发送数据到 InfluxDB)
sudo yum install python3-pip
# 指定安装到系统目录
sudo pip3 install --target=/usr/lib64/python3.6/site-packages influxdb

~被监控节点

脚本内容**:

# 创建数据发送脚本
vi /usr/local/nagios/libexec/check_cpu_custom.sh
# cat  /usr/local/nagios/libexec/check_cpu_custom.sh
#!/bin/bash
​
# 设置区域为使用小数点格式
export LC_ALL=C
​
# 定义 InfluxDB 连接参数
INFLUXDB_HOST="192.168.198.206"          # InfluxDB 服务器地址
INFLUXDB_PORT="8086"               # 端口
INFLUXDB_DB="nagios"       # 数据库名
INFLUXDB_USER="nagios_user"             # 用户名
INFLUXDB_PASS="admin@123"      # 密码
HOST_NAME=$(hostname -s)           # 获取主机名
​
# 获取CPU使用率(基于/proc/stat的可靠方法)
# 第一次采样
read -r cpu user nice system idle iowait irq softirq steal guest guest_nice < /proc/stat
total1=$((user + nice + system + idle + iowait + irq + softirq + steal))
idle1=$((idle + iowait))
​
sleep 1
​
# 第二次采样
read -r cpu user nice system idle iowait irq softirq steal guest guest_nice < /proc/stat
total2=$((user + nice + system + idle + iowait + irq + softirq + steal))
idle2=$((idle + iowait))
​
# 计算差值
total_diff=$((total2 - total1))
idle_diff=$((idle2 - idle1))
​
# 计算使用率(保留两位小数)
if [ $total_diff -eq 0 ]; thenusage=0.00
elseusage=$(echo "scale=2; 100 * ($total_diff - $idle_diff) / $total_diff" | bc)usage=$(printf "%.2f" $usage)  # 确保格式为 0.00
fi
​
# 判断状态码
if [ $(echo "$usage >= 90" | bc -l) -eq 1 ]; thenstatus_code=2status_text="CRITICAL"
elif [ $(echo "$usage >= 80" | bc -l) -eq 1 ]; thenstatus_code=1status_text="WARNING"
elsestatus_code=0status_text="OK"
fi
​
# 生成纳秒级时间戳
#timestamp=$(date +%s%N)
timestamp=$(date +%s%N)  
​
# 发送数据到 InfluxDB(包含状态码)
curl -i -XPOST "http://${INFLUXDB_HOST}:${INFLUXDB_PORT}/write?db=${INFLUXDB_DB}&u=${INFLUXDB_USER}&p=${INFLUXDB_PASS}" \--data-binary "cpu_usage,host=${HOST_NAME} value=${usage},status=${status_code} ${timestamp}"
​
# 输出Nagios状态
echo "${status_text} - CPU使用率: ${usage}% | usage=${usage}%;80;90"
exit $status_code
​
验证脚本
chown nagios:nagios /usr/local/nagios/libexec/check_cpu_custom.sh
chmod 755 /usr/local/nagios/libexec/check_cpu_custom.sh
./usr/local/nagios/libexec/check_cpu_custom.sh

编辑nrpe.cfg文件,进行追加内容

vi /usr/local/nagios/etc/nrpe.cfg
​
command[check_cpu_custom]=/usr/local/nagios/libexec/check_cpu_custom.sh

~ 监控节点

设置权限**:

3.3 配置 Nagios 命令**

# 编辑 commands.cfg
sudo vi /usr/local/nagios/etc/objects/commands.cfg
​
# 添加以下命令定义
define command {command_name    check_cpu_customcommand_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
​
试验
/usr/local/nagios/libexec/check_nrpe -H 被监控节点IP地址 -c check_cpu_custom

3.4 修改服务模板

在服务定义中添加 submit_to_influxdb 命令:

define service {use                     local-servicehost_name               node1service_description     CPU Usage#check_command参数对应commands.cfg文件中参数,前面固定填写check_nrpe,后面的$HOSTADDRESS$参数command_line的参数用!隔开,默认被监控IP地址为host_name的node1  不进行填写  ,而node1在/usr/local/nagios/etc/objects/hosts.cfg文件有定义(PS:同时/etc/hosts文件也要对应IP地址和域名,注意统一性),$ARG1$填写command_name的参数check_command           check_nrpe[!被监控IP地址]!check_cpu_customcontacts                nagiosadmin#event_handler参数填写commands.cfg文件中的command_nameevent_handler           check_cpu_custom #event_handler_enabled为开启event_handlerevent_handler_enabled  1
}

4. 配置 Grafana 数据源和仪表盘

4.1 添加 InfluxDB 数据源

  1. 登录 Grafana,点击 Configuration > Data Sources > Add data source

  2. 选择

    InfluxDB

    ,填写以下信息:

    • URL: http://localhost:8086

    • Database: nagios

    • User: nagios_user

    • Password: your_password

4.2 导入 Nagios 仪表盘模板

  1. 访问 Grafana 仪表盘市场,搜索 "Nagios"。

  2. 选择模板(例如 ID: 14541),下载 JSON 文件。

  3. 在 Grafana 中点击 Create > Import,上传 JSON 文件。


5. 验证数据流

5.1 检查 InfluxDB 数据

influx -database nagios -execute "SHOW MEASUREMENTS"

5.2 手动触发 Nagios 检查

/usr/local/nagios/libexec/check_nrpe -H node1 -c check_cpu_custom

6. 防火墙配置

# 开放 InfluxDB 和 Grafana 端口
sudo firewall-cmd --permanent --add-port=8086/tcp   # InfluxDB
sudo firewall-cmd --permanent --add-port=3000/tcp   # Grafana
sudo firewall-cmd --reload

相关文章:

centos7系统搭建nagios监控

~监控节点安装 1. 系统准备 1.1 更新系统并安装依赖 sudo yum install -y httpd php php-cli gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel wget unzip sudo yum install -y epel-release # 安装 EPEL 仓库 sudo yum install -y automake autoconf lib…...

Gitlab的迁移升级

Gitlab11.6.5的迁移升级 Gitlab升级是不能跨大版本升级的&#xff0c;根据官方升级路径来操作。 gitlab迁移 首先需要查看当前gitlab版本 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 当前版本是11.6.5 备份源数据 原仓库备份所有的文件 /opt/gitlab/bin/git…...

C++11QT复习 (十九)

文章目录 Day13 C 时间库和线程库学习笔记&#xff08;Chrono 与 Thread&#xff09;一、时间库 <chrono>1.1 基本概念1.2 使用示例1.3 duration 字面量单位 二、线程库 <thread>2.1 基本用法2.2 数据竞争&#xff08;Race Condition&#xff09;2.3 加锁&#xff…...

3 版本控制:GitLab、Jenkins 工作流及分支开发模式实践

一、引言 在软件开发过程中,版本控制是保障代码质量、提高开发效率的关键环节。有效的版本控制能够帮助团队成员更好地协作,追踪代码变更,快速定位和解决问题。GitLab 和 Jenkins 作为两款广泛使用的工具,在版本控制和持续集成 / 持续部署(CI/CD)流程中发挥着重要作用。本…...

docker配置远程连接,dockerfile-maven-plugin插件打包到远程

我开发机器上的内存不大&#xff0c;能不安装在本地的应用就都跑在服务器上了&#xff0c;但是本地打包时需要用到docker打包成镜像&#xff0c;这时会本地运行docker&#xff0c;所以准备本地只使用docker客户端&#xff0c;连接服务器上的docker服务端 服务端配置 docker服…...

Skyline配置指南-微信小程序

Skyline 是微信小程序推出的新一代渲染引擎&#xff0c;提供了更强大的渲染能力和更流畅的性能体验。以下是配置 Skyline 的详细步骤&#xff1a; 一、app.json文件配置 "componentFramework": "glass-easel", "lazyCodeLoading": "requi…...

【c语言】倒置字符串

将一句话的单词进行倒置&#xff0c;符号不变&#xff0c;用例长度不超过100 思路&#xff1a; 逆序整个字符串逆序每个单词 #include <stdio.h> #include <string.h> void reverse(char* left, char* right) {while (left < right) {//char *tmp left;//error…...

MySQL多表查询实战指南:从SQL到XML映射的完整实现(2W+字深度解析)

MySQL多表查询实战指南:从SQL到XML映射的完整实现(2W+字深度解析) 第一章 多表查询基础与核心原理 1.1 关系型数据库设计范式 以电商系统为例的三范式实践: -- 原始数据表(违反第三范式) CREATE TABLE orders (order_id INT PRIMARY KEY,customer_name VARCHAR(50),p…...

【图书管理系统】全栈开发图书管理系统获取图书列表接口(后端:计算图书页数、查询当前页展示的书籍)

图书列表 实现服务器代码(计算图书总数量查询当前页需要展示的书籍) 后端响应时&#xff0c;需要响应给前端的数据 records&#xff1a;第 pageNum 页要展示的图书有哪些&#xff08;存储到List集合中&#xff09;total&#xff1a;计算一共有多少本书&#xff08;用于告诉前…...

SpringMvc的请求-获得请求参数

客户端请求参数的格式是: namevalue&namevalue..… 服务器端要获得请求的参数&#xff0c;有时还需要进行数据的封装&#xff0c;SpringMVC可以接收如下类型的参数: 基本类型参数 POJO类型参数 数组类型参数 集合类型参数 获得基本类型参数 Controller中的业务方法…...

CSS 笔记——Flexbox(弹性盒布局)

目录 1. Flex 容器与 Flex 项目 2. 主轴与交叉轴 3. Flex 容器的属性 display flex-direction justify-content align-items align-content flex-wrap 4. Flex 项目的属性 flex-grow flex-shrink flex-basis flex align-self 5. Flexbox 的优点 6. Flexbox 的…...

Redis 缓存 + MySql 持久化 实现点赞服务

前言 为什么所用 redis 作为缓存来实现点赞服务, 而不是直接就使用 mysql 来完成? 使用 Redis 的集合数据结构来存储点赞用户的 ID&#xff0c;方便快速判断用户是否已点赞; 当用户频繁的点赞和取消点赞时, 无需操作数据库, 减轻服务器压力 Redis 可以承受高并发的读写操作…...

Oracle OCP知识点详解2:yum 等服务的搭建

一、YUM/DNF 服务架构解析 1.1 核心组件交互流程 sequenceDiagram participant Client participant YUM participant Repository participant RPMDBClient->>YUM: yum install oracle-database-preinstall YUM->>Repository: 获取元数据(repodata) Repository--&…...

JavaScript Hook XMLHttpRequest操作:逆向与调试实战指南

在JavaScript逆向工程中&#xff0c;Hook XMLHttpRequest操作是一种重要的技术&#xff0c;可以用来捕获、修改或分析网络请求的发送和接收过程。本文将结合具体案例&#xff0c;详细讲解如何实现XMLHttpRequest的Hook操作。 一、Hook XMLHttpRequest的基本原理 &#xff08;…...

21 天 Python 计划:MySQL视图、触发器、存储过程、函数与流程控制

文章目录 一、视图1.1 创建视图1.2 使用视图1.3 修改视图1.4 删除视图 二、触发器2.1 创建触发器2.2 使用触发器2.3 删除触发器 三、存储过程3.1 介绍3.2 创建简单存储过程&#xff08;无参&#xff09;3.3 创建存储过程&#xff08;有参&#xff09;3.4 执行存储过程3.5 删除存…...

机器学习 Day10 逻辑回归

1.简介 流程就是&#xff1a; 就是我们希望回归后激活函数给出的概率越是1和0. 2.API介绍 sklearn.linear_model.LogisticRegression 是 scikit-learn 库中用于实现逻辑回归算法的类&#xff0c;主要用于二分类或多分类问题。以下是对其重要参数的详细介绍&#xff1a; 2.1.…...

Hadoop的序列化和反序列化

//1 package com.example.sei;import org.apache.hadoop.io.Writable;import java.io.DataInput; import java.io.DataOutput; import java.io.IOException;//学生类&#xff0c;姓名&#xff0c;年龄 //支持hadoop的序列化 //1.要实现Writable接口 //2.补充一个空参构造 publi…...

Altera Cyclone EP1C20F400C8N FPGA 阿尔特拉 介绍

在可编程逻辑器件领域&#xff0c;Altera 的 Cyclone 系列 FPGA 以其低成本、低功耗和灵活的 I/O 支持而著称。EP1C20F400C8N 作为 Cyclone I 家族中规模最大的成员之一&#xff0c;提供约 20 060 个逻辑单元&#xff0c;面向通信、工业控制、视频处理等多种嵌入式应用场景。​…...

VTK随笔十四:QT与VTK的交互示例(平移)

VTK&#xff08;Visualization Toolkit&#xff09;是一个开源的软件系统&#xff0c;用于三维计算机图形学、图像处理和可视化。它提供了丰富的工具和类来处理三维数据和交互。在 VTK 中&#xff0c;拾取操作通常通过 vtkCellPicker 或 vtkPointPicker 等类来实现。 本文将展示…...

用户注册(阿里云手机验证码)

阿里云开通三网106短信 ①、在阿里云市场搜索“短信”&#xff0c;开通三网短信&#xff0c;并可以查看其中的请求示例&#xff08;java PHP^&#xff09; 并在个人中心的管理控制台中查到&#xff0c;获取其中的AppKey AppCode ②、接口开发 service-user模块中依赖spr…...

【BFT帝国】20250409更新PBFT总结

2411 2411 2411 Zhang G R, Pan F, Mao Y H, et al. Reaching Consensus in the Byzantine Empire: A Comprehensive Review of BFT Consensus Algorithms[J]. ACM COMPUTING SURVEYS, 2024,56(5).出版时间: MAY 2024 索引时间&#xff08;可被引用&#xff09;: 240412 被引:…...

学习海康VisionMaster之边缘交点

一&#xff1a;进一步学习了 今天学习下VisionMaster中的边缘交点&#xff0c;这个还是拟合直线的衍生应用&#xff0c;可以同时测量两条直线并且输出交点或者判定是否有交点 二&#xff1a;开始学习 1&#xff1a;什么是边缘交点&#xff1f; 按照传统的算法&#xff0c;必须…...

公司级项目-AD9914扫频源(三)评估板与上位机的初步调试

硬件平台搭建1-评估板与上位机 第一阶段&#xff0c;先使用评估板配套的上位机软件进行控制&#xff0c;学习一下各种功能的实现方式和寄存器配置方式。 硬件连接 需要的设备仪器包括&#xff1a;多路直流稳压电源、信号发生器、示波器、电脑。 按照图中的方式进行连接&am…...

技术优化实战解析:Stream重构与STAR法则应用指南

目录 一、真实案例背景&#xff1a;老代码的"历史厚重感" 二、屎山代码解剖课&#xff1a;这些写法到底烂在哪&#xff1f; 三、Stream流式重构&#xff1a;给老代码做个大保健 2.1 重构后代码实现 2.2 核心API技术拆解 2.3 进阶优化技巧 三、STAR法则技术文档…...

基于Qt的串口通信工具

程序介绍 该程序是一个基于Qt的串口通信工具&#xff0c;专用于ESP8266 WiFi模块的AT指令配置与调试。主要功能包括&#xff1a; 1. 核心功能 串口通信&#xff1a;支持串口开关、参数配置&#xff08;波特率、数据位、停止位、校验位&#xff09;及数据收发。 AT指令操作&a…...

Xilinx FPGA XCZU5EV‑2FBVB900I Zynq UltraScale+™ MPSoC EV 系列

XCZU5EV‑1FBVB900I XCZU5EV‑2FBVB900E XCZU5EV‑1FBVB900I 是 Xilinx Zynq UltraScale™ MPSoC EV 系列中功能最为丰富的器件之一&#xff0c;采用 16 nm FinFET 工艺&#xff0c;封装为 31 mm  31 mm、900‑ball FCBGA&#xff08;FBVB900&#xff09;。该系列在传统的…...

如何更改OCP与metadb集群的连接方式 —— OceanBase运维管理

背景 许多用户都会借助OCP平台来进行OceanBase集群的运维与监控&#xff0c;且因为考虑单节点的OCP部署&#xff0c;在遇故障时可能会短时间出现无法管控 OceanBase集群&#xff0c;多数用户倾向于采用多节点方式来部署OCP&#xff0c;即 OCP的 metadb集群也是三节点的集群部署…...

Databricks: Why did your cluster disappear?

You may found that you created a cluster many days ago, and you didnt delete it, but it is disapear. Why did this happen? Who deleted the cluster? Actually, 30 days after a compute is terminated, it is permanently deleted automaticlly. If your workspac…...

深入解析Java内存与缓存:从原理到实践优化

一、Java内存管理&#xff1a;JVM的核心机制 1. JVM内存模型全景图 ┌───────────────────────────────┐ │ JVM Memory │ ├─────────────┬─────────────────┤ │ Thread │ 共享…...

macos下 ragflow二次开发环境搭建

参考官网链接 https://ragflow.io/docs/dev/launch_ragflow_from_source虚拟环境 git clone https://github.com/infiniflow/ragflow.git cd ragflow/ # if not pipx, please install it at first pip3 install pipxpipx install uv uv sync --python 3.10 --all-extras 安装 …...

从 Excel 到你的表格应用:条件格式功能的嵌入实践指南

一、引言 在日常工作中&#xff0c;面对海量数据时&#xff0c;如何快速识别关键信息、发现数据趋势或异常值&#xff0c;是每个数据分析师面临的挑战。Excel的条件格式功能通过自动化的视觉标记&#xff0c;帮助用户轻松应对这一难题。 本文将详细介绍条件格式的应用场景&am…...

安徽京准:NTP网络时钟服务器功能及同步模式的介绍

安徽京准&#xff1a;NTP网络时钟服务器功能及同步模式的介绍 安徽京准&#xff1a;NTP网络时钟服务器功能及同步模式的介绍 1、NTP网络时钟服务器概念&#xff1a; NTP时钟服务器&#xff0c;表面意思是时间计量工具的服务设备&#xff0c;其在现代工业中是用于对客户端设备…...

基于ueditor编辑器的功能开发之百度编辑器自带的查找和替换功能无法对目标文字进行滚动定位修复

在查找百度编辑器的查找和替换功能&#xff0c;发现当页面文字过多&#xff0c;用户在检索文字点击上一个下一个的时候&#xff0c;滚动条不跟随滚动了 分析了ueditor关于searchpalce方法的处理时&#xff0c;他会在目标文字的前面插入一个span标签用户获取当前需要高亮的文字节…...

MYSQL——SQL语句到底怎么执行

查询语句执行流程 MySQL 查询语句执行流程 查询缓存&#xff08;Query Cache&#xff09; MySQL内部自带了一个缓存模块&#xff0c;默认是关闭的。主要是因为MySQL自带的缓存应用场景有限。 它要求SQL语句必须一摸一样表里面的任何一条数据发生变化时&#xff0c;该表所有缓…...

[蓝桥杯 2022 省 B] 李白打酒加强版

题目链接&#xff1a; 思路&#xff1a; ①定义dp数组&#xff0c;f[i][j][k]&#xff0c;表示经过 i 店&#xff0c; 遇到 j 花&#xff0c; 还有 k 酒。如果酒的数量超过了花的数量&#xff0c;那么一定喝不完。因此&#xff0c;k 不能超过 M。 ②从店推过来&#xff0c;f[…...

计算机视觉——图像金字塔与目标图像边缘检测原理与实践

一、两个图像块之间的相似性或距离度量 1.1 平方差和&#xff08;SSD&#xff09; 平方差和&#xff08;SSD&#xff09; 是一种常用的图像相似性度量方法。它通过计算两个图像在每个对应位置的像素值差的平方和来衡量两个图像之间的整体差异。如果两个图像在每个位置的像素值…...

复现QGIS-MCP教程

由于Claude国内下载不了尝试使用Cursor 下载安装Cursor Cursor - The AI Code Editor 本示例安装的是0.46版本 UV安装 简介 安装 安装成功 配置环境变量 验证 下载代码 git clone gitgithub.com:jjsantos01/qgis_mcp.git QGIS插件安装 文件拷贝 您需要将 qgis_mcp_plu…...

人工智能图像识别Spark Core

Spark Core 一.spark运行架构 1.运行架构 Spark 框架的核心是一个计算引擎&#xff0c;整体来说&#xff0c;它采用了标准 master-slave 的结构。 如下图所示&#xff0c;它展示了一个 Spark 执行时的基本结构。图形中的 Driver 表示 master&#xff0c;负责管理整个集群中的作…...

决策树+泰坦尼克号生存案例

决策树简介 学习目标 1.理解决策树算法的基本思想 2.知道构建决策树的步骤 【理解】决策树例子 决策树算法是一种监督学习算法&#xff0c;英文是Decision tree。 决策树思想的来源非常朴素&#xff0c;试想每个人的大脑都有类似于if-else这样的逻辑判断&#xff0c;这其中…...

怎么查看苹果手机和ipad的设备信息和ios udid

你知道吗&#xff1f;我们每天使用的iPhone和iPad&#xff0c;其实隐藏着大量详细的硬件与系统信息。除了常见的系统版本和序列号外&#xff0c;甚至连电池序列号、摄像头序列号、销售地区、芯片型号等信息&#xff0c;也都可以轻松查到&#xff01; 如果你是开发者、维修工程…...

智能驱动教育变革:人工智能在高中教育中的实践路径与创新策略

一、引言 随着信息技术的飞速发展&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;已成为推动社会进步的重要力量。在教育领域&#xff0c;人工智能的应用正逐渐改变着传统的教学模式和方法&#xff0c;为教育现代化注入了新的活力。高中教育作为教育…...

TCP 和 UDP 可以使用同一个端口吗?

TCP 和 UDP 可以使用同一个端口吗&#xff1f; 前言 在深入探讨 TCP 和 UDP 是否可以使用同一个端口之前&#xff0c;我们首先需要理解网络通信的基本原理。网络通信是一个复杂的过程&#xff0c;涉及到多个层次的协议和机制。在 OSI 模型中&#xff0c;传输层是负责端到端数…...

MySQL事务管理

MySQL事务管理 事务的概念 事务由一条或多条SQL语句组成&#xff0c;这些语句在逻辑上存在相关性&#xff0c;共同完成一个任务&#xff0c;事务主要用于处理操作量大&#xff0c;复杂度高的数据。比如转账就涉及多条SQL语句&#xff0c;包括查询余额&#xff08;select&…...

通过 SSH 方式访问 GitHub 仓库

我们来一步一步讲解如何让 Git 通过 SSH 方式访问 GitHub 仓库&#xff0c;包括从零开始的详细步骤&#xff0c;适用于大多数系统&#xff08;Linux、macOS、Windows Git Bash&#xff09;。 注意最好只用 Git bash 比较好&#xff01;他能够直接在 Windows 系统上面使用一些 L…...

数据库学习

DDL&#xff08;数据定义语言&#xff09;、DML&#xff08;数据操纵语言&#xff09;、DQL&#xff08;数据查询语言&#xff09;和DCL&#xff08;数据控制语言&#xff09;。 DDL用于创建、删除和修改数据库对象&#xff0c;如表和数据库&#xff1b;DML涉及数据的增删改操…...

DeepSeek在安全领域的应用案例全景解析

DeepSeek作为人工智能领域的标杆技术,已在网络安全、公共安全、工业安全、军事防护等领域形成系统性应用。以下从六大核心场景展开分析,结合技术实现与行业标杆案例,呈现其多维度的安全赋能价值。 一、网络安全防护体系创新 威胁检测与响应闭环安胜"星盾"平台:通…...

AI驱动SEO关键词精准定位

内容概要 在传统SEO实践中&#xff0c;关键词定位往往依赖人工经验与有限的数据样本&#xff0c;导致策略滞后性与覆盖盲区并存。随着AI技术的深度介入&#xff0c;这一过程正经历系统性重构&#xff1a;从搜索意图的智能识别到关键词的自动化挖掘&#xff0c;算法模型通过分析…...

邮件营销:如何巧妙平衡发送频率与客户体验

在邮件营销领域&#xff0c;发送频率和客户体验就像跷跷板的两端&#xff0c;需要精心平衡。如果邮件发得太多&#xff0c;客户可能会觉得烦&#xff0c;甚至取消订阅&#xff0c;对品牌产生不好的印象&#xff1b;但如果发得太少&#xff0c;客户又容易把你忘了&#xff0c;错…...

Acrel-1000DP分布式光伏监控系统在嘉兴亨泰新能源有限公司2996.37KWP分布式光伏项目中的应用

摘 要&#xff1a;分布式光伏发电系统其核心特点是发电设备靠近用电负荷中心&#xff0c;通常安装在屋顶、建筑立面或闲置空地上&#xff0c;截至2025年&#xff0c;分布式光伏发电系统在全球和中国范围内取得了显著发展&#xff0c;成为能源转型和可持续发展的重要推动力量。国…...

vue3中左右布局两个个组件使用vuedraggable实现左向右拖动,右组件列表可上下拖动

需求&#xff1a;左侧是个菜单组件&#xff0c;有对应的表单类型。 右侧是渲染组件&#xff0c;点击左侧菜单或者拖动即可渲染出对应的组件 项目中采用vuedraggable实现拖拽功能。 具体实现是使用elementplus的组件&#xff0c;然后根据tagName的类型去渲染不同的组件。 首先…...