收不到通知
不管哪個頻道都收不到的話,從這些基本項目開始檢查:1. 看通知狀態
1. 看通知狀態
- 哪些頻道有開
- 上次成功送達時間
- 有沒有 pending 的錯誤
- 目前的最低嚴重性設定
2. 送測試通知
2. 送測試通知
3. 看嚴重性門檻
3. 看嚴重性門檻
通知只在事件嚴重性達到或超過設定值時才送:設成
critical 的話就只有 critical 事件才會通知。調低一點:4. 看冷卻時間
4. 看冷卻時間
冷卻機制防止重複通知洗版。短時間內很多類似事件的話,只有第一個會觸發:覺得太久可以縮短:
5. 重跑頻道設定
5. 重跑頻道設定
以上都沒用的話,重跑一次設定:會重新驗證憑證跟重新加密 config。
Telegram 問題
Bot token 無效
Bot token 無效
Chat ID 不對
Chat ID 不對
- 先隨便傳一則訊息給你的 bot(Telegram 規定的)
- 群組的話,把 bot 加進去
- 重跑設定讓它自動抓 chat ID:
要先傳訊息給 bot
要先傳訊息給 bot
Telegram bot 不能主動發起對話。你必須先傳訊息給 bot,它才能傳訊息給你。
- 開 Telegram 用 username 找到你的 bot
- 傳
/start或隨便一則訊息 - 然後跑:
群組權限
群組權限
Bot 沒辦法在群組發訊息的話:
- 確認 bot 是群組成員
- 群組有限制發言的話,把 bot 設成管理員
- 在 BotFather 確認 Group Privacy 是關的(
/mybots> Bot Settings > Group Privacy > Turn off)
Slack 問題
Webhook URL 無效
Webhook URL 無效
- 到 api.slack.com/apps
- 選你的 app
- 到 Incoming Webhooks
- 建新的 webhook 或複製現有的 URL
- 重跑設定:
找不到頻道
找不到頻道
- 確認頻道名稱對不對(要帶
#) - 針對目標頻道建一個新 webhook
- 重跑設定:
App 權限
App 權限
如果用 Slack App(不只是 incoming webhook),確認 app 有這些 scope:
incoming-webhook— 透過 webhook 發訊息chat:write— 發訊息(用 Bot Token 的話)chat:write.public— 發到 bot 不在的頻道
Email 問題
SMTP 連線被拒
SMTP 連線被拒
- 確認 SMTP host 跟 port 對不對
- 看防火牆或 ISP 有沒有擋 port 587
- 587(TLS)被擋的話試 465(SSL):
SMTP 認證失敗
SMTP 認證失敗
- 用應用程式密碼,不要用帳號密碼
- 先在 Google 帳號開兩步驟驗證
- 到 myaccount.google.com/apppasswords 產生應用程式密碼
- 確認帳號對不對(通常是完整的 email 地址)
- 看 provider 是不是要用 app 專用密碼
- 重跑設定:
Email 進垃圾郵件
Email 進垃圾郵件
- 把
alerts@panguard.ai(或你設定的from地址)加到聯絡人 - 自架的話幫發送 domain 設好 SPF、DKIM、DMARC 紀錄
- 用信譽好的 SMTP provider(SendGrid、AWS SES、Mailgun)
Webhook 問題
連線 timeout
連線 timeout
- 確認 URL 對不對、伺服器連不連得到
- 拉長 timeout:
- 直接測 endpoint:
SSL 憑證錯誤
SSL 憑證錯誤
- 用有效的 SSL 憑證(Let’s Encrypt 免費)
- 內部 endpoint 的話設 CA 憑證:
通知語言不對
通知送來的語言不對的話:| 代碼 | 語言 |
|---|---|
en | English |
zh-TW | 繁體中文 |
ja | 日本語 |
通知語言跟 CLI 語言(
PANGUARD_LANG)是分開的。CLI
語言管終端輸出,通知語言管透過通知頻道送出去的訊息內容。