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. 验证监控状态
-
Web 界面:登录后查看
Hosts和Services状态是否为绿色(OK)。 -
命令行验证:/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 数据源
-
登录 Grafana,点击 Configuration > Data Sources > Add data source。
-
选择
InfluxDB
,填写以下信息:
-
URL:
http://localhost:8086 -
Database:
nagios -
User:
nagios_user -
Password:
your_password
-
4.2 导入 Nagios 仪表盘模板
-
访问 Grafana 仪表盘市场,搜索 "Nagios"。
-
选择模板(例如 ID: 14541),下载 JSON 文件。
-
在 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…...
docker的几种网络模式
Bridge(桥接)模式 默认网络模式:Docker的默认网络模式是Bridge模式。工作原理:Docker在宿主机上创建一个虚拟的桥接网络,每个容器在启动时会从这个桥接网络中分配一个IP地址。容器之间可以通过这个桥接网络进行通信。…...
Android 中Intent 相关问题
在回答 Intent 问题时,清晰区分其 定义、类型 和 应用场景。以下是的回答策略: 一、Intent 的核心定义 Intent 是 Android 系统中的 消息传递对象,主要用于三大场景: 2. 隐式 Intent(Implicit Intent) 三、…...
MCP 服务搭建与配置学习资源部分汇总
MCP 服务搭建与配置学习资源汇总 目录 图文教程GitHub 示例项目视频课程不同开发语言实现案例 图文教程 Cherry Studio 配置 MCP 服务教程 – 介绍如何在 Cherry Studio 客户端中配置 MCP 服务器,让 AI 模型能够自主调用本地/网络工具来完成任务,提升…...
2025.04.09【Sankey】| 生信数据流可视化精讲
文章目录 引言Sankey图简介R语言中的Sankey图实现安装和加载networkD3包创建Sankey图的数据结构创建Sankey图绘制Sankey图 结论 引言 在生物信息学领域,数据可视化是理解和分析复杂数据集的关键工具之一。今天,我们将深入探讨一种特别适用于展示数据流动…...
【码农日常】vscode编码clang-format格式化简易教程
文章目录 0 前言1 工具准备1.1 插件准备1.2 添加.clang-format1.3 添加配置 2 快速上手 0 前言 各路大神都说clangd好,我也来试试。这篇主要讲格式化部分。 1 工具准备 1.1 插件准备 照图安装。 1.2 添加.clang-format 右键添加文件,跟添加个.h或者.c…...
金融数据分析(Python)个人学习笔记(7):网络数据采集以及FNN分类
一、网络数据采集 证券宝是一个免费、开源的证券数据平台(无需注册),提供大盘准确、完整的证券历史行情数据、上市公司财务数据等,通过python API获取证券数据信息。 1. 安装并导入第三方依赖库 baostock 在命令提示符中运行&…...
git 如何彻底删除已经提交到远程仓库的文件?而不是覆盖删除?git 如何删除已经提交到本地的文件?从历史记录中彻底清除彻底删除(本地+远程)
git 如何彻底删除已经提交到远程仓库的文件?而不是覆盖删除?git 如何删除已经提交到本地的文件? 覆盖删除: 提交了某个不需要的文件,并push到了远程分支,此时在本地删除该文件,然后再提交一次…...
IP协议之IP,ICMP协议
1.因特网中的主要协议是TCP/IP,Interneet协议也叫TCP/IP协议簇 2.ip地址用点分十进制表示,由32位的二进制表示,两部分组成:网络标识主机标识 3.IP地址分类; A:0.0.0.0-127.255.255.255 B:128.0.0.0-191.255.255.25…...
死锁 手撕死锁检测工具
目录 引言 一.理论联立 1.死锁的概念和原因 2.死锁检测的基本思路 3.有向图在死锁检测中的应用 二.代码实现案例(我们会介绍部分重要接口解释) 1.我们定义一个线性表来存线程ID和锁ID 2.表中数据的查询接口 3.表中数据的删除接口 4.表中数据的添…...
软考高级-系统架构设计师 案例题-软件架构设计
文章目录 软件架构设计质量属性效用树,质量属性判断必背概念架构风格对比MVC架构J2EE四层结构面向服务架构SOA企业服务总线ESB历年真题【问题1】 (12分)【问题2】(13分) 参考答案历年真题【问题1】(12分)【…...
JavaScript Date(日期)
JavaScript Date(日期) JavaScript的Date对象是处理日期和时间的一个强大工具。它允许开发者轻松地创建日期对象、格式化日期、计算日期差以及执行各种日期相关的操作。本文将深入探讨JavaScript中的Date对象,包括其创建、格式化、操作以及与其他日期时间的交互。 创建Dat…...
vue+d3js+fastapi实现天气柱状图折线图饼图
说明: vued3jsfastapi实现天气柱状图折线图饼图 效果图: step0:postman 1. 生成天气数据(POST请求):URL: http://localhost:8000/generate-data/?year2024&month3&seed42 方法: POST Headers:Content-Type:…...
vue:前端预览 / chrome浏览器设置 / <iframe> 方法预览 doc、pdf / vue-pdf 预览pdf
一、本文目标 <iframe> 方法预览 pdf 、word vue-pdf 预览pdf 二、<iframe> 方法 2.1、iframe 方法预览需要 浏览器 设置为: chrome:设置-隐私设置和安全性-网站设置-更多内容设置-PDF文档 浏览器访问: chrome://settings/co…...
【NLP 56、实践 ⑬ LoRA完成NER任务】
目录 一、数据文件 二、模型配置文件 config.py 三、数据加载文件 loader.py 1.导入文件和类的定义 2.初始化 3.数据加载方法 代码运行流程 4.文本编码 / 解码方法 ① encode_sentence(): ② decode(): 代码运行流程 ③ padding(): 代码…...
Java性能调优2025:从JVM到Kubernetes的全链路优化策略
摘要 📝 本文将带你深入探讨2025年Java全链路性能调优的最新实践,从JVM底层优化到Kubernetes集群调优,涵盖GC策略选择、JIT优化、容器化最佳实践等核心内容。通过大量实践案例和代码示例,帮助你构建完整的性能优化知识体系。 目…...
【力扣hot100题】(076)买卖股票的最佳时机
终于来到了最考验智商的贪心算法。 之前做过,但花了不少时间思考,所以这次做的很快。 思路就是记录最小价格,然后一路遍历边调整新的最小价格边比较目前价格和最小价格差价。 class Solution { public:int maxProfit(vector<int>&am…...
Java基础 4.9
1.方法递归调用练习 //请使用递归的方式求出斐波那契数1, 1, 2, 3, 5, 8, 13 //给你一个整数n, 求出它的值是多少 /* 思路 n 1 1 n 2 1 n > 3 前两个数的和 递归的思路 */ public class RecursionExercise01 {public static void main(String[] args) {Mathod mathod ne…...
NDK开发:音视频处理基础
音视频处理基础 一、音视频基础 1.1 音视频基本概念 视频编码格式 H.264/AVCH.265/HEVCVP8/VP9AV1音频编码格式 AACMP3PCMOPUS封装格式 MP4FLVMKVTS1.2 音视频处理流程 视频处理流程 采集(Camera/Screen)预处理(美颜/滤镜)编码(H.264/H.265)封装传输/存储音频处理流程 …...
WPF 组件的宽高绑定另一个组件的宽高的指定比值
0.此方法比较适用于响应式界面,组件的大小需要根据窗体大小改变。 1.创建转换函数,并传入比值 public class SizeConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value is double d &&…...
c#的form实现叠叠乐游戏
说明: 我希望用c#的form实现叠叠乐的游戏,玩家需要堆叠方块来建造高塔。 效果图: step1:游戏规则 游戏实现步骤: a. 处理事件,玩家可以释放摆动的方块,方块会下落。 b. 更新摆动方块的位移,根…...
k8s 1.23升级1.24
0、简介 这里只用3台服务器来做一个简单的集群,当前版本是1.23.17目标升级到1.24.17 地址主机名192.168.160.40kuber-master-1192.168.160.41kuber-master-2192.168.160.42kuber-node-1 我这里设置的master2可调度pod,将master2的污点去掉 kubectl de…...
Qt中的元对象系统
Qt的元对象系统(Meta-Object System)提供了对象间通信的信号和槽机制、运行时类型信息和动态属性系统。 元对象系统基于以下三个方面: (1).QObject类:为可以利用元对象系统的对象提供了基类。 (2).Q_OBJECT宏:用于启用元对象功能,…...
qt之opengl使用
使用qt中的openglWidget绘制一个三角形。自定义的类继承关系sunOpengl : public QOpenGLWidget,QOpenGLFunctions_3_3_Core 代码如下 /*----MainWindow.cpp----------------------------------------------*/ #include "mainwindow.h" #include "./ui_mainwin…...
晋城市电子健康证上传照片尺寸要求及手机拍照制作方法
晋城市餐饮从业人员健康证电子照片上传有着明确的技术规范。根据"晋城市从业人员电子健康证明服务平台"要求,照片尺寸应为358像素(宽)441像素(高),这一比例符合标准证件照的规格。照片底色可选择…...
python基础语法11-文件读写
在 Python 中,文件操作是日常编程中的常见任务之一。Python 提供了简单且强大的工具来读取和写入文件。通过使用内置的 open() 函数、read()、readline()、write() 等方法,我们可以轻松实现对文件的操作。此外,Python 的 with 语句可以帮助我…...
js实现跨域下载,展示下载进度以及自定义下载名称功能
一、 下载进度 loading弹窗结构 // loading状态DOM function setLoading() {let content document.querySelector(.loading)content.innerHTML content.innerHTML <div class"loading_content"><div class"contentBox"><div class&quo…...
MCP 实战系列(Day 2)- 动手搓个文件系统 MCP 服务器
上期回顾:MCP 实战系列(Day 1)- 什么是 MCP? 在上期文章中,我们详细介绍了 Model Context Protocol(MCP)的基本概念和应用场景。本节将带领大家开发一个简易的 Filesystem MCP Serverÿ…...
LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令自定义封装
ZMC408CE 高性能总线型运动控制器 ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。 ZMC408CE支持PLC、Basic、HMI组态三种编…...
Java接口性能优化面试问题集锦:高频考点与深度解析
1. 如何定位接口性能瓶颈?常用哪些工具? 考察点:性能分析工具的使用与问题定位能力。 核心答案: 工具:Arthas(在线诊断)、JProfiler(内存与CPU分析)、VisualVM、Prometh…...
