iT邦幫忙

0

zabbix使用Line發報的問題請教

目前我這裡有需求需要使用Zabbix使用Line發報告警

已按照教學架設好伺服器了

但是再跑警告測試的時後一直發不出來

以下scritp

#!/bin/bash


PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH


# LINE Notify Token - Media > "Send to".

TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

# {ALERT.SUBJECT}
subject="$2"

# {ALERT.MESSAGE}
message="$3"

curl https://notify-api.line.me/api/notify -H "Authorization: Bearer ${TOKEN}" -d "message=${notice}"

到Linux內直接執行sh測試後回傳
line_notify.sh: 18: line_notify.sh: curl: not found

回到程式法檢查第18行後發現是
curl https://notify-api.line.me/api/notify -H "Authorization: Bearer ${TOKEN}" -d "message=${notice}"
這一行 如果直接用瀏覽器開啟上方連接會跑出{"status":405,"message":"Method Not Allowed"}

目前測試之前前輩使用的Zabbix測試卻可以直接執行 裡面也有這一行

搞了一整天都沒有結果 想請教一下各位大大

我是哪一個步驟有做錯 才會導致報錯QQ

看更多先前的討論...收起先前的討論...
HTTP 405 錯誤 – 方法不被允許 (Method not allowed),因為這支 API 限制 POST
先把 curl 安裝起來. 然後才能接續做其他測試.

curl: not found <--- 這是找不到 curl ,也有可能是 PATH 沒有指到 curl 所在的目錄.
你需要檢查 1. 是否有安裝 2. PATH 是否有指到安裝的目錄.
孤狼 iT邦新手 5 級 ‧ 2020-11-28 00:49:45 檢舉
目前直接執行 sh
會回傳這一句
{"status":400,"message":"message: must not be empty"}

看起來有進展了 持續找問題

大大有碰過嗎
echochio iT邦高手 1 級 ‧ 2020-11-28 04:11:07 檢舉
看 shell 是需要參數的,
直接執行 sh ,後面要帶參數 主旨 內容
{"status":400,"message":"message: must not be empty"}
這不是告訴你訊息不能為空了嗎

1 個回答

0
耿直小伙
iT邦新手 3 級 ‧ 2020-11-27 18:26:00

撇除設定問題,我這樣操作是可以正常發出 Line 通知的喔!

<?php
$client = new Client();

$response = $client->request('post', 'https://notify-api.line.me/api/notify', [
    'http_errors' => false,
    'headers' => [
        'Authorization' => 'Bearer ' . $this->bearerToken
    ],
    'form_params' => [
        'message' => $this->message
    ]
]);

if ($response->getStatusCode() !== 200) {
    throw new Exception('發送通知失敗');
}

我要發表回答

立即登入回答