顯示具有 webhook 標籤的文章。 顯示所有文章
顯示具有 webhook 標籤的文章。 顯示所有文章

2023年11月2日 星期四

Synology NAS 透過 WebHook 機制發 Alert 到 Line Notify

申請 Token URL 如下

https://notify-bot.line.me/zh_TW/

CURL 測試方式示意

curl -X POST -H 'Authorization: Bearer [LineNotify]' -F 'message=TestMessage' https://notify-api.line.me/api/notify

實際運用:

curl -X POST -H 'Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXX -F 'message=TestMessage' https://notify-api.line.me/api/notify


LineNotify API URL 

https://notify-api.line.me/api/notify


 圖解:



Webhook 網址:請輸入

https://notify-api.line.me/api/notify?message=%40%40TEXT%40%40




 HTTP請求

其實就是最上面那個 CURL 的用法,只是改成以 WEB  輸入的方式呈現.
觀念是一樣的.


可以經由 發送測試通知 去驗證是否正常




如果正常應該會收到如下的 Alert 訊息



FortiGate 也是可以比照辦理.




如有興趣詳見:










2023年10月28日 星期六

FortiGate Automation webhook 加 Line Notify API Webhook 實驗

 延續做實驗

接續 Line Notify API Webhook 實驗

https://xrcd2.blogspot.com/2023/09/line-notify-api-webhook.html


再加入 FortiGate Automation webhook 做進階實驗

簡要架構

FTG--> Automation webhook ->LineNotifyAPI-webhook-Server-->Alert---> LineNotify

 (以下實驗架構)

實務上的用法較正確的做法如下所示

 FTG-> Automation webhook -> https://notify-api.line.me/api/notify --> Alert---> LineNotify

 (一般用法)

申請 Token URL 如下

https://notify-bot.line.me/zh_TW/


CURL 測試方式

curl -X POST -H 'Authorization: Bearer [access_token]' -F 'message=TestMessage' https://notify-api.line.me/api/notify


實驗截圖開始














正常的用法可能長這樣 直打  https://notify-api.line.me/api/notify



Debug 

正常發出訊息


傳送訊息加入 %%log%%  

看來有將 log 訊息加上,但可能死在 json 或 curl 不支援 %%log%% ,可能是 保留字 吧.

有空再研究啦!


Demo




以上畫面的截取為 FTG7 如使用 FTG  6 的畫面如下所示





我是在家中的 IP 分享器底下的 VM 去做實驗的

如果直打 https://notify-api.line.me/api/notify 問題會死在 

auto_curl_perform()-107: Curl perform error:35 - SSL connect error.

__action_webhook_status()-150: Failed to perform curl for url:https://notify-api.line.me/api/notify.

__run_action()-298: Error when running service for stitch:AdminLoginAlert action:SendAlert2Line.

但很怪的是 VM 上網對外是全開的.

且用 CURL 去測也是正常的.. GG

FortiOS 的底層的 curl 可能很不一般吧..(很神奇的那一種) ..~^_^~.


WAN IP unknown




最後手段








終於成功啦!










2023年9月23日 星期六

Line Notify API Webhook 實驗

 本實驗是使用 https://github.com/adnanh/webhook 提供現成的 webhook  程式而來.

因為是直接使用在 AlmaLinux release 9.2 (Turquoise Kodkod)


所需撰寫檔案可參考如下:

[root@AlmaLinux92 webhook-linux-amd64]# pwd
/root/webhook-linux-amd64
[root@AlmaLinux92 webhook-linux-amd64]# ll
total 10352
-rw-r--r-- 1 root root      789 Sep 23 13:55 hooks.json
-rwxrwxr-x 1 1001 1001 10593221 May 23 03:06 webhook
[root@AlmaLinux92 webhook-linux-amd64]# cat hooks.json 
[
  {
    "id": "simple",
    "execute-command": "/tmp/app.sh",
    "include-command-output-in-response":true,
    "include-command-output-in-response-on-error":true,
    "command-working-directory":"/tmp",
    "pass-arguments-to-command":,
    "pass-environment-to-command":
   [
    {
     "envname": "TOKEN",
     "source": "url",
     "name": "token"
    },
    {
     "envname": "SUBJECT",
     "source": "payload",
     "name": "subject"
    },
    {
     "envname": "BODY",
     "source": "payload",
     "name": "body"
    }

   ],
    "trigger-rule":
    {
      "match":
      {
        "type": "value",
        "value": "qhkv2x54TXXXXXXXXXXXXXXXXXXXXXXXXXXXXP1N6",
        "parameter":
       {
         "source": "url",
         "name": "token"
       }
      }
    }
  }
[root@AlmaLinux92 webhook-linux-amd64]# 




[root@AlmaLinux92 tmp]# cat /tmp/app.sh 
#!/bin/bash

curl -X POST -H  "Authorization: Bearer $TOKEN" -F "message= $SUBJECT ---- $BODY" https://notify-api.line.me/api/notify

echo "$BODY" | mailx -r "WEBHOOK <webhook@simple.com>" -s "$SUBJECT" root


[root@AlmaLinux92 tmp]# 


執行方式

[root@AlmaLinux92 webhook-linux-amd64]# ./webhook -hooks hooks.json -verbose


測試方法

#curl -X POST   -H "Content-Type: application/json" \
'http://localhost:9000/hooks/simple?token=qhkv2x54TXXXXXXXXXXXXXXXP1N6'  \
-d '{"subject":"Test from AlmaLinux WEBHOOK Subject","body":"Test from AlmaLinux  WEBHOOK Body"}'


程式執行畫面






測試執行畫面






實驗結果