添加 维护手册.txt
This commit is contained in:
@@ -0,0 +1,242 @@
|
|||||||
|
# 运维告警监控平台 完整维护手册
|
||||||
|
## 文档说明
|
||||||
|
1. 适用人员:服务器运维工程师
|
||||||
|
2. 技术栈:Nginx + PHP-FPM(原生PHP) + MariaDB
|
||||||
|
3. 项目两套体系:
|
||||||
|
- 新版:`dashboard.php` + `/api/index.php` 带Session登录鉴权(安全正式环境使用)
|
||||||
|
- 旧版兼容:所有`.html`静态面板 + `/oldapi/index.php` 无登录校验(历史页面专用,内网临时查看)
|
||||||
|
4. 数据库:`alert_mail_stat`
|
||||||
|
5. 登录用户表:`sys_user`
|
||||||
|
|
||||||
|
# 一、项目目录结构
|
||||||
|
```
|
||||||
|
/usr/share/nginx/html/
|
||||||
|
├─ login.php # 新版登录页面(Session会话)
|
||||||
|
├─ logout.php # 退出登录,销毁Session
|
||||||
|
├─ dashboard.php # 新版监控首页(带登录校验、展示当前用户)
|
||||||
|
├─ gen.php # 密码哈希生成工具,用完建议删除
|
||||||
|
├─ dashboard2.0.html # 历史静态面板
|
||||||
|
├─ dashboard3.0.html
|
||||||
|
├─ dashboard4.0.html
|
||||||
|
├─ dashboard5.0.html
|
||||||
|
├─ api/
|
||||||
|
│ └─ index.php # 新版接口,强制登录Session校验
|
||||||
|
├─ oldapi/
|
||||||
|
│ └─ index.php # 旧页面专用接口,无登录限制
|
||||||
|
```
|
||||||
|
|
||||||
|
# 二、数据库维护操作
|
||||||
|
## 2.1 登录用户表建表语句
|
||||||
|
```sql
|
||||||
|
USE alert_mail_stat;
|
||||||
|
CREATE TABLE IF NOT EXISTS sys_user (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
|
||||||
|
username VARCHAR(32) NOT NULL UNIQUE COMMENT '登录账号',
|
||||||
|
password VARCHAR(72) NOT NULL COMMENT 'BCrypt加密密码',
|
||||||
|
role ENUM('admin','read') NOT NULL DEFAULT 'read' COMMENT '权限 admin管理员/read只读',
|
||||||
|
last_login DATETIME NULL COMMENT '最后登录时间',
|
||||||
|
create_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台登录用户表';
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2.2 用户账号管理SQL
|
||||||
|
### 初始化管理员账号
|
||||||
|
账号:admin 密码:Admin@2026
|
||||||
|
```sql
|
||||||
|
INSERT INTO sys_user (username, password, role)
|
||||||
|
VALUES ('admin', '$2y$10$0/620vN3sCKVUfejEmZj3O/gS11T2QKCea3d07RkTpojKom9K8zye', 'admin');
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查询所有账号
|
||||||
|
```sql
|
||||||
|
SELECT id,username,role,last_login,create_at FROM sys_user;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 重置账号密码
|
||||||
|
1. 访问 `gen.php` 生成新哈希;
|
||||||
|
2. 执行SQL替换哈希串:
|
||||||
|
```sql
|
||||||
|
UPDATE sys_user
|
||||||
|
SET password='新生成的完整哈希字符串'
|
||||||
|
WHERE username='admin';
|
||||||
|
```
|
||||||
|
|
||||||
|
### 新增只读账号
|
||||||
|
```sql
|
||||||
|
INSERT INTO sys_user (username,password,role) VALUES ('guest','哈希串','read');
|
||||||
|
```
|
||||||
|
|
||||||
|
### 删除账号
|
||||||
|
```sql
|
||||||
|
DELETE FROM sys_user WHERE username='guest';
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2.3 业务数据表说明
|
||||||
|
`alert_log`:告警记录表,存储所有触发/恢复告警
|
||||||
|
字段核心用途:
|
||||||
|
- alert_type=1 触发告警;alert_type=2 恢复告警
|
||||||
|
- receive_time 告警接收时间,统计默认按当日日期筛选
|
||||||
|
- instance 实例名称、alert_name 告警名称、severity 告警级别
|
||||||
|
|
||||||
|
## 2.4 数据库备份&恢复
|
||||||
|
### 备份全库
|
||||||
|
```bash
|
||||||
|
mysqldump -uroot -hp93000 alert_mail_stat > /data/backup/alert_$(date +%Y%m%d).sql
|
||||||
|
```
|
||||||
|
### 恢复库
|
||||||
|
```bash
|
||||||
|
mysql -uroot -hp93000 alert_mail_stat < 备份文件.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
# 三、Nginx服务维护
|
||||||
|
## 3.1 完整可用站点配置
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm index.php;
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_pass php:9000;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/;
|
||||||
|
}
|
||||||
|
location /api/ {
|
||||||
|
try_files $uri $uri/;
|
||||||
|
}
|
||||||
|
location /oldapi/ {
|
||||||
|
try_files $uri $uri/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3.2 Nginx常用运维命令
|
||||||
|
```bash
|
||||||
|
# 校验配置语法
|
||||||
|
nginx -t
|
||||||
|
# 重载配置(不中断业务)
|
||||||
|
nginx -s reload
|
||||||
|
# 查看访问日志
|
||||||
|
tail -f /var/log/nginx/access.log
|
||||||
|
# 查看错误日志(接口500、404、PHP下载源码排查)
|
||||||
|
tail -f /var/log/nginx/error.log
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3.3 常见Nginx故障
|
||||||
|
1. 访问php文件直接下载源码
|
||||||
|
原因:缺少全局`.php`正则解析块,复制上方完整配置重载即可;
|
||||||
|
2. 接口401未登录
|
||||||
|
新版页面必须走`dashboard.php`登录生成Session;旧html页面使用`oldapi`接口;
|
||||||
|
3. 页面空白/500报错
|
||||||
|
查看nginx error日志 + php-fpm日志定位SQL、语法错误。
|
||||||
|
|
||||||
|
# 四、PHP服务维护
|
||||||
|
## 4.1 Session会话说明
|
||||||
|
1. 登录后Session存储PHP默认会话目录,记录用户ID、账号、权限、登录时间;
|
||||||
|
2. 会话超时:30分钟无操作自动登出;
|
||||||
|
3. 连续输错密码5次锁定5分钟,IP隔离锁定。
|
||||||
|
|
||||||
|
## 4.2 密码哈希工具 gen.php
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
$rawPwd = "Admin@2026";
|
||||||
|
$hash = password_hash($rawPwd, PASSWORD_DEFAULT);
|
||||||
|
echo "明文密码:".$rawPwd."<br>";
|
||||||
|
echo "加密哈希:".$hash."<br>";
|
||||||
|
var_dump(password_verify($rawPwd, $hash));
|
||||||
|
?>
|
||||||
|
```
|
||||||
|
使用规范:密码修改完成后删除该文件,防止泄露。
|
||||||
|
|
||||||
|
## 4.3 PHP常见故障处理
|
||||||
|
1. 数据库连接失败
|
||||||
|
核对文件内 `$dbHost/$dbUser/$dbPass/$dbName` 数据库账号密码;
|
||||||
|
2. 登录提示账号密码错误
|
||||||
|
- 用gen.php重新生成哈希更新数据库;
|
||||||
|
- 确认输入密码大小写、英文符号;
|
||||||
|
3. 接口无数据/统计为0
|
||||||
|
复制接口act参数,单独执行对应SQL核对数据库当日数据;
|
||||||
|
4. CSV导出下载失败
|
||||||
|
检查PHP输出缓冲区代码,关闭前端缓存拦截。
|
||||||
|
|
||||||
|
# 五、两套接口区分&使用规范
|
||||||
|
## 5.1 /api/index.php(正式新版接口)
|
||||||
|
- 鉴权:强制校验PHP Session,未登录返回401;
|
||||||
|
- 使用者:`dashboard.php`;
|
||||||
|
- 安全:线上、公网环境唯一推荐使用;
|
||||||
|
- 禁止:旧静态html直接调用此接口。
|
||||||
|
|
||||||
|
## 5.2 /oldapi/index.php(兼容历史页面)
|
||||||
|
- 鉴权:无任何登录校验,直接返回数据;
|
||||||
|
- 使用者:所有`.html`历史静态面板;
|
||||||
|
- 安全规范:仅内网办公网段访问,禁止对公网开放;
|
||||||
|
- 改造方式:页面顶部api地址修改为 `/oldapi` 即可恢复数据。
|
||||||
|
|
||||||
|
# 六、页面访问使用规范
|
||||||
|
## 6.1 正式安全访问流程(推荐)
|
||||||
|
1. 访问 `http://服务器IP/login.php`
|
||||||
|
2. 输入账号密码登录,自动跳转 `dashboard.php`
|
||||||
|
3. 页面展示:今日告警统计、TOP10图表、未恢复告警列表、全量告警明细
|
||||||
|
4. 右上角:显示当前登录用户、权限、退出按钮;点击退出销毁Session回到登录页
|
||||||
|
|
||||||
|
## 6.2 历史静态页面访问流程(兼容)
|
||||||
|
1. 直接访问 `dashboard5.0.html` 等静态文件,无需登录;
|
||||||
|
2. 页面JS接口地址指向 `/oldapi/index.php`;
|
||||||
|
3. 限制:仅内网查看,无权限隔离,多人可直接查看全部数据。
|
||||||
|
|
||||||
|
# 七、日常运维巡检清单(每日)
|
||||||
|
1. Nginx进程运行状态,error日志无大量500/404报错;
|
||||||
|
2. PHP-FPM进程无崩溃、无超时报错;
|
||||||
|
3. MariaDB服务正常,数据库可正常连接;
|
||||||
|
4. 告警数据正常入库,页面统计数值与数据库一致;
|
||||||
|
5. 登录功能正常,无频繁密码校验失败;
|
||||||
|
6. CSV导出功能可正常下载报表;
|
||||||
|
7. 磁盘空间充足,日志定时清理避免占满磁盘。
|
||||||
|
|
||||||
|
# 八、故障快速排查流程
|
||||||
|
## 场景1:页面打不开/404
|
||||||
|
1. 核对访问路径文件名;
|
||||||
|
2. 检查Nginx站点根目录配置;
|
||||||
|
3. 查看nginx access日志确认请求是否到达服务器。
|
||||||
|
|
||||||
|
## 场景2:页面空白、接口500错误
|
||||||
|
1. 查看nginx error.log;
|
||||||
|
2. 复制报错行给到AI修复PHP语法、SQL错误;
|
||||||
|
3. 核对数据库账号密码、表名是否正确。
|
||||||
|
|
||||||
|
## 场景3:登录一直提示账号密码错误
|
||||||
|
1. 执行gen.php生成对应明文的哈希;
|
||||||
|
2. UPDATE更新数据库sys_user表password字段;
|
||||||
|
3. 无痕浏览器重试,清除IP登录锁定Session。
|
||||||
|
|
||||||
|
## 场景4:旧html页面无数据
|
||||||
|
1. 确认页面JS接口地址为 `/oldapi`;
|
||||||
|
2. 直接浏览器访问 `http://IP/oldapi/index.php?act=day_total` 看是否返回JSON;
|
||||||
|
3. 无返回则检查oldapi目录权限、PHP解析配置。
|
||||||
|
|
||||||
|
## 场景5:新版dashboard.php接口401
|
||||||
|
1. 必须从login.php登录生成Session;
|
||||||
|
2. 清除浏览器缓存,无痕窗口重新登录;
|
||||||
|
3. 确认api/index.php头部session_start()鉴权代码存在。
|
||||||
|
|
||||||
|
# 九、版本更新&上线维护规范
|
||||||
|
1. 文件更新:直接覆盖对应php/html文件,无需编译;
|
||||||
|
2. 更新后执行 `nginx -s reload` 重载配置;
|
||||||
|
3. 数据库变更:提前备份库,执行SQL后核对表结构;
|
||||||
|
4. 上线验证顺序:登录页面 → 新版dashboard → 旧html面板 → 导出功能;
|
||||||
|
5. 回滚方案:保留旧文件备份,出现异常直接覆盖回退。
|
||||||
|
|
||||||
|
# 十、安全运维规范
|
||||||
|
1. 公网环境仅开放新版`login.php/dashboard.php/api`,禁止暴露oldapi无鉴权接口;
|
||||||
|
2. 定期修改admin管理员密码,使用复杂度高密码(大小写+数字+特殊符号);
|
||||||
|
3. gen.php工具使用完成立即删除,避免密码哈希泄露;
|
||||||
|
4. 限制服务器访问IP,Nginx配置网段白名单;
|
||||||
|
5. 定期备份alert_mail_stat数据库,保留7天以上备份文件;
|
||||||
|
6. 不要将数据库账号密码明文暴露在前端静态html中;
|
||||||
|
7. 长期不用的只读账号及时删除,最小权限管理。
|
||||||
Reference in New Issue
Block a user