1.
在 estnoc 韩国 VPS 上部署监控与日志系统前,先明确目标:主机指标采集(CPU/内存/磁盘/网络)、日志收集、可视化面板与告警、以及自动化任务。准备:一个 estnoc 韩国 VPS(Ubuntu 22.04 推荐)、本地终端、SSH 密钥、sudo 权限与基础防火墙规则。
小分段:确认VPS IPv4、管理面板能重装系统、保留root或sudo用户。
2.
登录 estnoc 控制面板,选择韩国节点,创建一台最小 1 vCPU/1GB(测试)或更高配置的实例。选择 Ubuntu 22.04,记录公网IP与初始密码(如有)。
小分段:如支持 SSH Key,优先上传密钥。启动后使用 ssh root@你的IP 登录并执行 apt update && apt upgrade -y。
3.
创建非root用户并配置SSH登录:adduser opsuser && usermod -aG sudo opsuser,拷贝公钥到 ~/.ssh/authorized_keys,禁止密码登录(编辑 /etc/ssh/sshd_config,设置 PasswordAuthentication no),重启SSH服务。
小分段:配置UFW允许必要端口 ufw allow 22/tcp、监控面板端口(Grafana 3000、Prometheus 9090 等),然后 ufw enable。
4.
在 VPS 上创建用户并安装 node_exporter:下载最新 release(到 /opt),解压并创建 systemd 服务文件。
小分段:示例命令:wget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.linux-amd64.tar.gz,解压后把可执行文件放到 /usr/local/bin,创建 systemd 文件 /etc/systemd/system/node_exporter.service 并启用 systemctl daemon-reload && systemctl enable --now node_exporter。
5.
安装 Prometheus 服务端(可以部署在同一 VPS 小规模采集):下载 Prometheus 二进制,编辑 prometheus.yml,加入 node_exporter 目标:- targets: ['127.0.0.1:9100'] 或填写你的 VPS IP。
小分段:创建 systemd 服务并启动 systemctl enable --now prometheus,通过浏览器访问 http://IP:9090 验证。
6.
在 VPS 上安装 Grafana(APT 源或官方包),启动后访问 :3000。登录后添加 Prometheus 数据源(URL 指向 Prometheus),导入社区 dashboard 或新建面板显示 CPU/内存/磁盘/网络指标。
小分段:建议开启 Grafana 的匿名只读或基于用户的访问控制,并在防火墙仅开放管理IP。
7.
Loki 比 ELK 轻,结合 Promtail 做日志收集。下载 Loki 二进制并创建配置,Promtail 配置中指定要收集的日志路径(例如 /var/log/*.log、应用日志目录),并设置 loki 的 push URL。
小分段:Promtail systemd 启动后,在 Grafana 中添加 Loki 数据源,通过 Explore 或 Log 面板查看日志。示例 Promtail 配置需要指定 scrape_configs 和 positions。
8.
在 Prometheus 中配置 alerting 规则(/etc/prometheus/rules.yml),例如 CPU 使用率阈值;安装 Alertmanager 并配置通知通道(邮件、Slack、Webhook)。在 prometheus.yml 中添加 alertmanager 的地址。
小分段:测试告警:通过 amtool 或直接触发规则来看通知是否送达。
9.
对于简单重复任务(日志轮转、脚本执行),建议用 systemd timer:创建 service 与 timer 单元,示例:每天凌晨运行备份脚本。对于多机配置管理,使用 Ansible:在控制机创建 inventory,编写 playbook 执行软件安装、配置文件分发与重启服务。
小分段:Ansible 常用命令 ansible-playbook -i hosts site.yml --ask-become-pass,把敏感信息放到 Vault。
10.
在 estnoc 控制台定期创建 VPS 快照(作为系统级备份)。同时备份 Prometheus 的 TSDB(停止服务后拷贝数据目录),备份 Grafana 数据库(sqlite 或 MySQL)。测试恢复流程:新建实例,恢复快照或导入备份数据,然后启动服务验证。
小分段:定期演练恢复,保证告警策略能在恢复后继续生效。
11.
答:对单节点小规模监控与日志,1-2 vCPU、2-4GB 内存可基本满足 Prometheus+Grafana+Loki 的轻量部署。若采集量大(多台主机高采样率/长时长日志),需要独立节点分离组件(比如单独的 Loki 集群、Prometheus 联邦、Grafana 后端),并根据磁盘 IOPS 与网络带宽调整规格以控制成本。
12.
答:常见做法是反向代理或 SSH 隧道:在内网部署 Grafana,利用反向代理 + TLS(如 nginx + cert)暴露到管理 IP;或通过 SSH 隧道 ssh -L 3000:localhost:3000 user@bastion 将面板本地化访问。对于多个用户,搭建 VPN(WireGuard)也是稳妥方案。
13.
答:检查清单包括:各服务 systemd 状态、磁盘使用(TSDB 与日志目录)、Prometheus targets 状态(up/down)、Grafana 数据源与面板是否报错、Alertmanager 的通知是否正常、日志收集是否丢失(Promtail positions)、以及备份快照是否可用。建议把这些检查点写成 Ansible 健康检查 playbook 定期执行。