Ad Widget

Collapse

Отправка уведомлений

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • romanovip
    Junior Member
    • Nov 2013
    • 2

    #1

    Отправка уведомлений

    Всем доброго дня!
    Настроил Zabbix на FreeBSD. Все работает, однако не могу побороть настройку уведомлений по почте.
    Я так понимаю, что есть 2 варианта:
    1) Найти smtp сервер, не требующий авторизации
    2) Поднять какой-нибудь ssmtp и настроить его на отправку уведомлений через smtp сервера Яндекса или Гугла.

    Пошел по второму пути, настроил все - ssmtp используется по умолчанию, успешно отправляет письма из консоли, все приходит, в revaliases пользователи zabbix и root разрешены.

    Пишу такой скрипт mail.sh:

    !#/bin/sh
    to=$1
    subject=$2
    body=$3

    cat << EOF | mail -s "$subject" "$to"
    $body
    EOF

    И затем создаю Media Type типа Script с названием mail.sh в Zabbix.
    После этого создаю итем, настраиваю тригер, и прописываю Action, в котором указываю, что необходимо исполнять mail.sh при срабатывании триггера.
    Все отлично, триггер отрабатывает, однако поле Action напротив события красное и написано not sent. На почту мне, естественно, ничего не приходит. Пользователя настраивал, почту привязывал. В /tmp/zabbix_server.log и /var/log/maillog ничего. Подскажите, куда копать, если кто настраивал?
  • VoRoN
    Junior Member
    • Nov 2013
    • 5

    #2
    в Администрирование -> Способы оповещений создал способ оповещения
    с типом: скрипт
    имя скрипта: send_mail.sh

    скрипт поместил в /home/zabbix/alertscripts/
    путь к папке задается параметром AlertScriptsPath настройки сервера

    сам скрипт
    Code:
    #!/bin/bash
    To=$1
    From="[email protected]"
    Sub="$2"
    Date=`date`
    Body="$3"
    
    tt="To: $To
    From: $From
    Date: $Date
    Subject: $Sub
    
    $Body"
    
    echo "$tt" | /usr/bin/msmtp $To
    для отправки использую msmtprc

    вот настройки

    Code:
    defaults
    
    account default
    host mail.domain.com
    port 25
    auth on
    tls off
    tls_starttls off
    tls_certcheck off
    user [email protected]
    password password 
    from [email protected]
    logfile /var/log/msmtp.log

    Comment

    • romanovip
      Junior Member
      • Nov 2013
      • 2

      #3
      Благодарю за ответ.
      Разобрался, в чем проблема была - Ваш скрипт у меня тоже не отработал бы. sh не назначал переменные, поставил bash. Соответственно, скрипт стал выглядеть следующим образом:

      to=$1
      subject=$2
      body=$3
      echo $body << . | /usr/bin/mail -s $subject $to
      .

      В mailer.conf у меня все ссылается на /usr/local/sbin/ssmtp
      Такие проблемы наверное только в FreeBSD, ибо bash по умолчанию не установлен. Точка в конце скрипта обязательна, без него сообщение также не отправится.
      А, еще я вдобавок в Users - Media указал только Email (ну думал, что туда надо писать email, а скрипт сам подставит этот адрес). А надо было выбирать созданный мной скрипт, который делал в Media Types.
      Может, кому подобное решение и пригодится.

      Comment

      • tiss42rus
        Junior Member
        • Jan 2015
        • 6

        #4
        Почему в теле письма русские буквы некорректно отображаются? Причем не отлько с забикса. Команда echo "русские буквы" | mail -s "email subject" [email protected] тоже в тело письма подставит непонятные символы??

        Comment

        • Jimson
          Senior Member
          • Jan 2008
          • 1327

          #5
          Потому что mailx (он же BSD mail) никогда не умел и должен уметь энкодить сообщения, так же как и распознавать charset и добавлять соответствующие поля в заголовок указывающие какая кодировка исходного письма и какой encode используется для передачи. По рекомендациям (по RFC 820 или 822? не помню) передаваемые символы должны быть в 7ми битной кодировке, так что никаких "русских букв" там быть не может, все десткопные почтовые агенты кодируют письма, обычно, в base64, а неACSII символы в заголовках (From, Subject, etc), обычно, в quote-printable.

          Comment

          • tiss42rus
            Junior Member
            • Jan 2015
            • 6

            #6
            Originally posted by jimson
            Потому что mailx (он же bsd mail) никогда не умел и должен уметь энкодить сообщения, так же как и распознавать charset и добавлять соответствующие поля в заголовок указывающие какая кодировка исходного письма и какой encode используется для передачи. По рекомендациям (по rfc 820 или 822? не помню) передаваемые символы должны быть в 7ми битной кодировке, так что никаких "русских букв" там быть не может, все десткопные почтовые агенты кодируют письма, обычно, в base64, а неacsii символы в заголовках (from, subject, etc), обычно, в quote-printable.
            никак нельзя решить данную проблему?

            Comment

            • Jimson
              Senior Member
              • Jan 2008
              • 1327

              #7
              Originally posted by tiss42rus
              никак нельзя решить данную проблему?
              Очевидно использовать дополнительный софт, какой-нибудь mime-tools. Либо добавить к заголовкам указание на 8ми битный энкодинг и указать кодировку (koi8-r, cp-1251, iso-8859-5) и слать с нарушением рекомендаций.

              Comment

              • tiss42rus
                Junior Member
                • Jan 2015
                • 6

                #8
                Originally posted by Jimson
                Очевидно использовать дополнительный софт, какой-нибудь mime-tools. Либо добавить к заголовкам указание на 8ми битный энкодинг и указать кодировку (koi8-r, cp-1251, iso-8859-5) и слать с нарушением рекомендаций.

                Если кому будет полезно решается путем добавление в строку iconv -c -f UTF-8 -t KOI8-R

                то-есть отсылка была echo "русские буквы"| mail -s "email subject" [email protected]
                стала echo "русские буквы" |iconv -c -f UTF-8 -t KOI8-R| mail -s "email subject" [email protected]

                Comment

                • alsta
                  Junior Member
                  • Apr 2012
                  • 2

                  #9
                  Я решил эту проблему использованием почтового агента Heirloom mailx (nail), который корректно поступает с вложением русских букв в сообщение.

                  Comment

                  Working...