这些年我陆续折腾过一些小项目,比如博客、在线工具、STEEM见证人等。目前我手头上管理着28台服务器,大多是一些价格便宜的VPS,最近新添的一台是家里鞋柜里的一块树莓派4B(Raspberry Pi)。
我把每台服务器的信息都记录在一个 Excel 表格中,包括 IP 地址、VPS 提供商、内存、硬盘等。这些信息都是静态配置数据。
平时我也写了不少小工具和 Bash 脚本,挂在 crontab 上定期运行,用来监控一些异常情况,比如磁盘空间不足、高 CPU 负载等。一旦检测到异常,就会通过邮件及时通知我。
比如以下BASH脚本(awk/sed)检测硬盘剩余空间:
#!/bin/bash
disk=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$disk" -gt 90 ]; then
echo "Disk usage above 90%" | mail -s "Disk Alert" [email protected]
fi
这两天,我在所有服务器上部署了哪吒(Nezha)监控软件的 Agent,这样我就可以在一个统一的网页后台中方便地查看每台服务器的运行状态。比如一看就知道哪台服务器硬盘快满了、CPU高负载等。
管理员登录后台后甚至可以直接通过网页进行 SSH 连接,这在我不方便用终端(比如在公司)时处理一些紧急问题非常实用。
提高安全性
由于这个后台权限非常高(支持以 root 权限 SSH 到每台服务器),所以安装完成后第一件事就是修改默认密码(初始账号是 admin/admin),建议设置一个强密码,甚至有条件可以禁用密码登陆,用OAUTH来替代。
此外,面板服务建议配置 HTTPS。默认监听端口是 8008,最好修改为其他端口。如果只是个人使用,不要公开后台的 URL。
每台服务器都需要安装 Nezha-Agent,和面板之间的通信必须通过 TLS 加密,面板服务器也需要配置好 Nginx 的反向代理。
以下在nginx设置了SSL还有反向代理到8008端口(Nezha Agent)。
server {
listen 443 ssl;
server_name panel.example.com;
ssl_certificate /etc/ssl/certs/fullchain.pem;
ssl_certificate_key /etc/ssl/private/privkey.pem;
location / {
proxy_pass http://localhost:8008;
proxy_set_header Host $host;
}
}
开源项目地址:github/nezha 监控
运维/DevOps
- 如何使用 NVM 清理除了保留版本以外的所有 Node.Js 版本
- 哪吒 Nezha 服务器监控软件: 一下子把28台服务器都放在一个页面里
- MySQL参数一键配置脚本: 有效提升数据库性能
- 把 MySQL 中的 MyISAM 表格转换成 InnoDB 的PHP小工具
- 通过 MySQLTuner 来检查数据库配置
- 升级到 PHP 5.5 之后内置 OpCache 加速缓存
- VPS低配置服务器优化的一些方法
- 如何在 Linux 下 列出最耗资源的进程 (BASH 脚本)
- 在LINUX下循环备份的方法
- 更改Wordpress博客全站的评论名称
- 几条Wordpress 博客 有用的 SQL 语句
英文:
- Monitoring 28 VPS Machines including a Raspberry Pi with Nezha Dashboard
- Nezha Monitor: Quick Access to Servers
- Installing Nezha Monitor Agent on My Servers
上一篇: 停机问题与悖论: 当逻辑凝视自身
下一篇: 大娃今年拿了英国JMC数学袋鼠竞赛Gold金奖, 我媳妇说这就是普娃的天花板了
扫描二维码,分享本文到微信朋友圈




