大家好!昨天我們成功在 n8n 建立了 Webhook 節點,看到 FastAPI 傳遞過來的 JSON 資料完美呈現在畫面上。
在原本的技術路線中,許多國外教學會選擇串接 Discord 或 Slack。但在台灣的職場與日常生活中,LINE 才是真正的「國民軟體」。如果半夜伺服器遭到嚴重攻擊,比起 Discord,LINE 的震動絕對更能第一時間把維運人員叫醒。
要讓 n8n 有權限發送 LINE 訊息,我們需要先去 LINE 的開發者後台申請一隻機器人,並取得兩把關鍵的 API 鑰匙:
登入 LINE Developers 控制台 (https://developers.line.biz/console/)。
建立一個新的 Provider(提供者,例如命名為「安全營運」),並在底下選擇建立一個 Messaging API Channel。
進入 Channel 設定頁面後,我們需要取得兩把關鍵鑰匙:
💡 實務小知識與踩坑警告:
迷路警告:LINE 的系統很容易讓人搞混「官方帳號管理後台 (manager.line.biz)」跟「開發者後台 (developers.line.biz)」。如果你找不到發行 Token 的按鈕,請務必確認網址是在 Developers 開發者後台!
資安觀念:以前在處理會計帳務時,公司的印章跟密碼絕對不能外流;現在寫程式也一樣,請把 Access Token 當作銀行密碼保管,絕對不要寫在會推送到 GitHub 的公開程式碼裡!
記得加好友:在 Messaging API 頁面中間會有一個 QR Code,請務必拿起手機掃描加這隻機器人為好友,否則等一下會收不到推播。
相較於 Discord 有現成的懶人節點,串接 LINE Bot 比較考驗我們對 RESTful API 的熟悉度。我們將使用 n8n 最萬用的 HTTP Request 節點來呼叫 LINE 的官方 API。
回到瀏覽器的 n8n 畫面(http://localhost:5678)。
在昨天建好的 Webhook 節點右側,點擊 "+" 並搜尋加入 HTTP Request 節點。
點開設定面板,進行以下核心配置:
Method:選擇 POST。
URL:填入 LINE 的推播 API 端點 https://api.line.me/v2/bot/message/push。
Authentication:選擇 None(我們會手動在 Header 帶入 Token)。
接下來要透過 API 告訴 LINE 我們是誰,以及要傳送什麼訊息。這一步是整個 API 串接的靈魂,也是最容易發生 Authorization failed 錯誤的地方。
在 HTTP Request 面板往下滑,找到 Send Headers 並開啟它。新增兩個不可或缺的 Header 參數:
第一組 (身分驗證):Name 填 Authorization,Value 填 Bearer 你的Channel_Access_Token。(⚠️ 極度重要:Bearer 後面一定要有一個半形空格!而且請確認你貼上的是超過 150 字元的長亂碼,千萬不要貼到短短的 Channel secret!)
第二組 (資料格式):Name 填 Content-Type,Value 填 application/json。這告訴 LINE 我們接下來傳送的內容是 JSON 格式。
接著,開啟 Send Body 開關,Body Content Type 選擇 JSON。
在 Specify Body 選擇 JSON (或 Raw),並貼上以下的結構:
{
"to": "這裡請貼上你的_Your_user_ID",
"messages": [
{
"type": "text",
"text": "🚨 【資安系統告警】偵測到重大安全漏洞 🚨\n\n受害主機:{{ $json.body.agent_name }}\n漏洞編號:{{ $json.body.cve_id }}\n受害套件:{{ $json.body.package }}\n嚴重程度:{{ $json.body.severity }}\n\n詳細描述:\n{{ $json.body.description }}"
}
]
}


注意到了嗎?我們利用 n8n 的變數表達式 {{ }},把上一關 FastAPI 傳過來的動態資料,完美地鑲嵌進了 LINE 的文字訊息中。每次有不同的漏洞,這段文字就會自動替換成對應的情報。

設定完畢後,點擊 n8n 畫面右下角的 Execute Workflow(執行工作流),讓系統進入監聽狀態。
接著,我們等待 Wazuh 再次偵測到漏洞,或者手動觸發一筆告警。當資料流一啟動:
看著手機跳出通知的那一刻,真的會非常有成就感!這代表我們的「主動式資安威脅通報系統」已經正式打通,而且完美融入了台灣開發者的日常生態。
團隊終於可以脫離手動看 Log 的痛苦,進入自動化維運的時代。明天,我們將準備進入下一個階段:既然系統都知道哪裡有漏洞了,我們能不能讓它透過 n8n 進行「自動化阻擋與修補」呢?我們明天見!