顯示具有 line notify 標籤的文章。 顯示所有文章
顯示具有 line notify 標籤的文章。 顯示所有文章

2020年9月18日

line notify for cacti 1.x 20200921更新版

1. vim thold_functions.php 找到「function thold_mail」這個 Function,在最後的「return '';」上方加入以下程式碼:
2.把 your_line_token 改成自己使用的 token
/* LINE訊息告警 */
thold_debug("LINE alert-----------------");
$ttime=date("Y/m/d h:i:sa");
$content = trim("$subject")."\n"."\n".$ttime;
if ($data != '') {
    foreach ($data as $val) {
        $ffile = fopen("/tmp/qq.png","w+");
        fwrite($ffile,$val);
        fclose($ffile);
        $linefields = array('message' => $content,
                            'imageFile' => curl_file_create('/tmp/qq.png'));
        line_notify($linefields);
        unlink('/tmp/qq.png');
    }
}else{
    $linefields = array('message' => $content);
    line_notify($linefields);
}
thold_debug("LINE alert-----------------");
/* LINE訊息告警 */


3.一樣在「function thold_mail」這個 Function裡面找到
$attachments[] = array(
    'attachment' => rrdtool_function_graph($val['local_graph_id'], '', $graph_data_array, ''),
    'filename' => 'graph_' . $val['local_graph_id'] . '.png',
    'mime_type' => 'image/png',
    'local_graph_id' => $val['local_graph_id'],
    'local_data_id' => $val['local_data_id'],
    'inline' => 'inline'
);

下面一行加上
/* LINE訊息告警 */
$data1 = @rrdtool_function_graph($val['local_graph_id'], '', $graph_data_array);
array_push($data, $data1);
/* LINE訊息告警 */


4.在function thold_mail」這個 Function,在最後的「return '';」下方加入以下程式碼
/* LINE訊息告警 */
function line_notify($linefields){
    $ch = curl_init();
    $lineurl="https://notify-api.line.me/api/notify" ;
    $linehead=array("Content-Type: multipart/form-data",
                        "Authorization: Bearer your_line_token");
    curl_setopt($ch, CURLOPT_URL, $lineurl);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $linehead);
    curl_setopt($ch, CURLOPT_NOBODY, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $linefields);
    curl_exec($ch);
    curl_close($ch);
}
/* LINE訊息告警 */


2020年3月5日

cacti 使用 line notify 告警(含圖片輸出)

原本照 新添LINE訊息告警 Cacti網管更即時 文章、透過 IFTTT 告警。但是發現某些時候都會 delay 很久,所以另外找方法改成使用 curl 方式直接接 line api。
已測試版本:0.88b

1.一樣編緝thold_functions.php,找到「function thold_mail」這個 Function,在最後的「return '';」上方加入以下程式碼:
2.把 your_line_token 改成自己使用的 token
/* LINE訊息告警 */
list($a,$b) = explode("Message:",$text['text']);
$ttime=date("Y/m/d h:i:sa");
if ($b != '') {
$content=trim("$b")."\n"."\n".$ttime;
}else{
$content=$subject;
}

if ($data != '') {
$ffile = fopen("/tmp/qq.jpg","w+");
fwrite($ffile,$data);
fclose($ffile);
$linefields = array('message' => $content,
'imageFile' => curl_file_create('/tmp/qq.jpg'));
}else{
$linefields = array('message' => $content);
}

$ch = curl_init();
$lineurl="https://notify-api.line.me/api/notify" ;
$linehead=array("Content-Type: multipart/form-data",
"Authorization: Bearer your_line_token");
curl_setopt($ch, CURLOPT_URL, $lineurl);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $linehead);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $linefields);
curl_exec($ch);
curl_close($ch);
if(file_exists('/tmp/qq.jpg')){
unlink('/tmp/qq.jpg');
}



上面程式放到 github 上,方便複製
https://github.com/zhuccc/cacti_thold_line

Ref:
新添LINE訊息告警 Cacti網管更即時
CACTI Alert 增加 LineNotify