Ad Widget

Collapse

Графики в алертах.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • G1de0n
    Junior Member
    • Oct 2018
    • 3

    #1

    Графики в алертах.

    Добрый день, коллеги!
    При установке нового сервера заббикса столкнулся со следующей проблемой. Перестали отправляться графики в алертах. Хотя на другом сервере с такой же ОС и версией Zabbix отправляется корректно.
    ОС Centos 7. Версия Zabbix 4.5. Для отправки использую следующий скрипт:
    HTML Code:
    #!/bin/bash -x
    
    if [ ! -d "/tmp/slack_charts" ]; then
    mkdir /tmp/slack_charts
    fi
    
    # config
    slack_url='вебхук для slack'
    slack_username='Zabbix'
    channel="$1"
    title="$2"
    params="$3"
    emoji=':ghost:'
    timeout="5"
    cmd_curl="/usr/bin/curl"
    cmd_wget="/usr/bin/wget"
    
    zabbix_baseurl="ссылка на заббикс"
    zabbix_username="имя_пользователя"
    zabbix_password="пароль_пользователя"
    
    # chart settings
    chart_period=3600
    chart_width=1280
    chart_height=390
    chart_baseurl="${zabbix_baseurl}/slack_charts"
    chart_basedir="/tmp/slack_charts"
    chart_cookie="/tmp/zcookies.txt"
    
    # set params
    host="`echo "${params}" | grep 'HOST: ' | awk -F 'HOST: ' '{print $2}' | tr -d '\r'`"
    
    trigger_name="`echo "${params}" | grep 'TRIGGER_NAME: ' | awk -F 'TRIGGER_NAME: ' '{print $2}' | tr -d '\r'`"
    
    trigger_status="`echo "${params}" | grep 'TRIGGER_STATUS: ' | awk -F 'TRIGGER_STATUS: ' '{print $2}' | tr -d '\r'`"
    
    trigger_severity="`echo "${params}" | grep 'TRIGGER_SEVERITY: ' | awk -F 'TRIGGER_SEVERITY: ' '{print $2}' | tr -d '\r'`"
    
    trigger_url="`echo "${params}" | grep 'TRIGGER_URL: ' | awk -F 'TRIGGER_URL: ' '{print $2}' | tr -d '\r'`"
    
    datetime="`echo "${params}" | grep 'DATETIME: ' | awk -F 'DATETIME: ' '{print $2}' | tr -d '\r'`"
    
    item_value="`echo "${params}" | grep 'ITEM_VALUE: ' | awk -F 'ITEM_VALUE: ' '{print $2}' | tr -d '\r'`"
    
    event_id="`echo "${params}" | grep 'EVENT_ID: ' | awk -F 'EVENT_ID: ' '{print $2}' | tr -d '\r'`"
    
    item_id="`echo "${params}" | grep 'ITEM_ID: ' | awk -F 'ITEM_ID: ' '{print $2}' | tr -d '\r'`"
    
    # get charts
    if [ "${item_id}" != "" ]; then
    timestamp=$(date +%s)
    
    ${cmd_wget} --save-cookies="${chart_cookie}_${timestamp}" --keep-session-cookies --post-data "name=${zabbix_username}&password=${zabbix_passwor d}&enter=Sign+in" -O /dev/null -q "${zabbix_baseurl}/index.php?login=1"
    ${cmd_wget} --load-cookies="${chart_cookie}_${timestamp}" -O "${chart_basedir}/graph-${item_id}-${timestamp}.png" -q "${zabbix_baseurl}/chart.php?&itemids=${item_id}&width=${chart_width} &period=${chart_period}"
    chart_url="${chart_baseurl}/graph-${item_id}-${timestamp}.png"
    rm -f ${chart_cookie}_${timestamp}
    
    # if triger url is empty then we link to the graph with the item_id
    if [ "${trigger_url}" == "" ]; then
    trigger_url="${zabbix_baseurl}/history.php?action=showgraph&itemids[]=${item_id}"
    fi
    fi
    
    # set color
    if [ "${trigger_status}" == "OK" ]; then
    case "${trigger_severity}" in
    'Information')
    color="#439FE0"
    ;;
    *)
    color="good"
    ;;
    esac
    elif [ "${trigger_status}" == "PROBLEM" ]; then
    case "${trigger_severity}" in
    'Information')
    color="#439FE0"
    ;;
    'Warning')
    color="warning"
    ;;
    *)
    color="danger"
    ;;
    esac
    else
    color="#808080"
    fi
    
    # set payload
    payload="payload={
    "channel": "${channel}",
    "username": "${slack_username}",
    "icon_emoji": "${emoji}",
    "attachments": [
    {
    "fallback": "Date / Time: ${datetime} - ${title}",
    "title": "${title}",
    "title_link": "${trigger_url}",
    "color": "${color}",
    "fields": [
    {
    "title": "Date / Time",
    "value": "${datetime}",
    "short": true
    },
    {
    "title": "Status",
    "value": "${trigger_status}",
    "short": true
    },
    {
    "title": "Host",
    "value": "${host}",
    "short": true
    },
    {
    "title": "Trigger",
    "value": "${trigger_name}: ${item_value}",
    "short": true
    }
    ],
    "image_url": "${chart_url}"
    }
    ]
    }"
    
    # send to slack
    ${cmd_curl} -m ${timeout} --data-urlencode "${payload}" "${slack_url}"
    Так же настраивал оповещения для Zabbix 5.0 в telegram с помощью скрипта https://github.com/ableev/Zabbix-in-Telegram. Тоже алерты летят без графиков.
    Просьба помочь и настроить корректные алерты из zabbix в slack/telegram. Может быть тип отправки скриптами уже устарел в новых версиях zabbix, тогда просьба подсказать как лучше всего использовать вебхуки чтобы алерты отправлялись с графиками??
    Заранее спасибо!
Working...