appstore/apps/mynodequery/README.md
2023-11-09 19:15:01 +08:00

308 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用说明
- 实际只有容器镜像,**并没有开源,使用需要慎重**。
- 每个版本升级,作者可能都要对数据库做修改,所以没事不要升级。保证按要求修改了数据库再升级。
- MySQL 5.7 或更高版本
# 原始相关
## 安装需要一定的技术基础知识,如果没有基础知识建议直接放弃!
## 安装需要一定的技术基础知识,如果没有基础知识建议直接放弃!
## 安装需要一定的技术基础知识,如果没有基础知识建议直接放弃!
## 重要的话说三遍!
## 简介
众所周知NodeQuery已彻底关闭无法使用MyNodeQuery起因是为了代替NodeQuery发展而来大部分功能参照了NodeQuery并增加了一些网友们期望的功能。
MyNodeQuery是一款简洁好用的探针支持Telegram节点离线通知、节点排序、自定义Ping节点还有网速、流量报表等功能。
演示站点:[https://status.idcoffer.com](https://status.idcoffer.com/)
Telegram 交流群组https://t.me/cloudshare
![](https://www.idcoffer.com/wp-content/uploads/2022/06/mynodequery-v1.0.3.0-1.png)
## 使用
### 依赖
- MySql 5.7 或更高版本;([Docker部署MySQL教程](https://www.idcoffer.com/archives/7903)
- ~~Redis (可选)~~
- Docker
### 安装
先创建用于mynodequery的空数据库然后按下面步骤安装
目前仅提供docker版本
```
docker run -d --name=mynodequery -p 5000:5000 jaydenlee2019/mynodequery:latest
```
#### 如何解决每次更新都要从新Install的问题
1. 创建一个文本 `/etc/mynodequery/appsettings.json`,内容为:
```
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"MySql": {
"ConnectionString": ""
},
"AllowedHosts": "*",
"Installed": "false",
"ReadNodeIpHeaderKey": "X-Real-IP"
}
```
2. 在docker run 语句中加入 `-v /etc/mynodequery/appsettings.json:/app/appsettings.json` 即可解决,如:
```
docker run -d --name=mynodequery -p 5000:5000 -v /etc/mynodequery/appsettings.json:/app/appsettings.json jaydenlee2019/mynodequery:latest
```
## 更新
### 1.0.5.1
1. 详情页增加自定义Tab支持 [Markdown](https://markdown.com.cn/basic-syntax/) 语法);
2. 客户端增加Alpine Linux系统支持
3. 增加负载/内存/硬盘使用率超过设定阈值通知功能设置为100代表关闭
1. 可以通过SQL语句批量关闭此功能update md_nodes set LoadNotifiValue=100;
4. 修复部分已知bug;
5. 更新注意事项数据库升级不能跨版本升级如果是从1.0.5.0或更早版本升级请在MySql客户端执行以下和更早期版本SQL语句
```
ALTER TABLE `md_nodes` ADD COLUMN `LastLoadNotifiTime` datetime DEFAULT NULL;
ALTER TABLE `md_nodes` ADD COLUMN `LastLoadExceedTime` datetime DEFAULT NULL;
ALTER TABLE `md_nodes` ADD COLUMN `LastDiskNotifiTime` datetime DEFAULT NULL;
ALTER TABLE `md_nodes` ADD COLUMN `LastRAMNotifiTime` datetime DEFAULT NULL;
ALTER TABLE `md_nodes` ADD COLUMN `LastRAMExceedTime` datetime DEFAULT NULL;
ALTER TABLE `md_nodes` ADD COLUMN `LastDiskExceedTime` datetime DEFAULT NULL;
CREATE TABLE `md_node_tabs` (
`ID` int(4) NOT NULL AUTO_INCREMENT,
`NodeID` int(4) NOT NULL,
`TabName` varchar(255) NOT NULL,
`TabContent` text,
`SortID` int(4) DEFAULT NULL,
`CreateTime` datetime DEFAULT Now(),
`LastUpdate` datetime DEFAULT Now(),
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
```
### 1.0.5.0
1. 详情页增加IPv6显示;
2. 标题增加国家/区域显示;
3. 优化手机上标题显示;
4. 增加购买直达链接;
5. 修复部分已知bug;
6. 更新注意事项数据库升级不能跨版本升级如果是从1.0.4.2或更早版本升级请在MySql客户端执行以下和更早期版本SQL语句
```
alter table md_nodes add `BuyUrl` varchar(500) default NULL;
alter table bd_node_requests modify column Ping1 decimal(10,3) DEFAULT NULL;
alter table bd_node_requests modify column Ping2 decimal(10,3) DEFAULT NULL;
alter table bd_node_requests modify column Ping3 decimal(10,3) DEFAULT NULL;
alter table bd_node_requests modify column Ping4 decimal(10,3) DEFAULT NULL;
alter table bd_node_requests modify column Ping5 decimal(10,3) DEFAULT NULL;
```
### 1.0.4.2
1. 增加TCPing协议支持暂时只支持x86_64/amd64平台;
2. 登录后详情页显示完整IP;
3. 修复部分已知bug;
4. 更新注意事项如果是从1.0.4.1或更早版本升级请在MySql客户端执行以下SQL语句
```
alter table md_ping_nodes add Protocol varchar(10) DEFAULT 'ICMP';
alter table md_ping_nodes add Port int DEFAULT 80;
alter table `bd_node_requests_collect` modify column Value1Sum decimal(38,3);
alter table `bd_node_requests_collect` modify column Value2Sum decimal(38,3);
alter table `bd_node_requests_collect` modify column Value3Sum decimal(38,3);
alter table `bd_node_requests_collect` modify column Value4Sum decimal(38,3);
alter table `bd_node_requests_collect` modify column Value5Sum decimal(38,3);
```
### 1.0.4.1
1. 移除底部悬浮版权,移至页面底部;
2. 增加底部自定义html内容并支持Vue的Created方法插入js脚本
3. 更新注意事项如果是从1.0.4.0或更早版本升级请在MySql客户端执行以下SQL语句
```
ALTER TABLE `sys_settings` modify column FildValue varchar(2000)
```
### 1.0.4.0
1. 节点详情增加网络延迟tab显示对ping节点的平均、最高和最低延迟
2. 其他一些小细节优化;
3. 修复对MySQL 8.0的支持;
### 1.0.3.0
1. 优化性能,大幅度减小数据库体积;
2. 增加国家地区旗帜显示;
3. 节点离线判断增加到5分钟
4. 其他一些小细节优化;
5. 修复错误字眼、显示错位、已知代码bug等问题含UI和程序
6. 更新注意事项如果是从1.0.2.3或更早版本升级请在MySql客户端执行以下SQL语句https://down.vpsaff.net/mynodequery/upgrade-1.0.3.0-sql.txt
### 1.0.2.3
1. 仪表盘细节优化;
2. IPv6优化
3. 更新注意事项如果是从1.0.2.2或更早版本升级请在MySql客户端执行以下SQL语句
```
ALTER TABLE `bd_node_requests`ENGINE=MyISAM;
ALTER TABLE `bd_node_requests` ADD INDEX `ix_bd_node_requests_FirstLine` (`NodeID`, `CreateTime`) ;
```
### 1.0.2.2
1. Ping节点可指定IPv4和IPv6方便ping相同域名的IPv4和IPv6
2. 仪表盘增加节点排序功能;
3. 修复已知bugs
4. 更新注意事项如果是从1.0.2.1或更早版本升级请在MySql客户端执行以下SQL语句
```
alter table md_nodes add SortID int DEFAULT 2147483647;
update md_nodes set SortID=2147483647;
alter table md_ping_nodes add HostIPVersion varchar(4);
update md_ping_nodes set HostIPVersion='Auto';
```
### 1.0.2.0
1. 增加站点标题可设置;
2. 仪表盘同时显示上行和下行网速;
3. 优化访问速度;
4. 增加Ping节点分组功能节点可以自定义分组
5. 修复已知bugs
6. 更新注意事项如果是从1.0.1.4或更早版本升级请在MySql客户端执行以下SQL语句
```
alter table md_ping_nodes add PingNodeGroupID int;
update md_ping_nodes set PingNodeGroupID=1 where PingNodeGroupID is null;
alter table `md_ping_nodes` MODIFY COLUMN `ID` int NOT NULL AUTO_INCREMENT FIRST ;
alter table md_nodes add PingNodeGroupID int default 1;
update md_nodes set PingNodeGroupID=1 where PingNodeGroupID is null;
CREATE TABLE md_ping_node_groups (
ID int(11) NOT NULL AUTO_INCREMENT,
Name varchar(100) DEFAULT NULL,
IsDefault bit default 0,
IsDelete bit default 0,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO md_ping_node_groups (`ID`, Name, IsDefault, `IsDelete`) VALUES ('1', '默认分组', b'1', b'0');
alter table bd_node_requests ADD INDEX `ix_bd_node_requests` (`NodeID`,`CreateMinute`,`Ping1`,`Ping2`,`Ping3`,`Ping4`,`Ping5`) USING BTREE;
alter table bd_node_requests ADD INDEX `ix_bd_node_requests_TXRXGap` (`NodeID`,`CreateMinute`,`TXGap`,`RXGap`) USING BTREE;
alter table bd_node_requests ADD INDEX `ix_bd_node_requests_RAMUsage` (`NodeID`,`CreateMinute`,`RAMUsage`,`SwapUsage`) USING BTREE;
alter table bd_node_requests ADD INDEX `ix_bd_node_requests_Load` (`NodeID`,`CreateMinute`,`LoadCPU`,`Load1`,`LoadIO`) USING BTREE;
alter table bd_node_requests ADD INDEX `ix_bd_node_requests_DiskUsage` (`NodeID`,`CreateMinute`,`DiskUsage`) USING BTREE;
```
### 1.0.1.3
1. 网络负载增加网卡id显示
2. 解决已知bug
3. 更新注意事项如果是从1.0.1.2或更早版本升级请在MySql客户端执行以下SQL语句
```
alter table md_nodes add NIC varchar(50);
```
### 1.0.1.2
1. 降低被控离线误报率,已安装用户需要执行被控重装脚本
2. 解决已知bug
### 1.0.1.0
1. 移除Redis依赖
2. 增加上报超时时间设置项;
3. 修复节点编辑页被底部遮盖问题;
4. 上线/离线通知增加详情&仪表盘快捷链接。
### 1.0.0.5
1. 修复已知bugs
2. 列表显示增加骨架屏,加载过程更美观
### 1.0.0.4
1. 升级主控[asp.net](https://hub.docker.com/r/jaydenlee2019/asp.net) core 3.1到最新版本3.1.22
2. 增加列表显示;
3. 增加登陆后显示进程依赖Redis不会保存到MySql中
4. 修复已知bugs
5. 更新注意事项如果是从1.0.0.3或更早版本升级请在MySql客户端执行以下SQL语句
```
alter table md_nodes add Keywords varchar(200) default '';
alter table md_nodes add Description varchar(300) default '';
alter table md_nodes modify column PublicIPv4 varchar(50);
```
### 1.0.0.3
1. 修复已知bugs
2. 开放Telegram通知功能
3. 增加自定义获取节点IP请求头设置在设置中可以找到并添加 /Setting/MyHeaders 页辅助设置)
4. 仪表盘自动刷新修改为5秒
### 1.0.0.2
1. 增加基础SEO支持;
2. ~~增加Telegram通知;~~(目前内测中)
3. 修复已知bugs
4. 更新注意事项如果是从1.0.0.1或更早版本升级请在MySql客户端执行以下SQL语句
```
alter table md_nodes modify column DeleteTime datetime;
alter table md_nodes modify column LastUptime datetime;
alter table md_nodes modify column AgentUptime datetime;
alter table md_nodes add NodeStatus varchar(10) default 'Unknown';
update md_nodes set NodeStatus='Online' where AgentUptime is not null and date_add(AgentUptime, interval 80 second) >= Now();
```
### 1.0.0.1
1. 修复上行下行显示错误问题;
2. 修复站点设置缓存导致无法添加节点问题。
## 其他
### 资源消耗
CPU是AMD EPYC 7402P
![](:/471ec63d14714571858d5bc2ee7a4aba)
### 客户端删除
在服务端删除客户端时会弹出客户端卸载脚本,如果没有看清且误点了关闭,请执行以下命令卸载客户端:
```
rm -rf /etc/mynodequery && (crontab -u mynodequery -l | grep -v "/etc/mynodequery/mynq-agent.sh") | crontab -u mynodequery - && userdel mynodequery
```