centos7系统搭建nagios监控

news2025/4/18 16:01:59

~监控节点安装

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       node1
    alias           Node1 Server
# 被监控节点 IP
    address         192.168.1.100
    check_command   check-host-alive
    max_check_attempts  5
    check_interval   5
    check_period     24x7
    contacts        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的name
    host_name           node1
    service_description Disk Usage
    check_command       check_nrpe!check_disk
    contacts            nagiosadmin
}
​
sudo nano /usr/local/nagios/etc/objects/services.cfg
define service {
    use                 local-service #cat /usr/local/nagios/etc/objects/templates.cfg的service的name
    host_name               node1
    service_description     CPU Load
    check_command           check_nrpe!check_load
    contacts                nagiosadmin
}

10.3 配置 check_nrpe 命令

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

define command {
    command_name    check_nrpe
    command_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_nrpe
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$
}

5.2 添加主机和服务定义

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

define host {
    host_name       node1
    alias           Node1 Server
    address         192.168.1.100
    check_command   check-host-alive
    max_check_attempts  5
    check_interval  5
    check_period    24x7
    contacts        nagiosadmin
}
​
define service {
    host_name               node1
    service_description     CPU Load
    check_command           check_nrpe!check_load
    check_interval          5
    check_period            24x7
    notification_interval   30
    contacts                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 ]; then
  usage=0.00
else
  usage=$(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 ]; then
  status_code=2
  status_text="CRITICAL"
elif [ $(echo "$usage >= 80" | bc -l) -eq 1 ]; then
  status_code=1
  status_text="WARNING"
else
  status_code=0
  status_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_custom
    command_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-service
    host_name               node1
    service_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_custom
    contacts                nagiosadmin
    #event_handler参数填写commands.cfg文件中的command_name
    event_handler           check_cpu_custom 
    #event_handler_enabled为开启event_handler
    event_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

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

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

相关文章

【码农日常】vscode编码clang-format格式化简易教程

文章目录 0 前言1 工具准备1.1 插件准备1.2 添加.clang-format1.3 添加配置 2 快速上手 0 前言 各路大神都说clangd好&#xff0c;我也来试试。这篇主要讲格式化部分。 1 工具准备 1.1 插件准备 照图安装。 1.2 添加.clang-format 右键添加文件&#xff0c;跟添加个.h或者.c…

金融数据分析(Python)个人学习笔记(7):网络数据采集以及FNN分类

一、网络数据采集 证券宝是一个免费、开源的证券数据平台&#xff08;无需注册&#xff09;&#xff0c;提供大盘准确、完整的证券历史行情数据、上市公司财务数据等&#xff0c;通过python API获取证券数据信息。 1. 安装并导入第三方依赖库 baostock 在命令提示符中运行&…

死锁 手撕死锁检测工具

目录 引言 一.理论联立 1.死锁的概念和原因 2.死锁检测的基本思路 3.有向图在死锁检测中的应用 二.代码实现案例&#xff08;我们会介绍部分重要接口解释&#xff09; 1.我们定义一个线性表来存线程ID和锁ID 2.表中数据的查询接口 3.表中数据的删除接口 4.表中数据的添…

软考高级-系统架构设计师 案例题-软件架构设计

文章目录 软件架构设计质量属性效用树&#xff0c;质量属性判断必背概念架构风格对比MVC架构J2EE四层结构面向服务架构SOA企业服务总线ESB历年真题【问题1】 &#xff08;12分)【问题2】&#xff08;13分&#xff09; 参考答案历年真题【问题1】&#xff08;12分&#xff09;【…

vue+d3js+fastapi实现天气柱状图折线图饼图

说明&#xff1a; vued3jsfastapi实现天气柱状图折线图饼图 效果图&#xff1a; step0:postman 1. 生成天气数据&#xff08;POST请求&#xff09;&#xff1a;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 方法预览需要 浏览器 设置为&#xff1a; chrome&#xff1a;设置-隐私设置和安全性-网站设置-更多内容设置-PDF文档 浏览器访问&#xff1a; chrome://settings/co…

【NLP 56、实践 ⑬ LoRA完成NER任务】

目录 一、数据文件 二、模型配置文件 config.py 三、数据加载文件 loader.py 1.导入文件和类的定义 2.初始化 3.数据加载方法 代码运行流程 4.文本编码 / 解码方法    ① encode_sentence()&#xff1a; ② decode()&#xff1a; 代码运行流程 ③ padding()&#xff1a; 代码…

【力扣hot100题】(076)买卖股票的最佳时机

终于来到了最考验智商的贪心算法。 之前做过&#xff0c;但花了不少时间思考&#xff0c;所以这次做的很快。 思路就是记录最小价格&#xff0c;然后一路遍历边调整新的最小价格边比较目前价格和最小价格差价。 class Solution { public:int maxProfit(vector<int>&am…

c#的form实现叠叠乐游戏

说明&#xff1a; 我希望用c#的form实现叠叠乐的游戏&#xff0c;玩家需要堆叠方块来建造高塔。 效果图&#xff1a; step1:游戏规则 游戏实现步骤&#xff1a; a. 处理事件&#xff0c;玩家可以释放摆动的方块&#xff0c;方块会下落。 b. 更新摆动方块的位移&#xff0c;根…

Qt中的元对象系统

Qt的元对象系统(Meta-Object System)提供了对象间通信的信号和槽机制、运行时类型信息和动态属性系统。 元对象系统基于以下三个方面&#xff1a; (1).QObject类&#xff1a;为可以利用元对象系统的对象提供了基类。 (2).Q_OBJECT宏&#xff1a;用于启用元对象功能&#xff0c;…

qt之opengl使用

使用qt中的openglWidget绘制一个三角形。自定义的类继承关系sunOpengl : public QOpenGLWidget,QOpenGLFunctions_3_3_Core 代码如下 /*----MainWindow.cpp----------------------------------------------*/ #include "mainwindow.h" #include "./ui_mainwin…

晋城市电子健康证上传照片尺寸要求及手机拍照制作方法

晋城市餐饮从业人员健康证电子照片上传有着明确的技术规范。根据"晋城市从业人员电子健康证明服务平台"要求&#xff0c;照片尺寸应为358像素&#xff08;宽&#xff09;441像素&#xff08;高&#xff09;&#xff0c;这一比例符合标准证件照的规格。照片底色可选择…

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 服务器

上期回顾&#xff1a;MCP 实战系列&#xff08;Day 1&#xff09;- 什么是 MCP&#xff1f; 在上期文章中&#xff0c;我们详细介绍了 Model Context Protocol&#xff08;MCP&#xff09;的基本概念和应用场景。本节将带领大家开发一个简易的 Filesystem MCP Server&#xff…

LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令自定义封装

ZMC408CE 高性能总线型运动控制器 ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器&#xff0c;具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口&#xff0c;ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。 ZMC408CE支持PLC、Basic、HMI组态三种编…

Xilinx虚拟输入/输出(VIO)IP核详细介绍及使用示例

LogiCORE™ IP虚拟输入/输出(VIO)内核是一款可定制化的内核,能够实时监控和驱动FPGA(现场可编程门阵列)内部信号。其输入和输出端口的数量及位宽均可根据需求定制,以便与FPGA设计进行接口对接。由于VIO内核与被监控和/或驱动的设计保持同步,因此应用于您设计中的所有设计…

Vue3+Vite+TypeScript+Element Plus开发-09.登录成功跳转主页

系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 登录成功跳转主页 多用户动态加载菜单 Pinia持久化 动态路由-配置 文章目录 目录 系列文档目…

Linux : 内核中的信号捕捉

目录 一 前言 二 信号捕捉的方法 1.sigaction()​编辑 2. sigaction() 使用 三 可重入函数 四 volatile 关键字 一 前言 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。在Linux: 进程信号初识-CSDN博客 这一篇中已经学习到了一种信号…

开发效率提升200%——cursor

cursor带来的编程"革命" 高级语言编程转为"自然语言编程"借助cursor&#xff0c;直接超越初级后台开发、超越初级前端开发、超越初级测试、超越初级UI&#xff0c;产研一体linux命令只用学不用记&#xff0c;语言描述就是命令给一个表结构流程提示词&…

微软庆祝它成立整整50周年

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…