庆祝夜莺监控 5 周年

1 感想

伴随着数字化的发展,逐渐成为生产、生活等方方面面的底座支撑。就像国家电网在保障电力供应,运维保障数字稳定。运维的过程包括架构分析、业务部署、监控、备份、安全等方面,而监控既是保障业务运行的探针,也是伴随数字生命周期的哨兵。

数字基础设施包括计算和通信,基于 TCP/IP 等协议协同工作。保障数字基础设施稳定运行的指标也是基于 TCP/IP协议等,涉及 CPU、MEM、DISK 等操作系统监控物理资源;数据库、中间件等应用监控等。

夜莺监控系统拥有扎实的架构设计,包含丰富的监控插件,为运维保障数字基础设施稳定运行提供了重要工作支持。

2 方案

当前,我在进行的是物联网公司的运维监控工作,涉及测试、生产、学习等环境。因此,分别部署测试夜莺、生产夜莺、学习夜莺共三套夜莺监控系统,相互隔离,降低复杂度。另外,针对不同监控类型,也部署多套 nagios、uptime-kuma。最终,统一接入 FlashDuty 实现统一告警平台。


图:整体监控方案

每天起床第一件事,也是查看 FlashDuty 告警。
每天上班第一件事就是打开 FlashDuty 查看是否有告警。

pasted_file_1745807553595.png
图:办公电脑浏览器页面(包含 uptime-kuma6 套,nagios2 套,夜莺监控 3 套)

每天下班第一件事也是打开 FlashDuty 查看是否有告警。
下班途中,我会经常关注 FlashDuty 手机客户端以及飞书告警通知信息。夜莺系统已经伴随整个运维保障工作。
工作过程中,我会有一台单独的笔记本电脑放在我在左手边,作为运维监控大屏以及告警信息通知。

pasted_file_1745806037152.png
图:现场办公环境照片

3 实践

3.1 部署监控代理

在一台主机中,部署 agent 并调整 config.toml 文件。将 categraf 文件夹打包,放到 123pan。开启 123pan 直链功能。实际部署中就可以直接刷命令了。
部署 agent 之后,可以在夜莺监控平台“基础设施-机器列表”里打标签,也可以通过在 categraf 的config.toml中打标签。监控对象少的情况下,使用第一种方式方便一些。机器多得时候,使用后者直接在 categraf 配置文件打标签会方便一些。

3.2 配置其他监控

日常使用到的中间件包括 Nginx、Mongodb、MySQL 等。为了方便监控配置,使用飞书整理了一张表格,竖列是中间件的名称,横列是针对中间件的部署、配置、运行以及夜莺监控配置等内容。
categraf 监控配置也十分清晰,只需要找到对应目录对应文件,参考配置方法并修改相关参数即可。


图: 包含中间件部署夜莺监控内容的飞书表格

3.3 定制监控仪表

夜莺监控系统部署过程方便,默认内置大量仪表盘开箱即用。日常工作中,面对多项目,多主机等环境,进行了若干实践调整,主要包括:

  • 针对主机监控,标签使用“项目名称-服务名称-主机名称”。
  • 针对中间件监控,标签使用“项目-中间件类型-实例名称”。


图:Host 监控仪表盘页面


图:中间件 RabbitMQ 监控仪表盘页面

3.4 统一告警接收

将部署各种监控的告警,包括 nagios、uptime-kuma、夜莺等纷纷接入 FlashDuty,实现统一告警平台。


图:FlashDuty 集成中心页面

4 实战

4.1 数据支撑判断

在物联网系统中,数十万设备通过连接服务接入平台。平台中的 JAVA 程序有内存泄露,通过剩余内存判断是否需要紧急重启。不着急的话就尽量在凌晨重启(可以下班了。可以睡觉了。)。

pasted_file_1745806382147.png
图:长连接服务器集群监控仪表盘页面

4.2 监控避免失误

去年出了档子事儿,一大早7 点起来满手机全是告警。稳了稳神儿,发现原来是云平台没有续费。说来也巧,接手这一摊子时,费用告警不在我这里,包括手机短信和邮箱统统不在。而且,客户经理正在休假。好家伙,通过支付宝快速充值后,恢复了足足 4 个小时,好在集群和服务最终恢复了。
亡羊补牢为时不晚,除了修改云平台费用相关告警通知外,使用夜莺监控通过云平台 SDK 设置费用告警。


图:剩余金额监控仪表盘

另外,举一反三,把第三方短信剩余条数也做了监控。

图:剩余短信监控仪表盘

5 祝愿

数字化已经进入到了人工智能时代,数字基础设施与电力基础设施一样越来越重要。保障数字基础设施稳定运行的重要支撑力量落在了夜莺身上。祝愿夜莺监控越来越好。祝愿夜莺的兄弟们工作顺利,身体健康。愿与夜莺的兄弟们一起努力,共筑数字基础设施稳定运行保障防线。

### 夜莺监控系统概述 夜莺监控系统是一款专业的服务器监控软件,能够帮助用户实时监测服务器的 CPU、内存、磁盘利用率等关键指标[^1]。此外,它还支持对服务器进行实时监控,并在发现异常情况时及时报警,提供多种报警方式(如邮件、短信、弹窗等),确保用户可以迅速获取报警信息。 夜莺监控系统由滴滴开发并开源,于 2020 年 3 月 20 日在 GitHub 上发布 v1 版本,目前已累计迭代超过 60 个版本[^4]。从 v5 版本开始,夜莺与 Prometheus、VictoriaMetrics、Grafana 等生态紧密协同集成,提供了开箱即用的企业级监控分析和告警能力[^4]。2022 年 5 月 11 日,夜莺监控被捐赠给中国计算机学会开源发展委员会(CCF ODC),成为其接受的第一个开源项目[^4]。 ### 部署方法 夜莺监控系统的部署可以通过多种方式进行,其中一种常见的方式是使用 `docker-compose` 部署[^2]。以下是基于 `docker-compose` 的部署步骤示例: ```yaml version: '3.7' services: nightingale: image: docker.io/didi/nightingale:latest container_name: nightingale ports: - "8080:8080" environment: - TZ=Asia/Shanghai volumes: - ./data:/data restart: always ``` 上述配置文件定义了一个名为 `nightingale` 的服务,使用 Docker 官方镜像 `didi/nightingale` 运行夜莺监控系统[^2]。通过将主机的 `./data` 目录挂载到容器内的 `/data` 目录,可以实现数据持久化存储。 需要注意的是,夜莺本身只是一个服务端组件,不负责数据采集。因此,在部署时需要额外配置 categraf 或其他工具来上报监控数据[^3]。如果已有 Prometheus、VictoriaMetrics 或 Thanos 等时序数据库,则可以直接将其作为夜莺的数据源使用。 ### 功能模块 夜莺监控系统主要包括以下四个子系统[^2]: - **用户资源中心(RDB)**:管理用户及权限。 - **资产管理系统(AMS)**:记录和管理监控目标的相关信息。 - **任务执行中心(JOB)**:负责执行任务调度。 - **监控告警系统(MON)**:提供核心的监控和告警功能。 ### 使用方法 夜莺监控系统不仅支持传统的监控告警功能,还提供了强大的历史数据查询和分析能力[^1]。用户可以通过 Web 界面访问夜莺监控系统,查看实时监控数据、设置告警规则以及分析历史数据。此外,夜莺还支持与 Grafana 等可视化工具集成,进一步提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值