กลุ่มชุมชนแลกเปลี่ยนความรู้แบ่งปั่น และช่วยเหลือ ต่อการใช้งาน OpenSource Zabbix เพราะการแบ่งปัน นั้นยิ่งใหญ่กว่า.

Zabbix + LINE Notify alert with Graph image - Zabbix ส่งแจ้งเตือน LINE Notify ที่มีภาพกราฟ

ขั้นตอนการดำเนินการทำ Zabbix เพื่อให้ส่งแจ้งเตือนผ่าน LINE Notify ที่มีรูปภาพ Graph
(The how to procedure for Zabbix sending alert via LINE Notify with Graph image)

ขั้นตอนที่ 1: ทำการสร้าง "Media types" ในรูปแบบ "Script" เพื่อรองรับการทำงานการเขียนโปรแกรมส่งการแจ้งเตือนผ่าน LINE, โดยไปที่เมนู Adminstration -> Media types -> Create media type
(Step 1: Creating "Media types" with type "Script" for suppored customising send LINE alert. Goto  Adminstration -> Media types -> Create media type) 



ขั้นตอนที่ 2: ที่หน้าจอ "Media types" กำหนดรายละเอียดดังนี้
(Step 2: On menu named "Media types" specified parameters as following.)

Name: YOUR_MEDIA_TYPE_NAME - e.g.: LineGraph
Type: Script
Script name: YOUR_SHELL_SCRIPT_NAME - e.g.: linegraph
Script parameters:

  • {ALERT.SENDTO}     ---> Remember: This is $1 in your shell script
  • {ALERT.SUBJECT}    ---> Remember: This is $2 in your shell script
  • {ALERT.MESSAGE}  ---> Remember: This is $3 in your shell script
Enables: Seleted



ขั้นตอนที่ 3: กำหนดให้ "User" ที่เกี่ยวข้องใช้งาน "Media" ที่สร้างขึ้นตามขั้นตอนที่ 2, โดยไปที่เมนู Administration -> Users -> เลือกผู้ใช้งานที่ต้องการ เช่น Admin -> Media โดยกำหนด "Type" เป็นชื่อ Media Type ที่สร้างขึ้นตามขั้นตอนที่ 2
(Step 3: Configure the related "User" to using "Media" that created in step no. 2, Goto Administration -> Users -> Choose related User such as Admin -> Media the set to "Type")



ขั้นตอนที่ 4: กำหนด "Action" ที่เกี่ยวข้องใช้งาน "Media" ที่สร้างขึ้นตามขั้นตอนที่ 2, โดยไปที่เมนู Configuration -> Actions -> เลือกชื่อ Action ที่ต้องการ หรือสร้าง Action ใหม่ -> จากนั้นกำหนดรายละเอียดดังนี้
(Step 4: Configure the related "Action" to using "Media" that created in step no. 2, Goto Configuration -> Actions -> Choose related Action or Create new Action ->  Then specified detail as following.)

เมนู "Action" (Action menu)

Name: YOUR_ACTION_NAME - e.g.: SendEmailLine
Condition: YOUR_ACTION_WILL_BE_WORKING_CONDITION - e.g.: Trigger severity.
Enables: Seleted


(A) เมนู "Operations/Recovery operations/Update operations" (Operations/Recovery operations/Update operations menu)

Default message: Including wording "Graph: [{ITEM.ID1}]"
Operations: รายละเอียดตามเมนูย่อย "Operation details" (Please following Operation details sub-menu)


(B) เมนูย่อย "Operation details" -> จะปรากฎหลังจากที่คลิก "New" or "Edit"
(Operation details sub-menu -> After clicking "New" or "Edit") 

Send to Users: YOUR_ALERT_RELATED_USERS - e.g.: Admin
Send only to: YOUR_MEDIA - e.g.: LineGraph
Default message: Seleted


**กำหนดรายละเอียดตามขั้นตอน (A) และ (B) สำหรับเมนู "Recovery operations/Update operations" ให้ครบถ้วน
(Completed configure setting (A) and (B) on Recovery operations/Update operations menu)**


ขั้นตอนที่ 5: สร้างไฟล์ Shell script ในไดเร็คทอรี /usr/lib/zabbix/alertscripts (ตัวอย่าง CentOS) บนเครื่อง Zabbix สำหรับทำงานในการส่ง ข้อมูลรายละเอียด และรูปภาพกราฟ การแจ้งเตือนผ่านช่องทาง LINE Notify โดยชื่อไฟล์จะต้องตรงกับที่กำหนดไว้ในขั้นตอนที่ 2 - ชื่อพารามิเตอร์ "Script name" เช่น linegraph
(Step 5: Create Shell script file in /usr/lib/zabbix/alertscripts directory (Example of CentOS) on Zabbix server machine for sending information and graph picture via LINE Notify. This script file name must be the same on Step no.2 - Parameter named "Script name" such as linegraph)

ตัวอย่างไฟล์ shell script (Example of shell script file)
#!/bin/bash
ZBX_URL="http://127.0.0.1/zabbix"
USERNAME="YOUR_ZABBIX_WEB_USER"              # e.g.: Admin
PASSWORD="YOUR_ZABBIX_WEB_PASSWORD"   # e.g.: zabbix
PERIOD=10800
ZABBIXVERSION34="1"
GRAPHID=$3
GRAPHID=$(echo $GRAPHID | grep -o -E "(Graph: \[[0-9]{7}\])|(Graph: \[[0-9]{6}\])|(Graph: \[[0-9]{5}\])|(Graph: \[[0-9]{4}\])|(Graph: \[[0-9]{3}\])")
GRAPHID=$(echo $GRAPHID | grep -o -E "([0-9]{7})|([0-9]{6})|([0-9]{5})|([0-9]{4})|([0-9]{3})")
case $GRAPHID in
''|*[!0-9]*) INC_GRAPH=0 ;;
*) INC_GRAPH=1 ;;
esac
WIDTH=800
CURL="/usr/bin/curl"
#NEW_UUID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 4 | head -n 1)
NEW_UUID=$RANDOM
COOKIE="/tmp/zapi_cookie-$(date "+%Y.%m.%d-%H.%M.%S")-${NEW_UUID}"
PNG_PATH="/tmp/zapi_graph-$(date "+%Y.%m.%d-%H.%M.%S")-${NEW_UUID}.png"

if [ $(($INC_GRAPH)) -eq '1' ]; then
${CURL} -k -s -c ${COOKIE} -b ${COOKIE} -d "name=${USERNAME}&password=${PASSWORD}&autologin=1&enter=Sign%20in" ${ZBX_URL}"/index.php" > /dev/null
if [ "${GRAPHID}" == "000001" ]; then
GRAPHID="00002";
${CURL} -k -s -c ${COOKIE} -b ${COOKIE} -d "graphid=${GRAPHID}&period=${PERIOD}&width=${WIDTH}" ${ZBX_URL}"/chart2.php" -o "${PNG_PATH}";
elif [ "${GRAPHID}" == "000002" ]; then
GRAPHID="00003";
${CURL} -k -s -c ${COOKIE}  -b ${COOKIE} -d "graphid=${GRAPHID}&period=${PERIOD}&width=${WIDTH}" ${ZBX_URL}"/chart2.php" -o "${PNG_PATH}";
elif [ "${GRAPHID}" == "000003" ]; then
GRAPHID="00004";
${CURL} -k -s -c ${COOKIE}  -b ${COOKIE} -d "graphid=${GRAPHID}&period=${PERIOD}&width=${WIDTH}" ${ZBX_URL}"/chart2.php" -o "${PNG_PATH}";
else
if [ "${ZABBIXVERSION34}" == "1" ]; then
${CURL} -k -s -c ${COOKIE}  -b ${COOKIE} -d "itemids=${GRAPHID}&period=${PERIOD}&width=${WIDTH}&profileIdx=web.item.graph" ${ZBX_URL}"/chart.php" -o "${PNG_PATH}";
else
${CURL} -k -s -c ${COOKIE}  -b ${COOKIE} -d "itemids=${GRAPHID}&period=${PERIOD}&width=${WIDTH}" ${ZBX_URL}"/chart.php" -o "${PNG_PATH}";
fi
fi
${CURL} -X POST -H "Authorization: Bearer YOUR_LINE_NOTIFY_TOKEN" -F "message=$2" -F "imageFile=@${PNG_PATH}" https://notify-api.line.me/api/notify
else
${CURL} -X POST -H "Authorization: Bearer YOUR_LINE_NOTIFY_TOKEN" -F "message=$2" https://notify-api.line.me/api/notify
fi
rm -f ${COOKIE}
rm -f ${PNG_PATH}


ขั้นตอนที่ 6: กำหนดให้ไฟล์ shell script ดังกล่าว สามารถ execute ได้ โดยคำสั่งดังต่อไปนี้บนระบบปฏิบัติการบนเครื่อง Zabbix
(Step 6: Set shell script file permission to allow executable on Zabbix server operating system - OS as following command)
# chmod +x /usr/lib/zabbix/alertscripts/YOUR_SCRIPT_FILE

ตัวอย่าง (Example)
# chmod +x /usr/lib/zabbix/alertscripts/linegraph


Reference:
https://github.com/diegosmaia/zabbix-telegram

Share:
 
Zabbix in Thailand
Facebook Group · 701 members
Join Group
กลุ่มนี้จัดตั้งขึ้นเพื่อแลกเปลี่ยนความรู้ของ zabbix ใครมีคู่มือ เทคนิค หรือ ปัญหา มาร่วมมือกันแก้ไขกันสำหรับชาวไทย -----------------------------------...
 

Popular

ค้นหาบล็อกนี้

Labels

Comments

Labels

Recent Posts