errsole.js告警通知实战:Email与Slack即时捕获关键错误报警
2026/8/16 18:47:31 网站建设 项目流程

errsole.js告警通知实战:Email与Slack即时捕获关键错误报警

【免费下载链接】errsole.jsCollect, Store, and Visualize Logs with a Single Module项目地址: https://gitcode.com/gh_mirrors/er/errsole.js

errsole.js 是一个用单个模块就能完成日志收集、存储与可视化的 Node.js 开源日志工具,而errsole.js告警通知功能,则能在应用崩溃或出现关键错误时,第一时间把错误推送到你的 Email 邮箱或 Slack 工作群。本文将以实战方式,带你快速完成 errsole.js Email 告警与 Slack 告警的配置,让关键错误报警不再迟到。

为什么需要 errsole.js 告警通知

日志记录只是第一步,真正让运维省心的,是即时错误报警。想象一下:深夜 2 点,支付接口悄悄挂了,如果没有 errsole.js 告警通知,你要等到第二天早上用户投诉才发现问题。而配置好 Email 与 Slack 告警后,错误发生的几秒内,通知就会送达,错误信息、应用名、环境名、服务器名以及直达日志页面的链接一应俱全。

errsole.js 的告警通知能力体现在两方面:

  • 自动捕获:未捕获的异常(Uncaught Exception)和应用崩溃会自动触发告警,相关逻辑见 alerts.js。
  • 手动触发:通过errsole.alert()函数,可以把任何你觉得关键的事件主动推送出去。

快速接入 errsole.js 日志工具

在配置告警之前,先把 errsole.js 接入你的 Node.js 应用。以 SQLite 存储为例,安装并初始化后,日志即开始收集:

const errsole = require('errsole'); const errsoleSQLite = require('errsole-sqlite'); errsole.initialize({ storage: errsoleSQLite({ filePath: '/tmp/errsole.log' }) });

生产环境建议使用 MySQL、PostgreSQL 或 MongoDB 作为集中式日志存储,具体接入方式可参考 sqlite-storage.md、mysql-storage.md 等官方文档。接入完成后,浏览器打开 Errsole Web Dashboard 即可查看日志。

Email 告警配置:3 分钟搞定 SMTP 邮件通知

errsole.js Email 告警配置是大多数团队的第一选择,无需额外安装服务,只要有一个可用的 SMTP 邮箱即可。

第一步:准备 SMTP 信息

你需要准备以下信息:

  • SMTP 服务器地址(host)与端口(port)
  • 邮箱账号与授权码(username / password)
  • 发件人邮箱(sender)
  • 收件人邮箱列表(recipients,支持多人)

提示:端口使用 465 时,errsole.js 会自动启用 SSL 加密连接。

第二步:在 Web Dashboard 中填写配置

登录 Errsole Web Dashboard,进入 Integrations(集成)页面,找到 Email 一栏,依次填入 SMTP Host、Port、Username、Password、Sender 以及收件人地址,保存即可。配置会存储到emailIntegration配置项中,前端表单逻辑见 Integrations.js。

第三步:发送测试邮件

保存后点击Test Notification按钮,errsole.js 会立即向收件人发送一封测试通知(对应源码中的testEmailAlert方法)。如果没收到,请检查 SMTP 端口、授权码和防火墙设置,页面上也会有相应错误提示。

Slack 告警配置:借助 Webhook 直达工作群

errsole.js Slack 告警配置适合团队协作场景,错误通知直接出现在群聊里,艾特相关同事,响应速度更快。

第一步:创建 Slack Incoming Webhook

在你的 Slack 工作区中,进入 Incoming Webhook 应用管理页面,创建一个新的 Webhook,选择目标频道,复制生成的 Webhook URL。这是 Slack 告警的唯一必填项。

第二步:在 Dashboard 中粘贴 Webhook URL

回到 Errsole 的 Integrations 页面,在 Slack 一栏粘贴 Webhook URL 并保存。errsole.js 会把它写入slackIntegration配置项。之后所有告警都会以 Errsole 机器人身份,通过 Block Kit 富文本卡片推送到你指定的频道,内容包括错误消息、应用名、环境名、服务器名以及点击直达日志的链接。

第三步:测试 Slack 告警

同样点击Test Notification,你的 Slack 频道应立刻收到一条测试卡片。测试通过后,errsole.js Slack 告警配置就算大功告成。

用 errsole.alert() 主动触发关键错误报警

除了自动捕获,errsole.js 还提供alert日志级别,让你主动发送关键错误报警errsole.alert()用法和errsole.log()完全一致,可以传字符串、数字、对象甚至 Error 对象:

errsole.alert('数据库连接池耗尽!'); errsole.alert(new Error('第三方支付接口超时')); errsole.meta({ orderId: 'A1024' }).alert('订单状态异常,需要人工介入');

调用后,errsole.js 会记录该日志,并同时向已配置的 Email 和 Slack 渠道推送告警,相关实现见 lib/main/index.js 与 alerts.js。更丰富的日志函数(errorwarnmeta等)可以参考 advanced-logging-functions.md。

告警通知规则:去重、计数与时区

errsole.js 的告警通知内置了防打扰机制,避免告警风暴:

  • 小时级去重:同一服务器上,相同内容的关键错误报警在 1 小时内不会重复通知,防止错误刷屏。
  • 今日次数统计:通知中会显示该错误今天已发生多少次(如 "This alert has occurred 5 times today"),帮你判断问题的严重程度。
  • UTC 时区:通知中的时间统一使用 UTC 时区,跨时区团队不会混淆。
  • 直达日志链接:每条通知都附带了日志详情页链接,点击即可定位到具体错误现场。

这些规则由 alerts.js 中的checkAlertStatus与去重逻辑实现,基于消息内容的 SHA-256 哈希来识别重复告警。

暂停与恢复告警通知

在排障或维护窗口期间,你可能不想被通知打扰。errsole.js 的 Integrations 页面为 Email 和 Slack 分别提供了Pause Notifications(暂停通知)Resume Notifications(恢复通知)按钮,一键即可切换,配置无需删除。当告警被暂停时,页面会以橙色状态清晰提示。

写在最后

errsole.js 告警通知让"日志收集"升级为"主动防御":Email 兜底、Slack 联动,配合errsole.alert()主动上报关键错误报警,任何异常都逃不出你的监控网。本文介绍的 Email 与 Slack 两种通道可以同时开启,互为备份。建议你在部署后先发一条测试通知,确认链路畅通,再放心上线。下次应用再出问题,你一定是第一个知道的人。

【免费下载链接】errsole.jsCollect, Store, and Visualize Logs with a Single Module项目地址: https://gitcode.com/gh_mirrors/er/errsole.js

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询