Ad Widget

Collapse

Отчеты по почте

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • csf
    Senior Member
    • Nov 2007
    • 154

    #16
    Originally posted by yukra
    Правильно ли что у Вас есть скрин SendGraph (Именно с тАкиМ НапиСаниЕм)?
    Да. Именно так:

    zabbix:/etc/zabbix/externalscripts # ll

    -rwxrwxrwx 1 zabbix users 3775 Nov 11 11:54 SendGraph
    -rwxr-xr-x 1 root root 3780 Nov 11 07:15 SendGraph.act
    -rw-r--r-- 1 sendgraph users 222 Nov 12 14:20 coockfile
    drwxr-xr-x 2 root root 4096 Nov 12 14:12 graph
    -rwxrwxrwx 1 sendgraph users 1429 May 12 2011 snmptrap.sh
    -rwxr-xr-x 1 root users 1429 May 11 2011 snmptrap.sh.org

    Что Вы думаете о таком соображении: мне кажется, что проблема не собственно в скрипте, Zabbix и т.п. Мне кажется, что проблема в отсылающем мэйлере. Он неправильно составляет конверт и неправильно составляет body/part. А если я просто вручную отправляю файл .png штатным мэйлером Mailx (у меня SuSE SLES 11.2) то в "конверте" все корректно: он берет png-файл:Content-Type: image/png
    определяет для него MIME-кодировку base64 (или можно заменить на uuencode) и отсылает.
    По телу письма от SendGraph (большое спасибо за идею посмотреть код письмя со всеми заголовками) видно, что SendGraph в качестве мэйлера использует какой-то "Lite 3.01" и он некорректно отправляет письма с несколькими вложениями.

    1. Вам этот Lite говорит о чем-то ? Где он лежит ?
    2. Можно ли его как-то заменить на стандартный mail моей OS ?

    Comment

    • yukra
      Senior Member
      • Apr 2013
      • 1359

      #17
      [QUOTE=csf;140297]Да. Именно так:

      zabbix:/etc/zabbix/externalscripts # ll

      -rwxrwxrwx 1 zabbix users 3775 Nov 11 11:54 SendGraph
      -rwxr-xr-x 1 root root 3780 Nov 11 07:15 SendGraph.act
      -rw-r--r-- 1 sendgraph users 222 Nov 12 14:20 coockfile
      drwxr-xr-x 2 root root 4096 Nov 12 14:12 graph
      -rwxrwxrwx 1 sendgraph users 1429 May 12 2011 snmptrap.sh
      -rwxr-xr-x 1 root users 1429 May 11 2011 snmptrap.sh.org[/quoteq]
      Из этого я ничего не понял. У Вас в заббиксе есть комплексный экран SendGraph?
      Что Вы думаете о таком соображении: мне кажется, что проблема не собственно в скрипте, Zabbix и т.п. Мне кажется, что проблема в отсылающем мэйлере. Он неправильно составляет конверт и неправильно составляет body/part. А если я просто вручную отправляю файл .png штатным мэйлером Mailx (у меня SuSE SLES 11.2) то в "конверте" все корректно: он берет png-файл:Content-Type: image/png
      определяет для него MIME-кодировку base64 (или можно заменить на uuencode) и отсылает.
      По телу письма от SendGraph (большое спасибо за идею посмотреть код письмя со всеми заголовками) видно, что SendGraph в качестве мэйлера использует какой-то "Lite 3.01" и он некорректно отправляет письма с несколькими вложениями.

      1. Вам этот Lite говорит о чем-то ? Где он лежит ?
      2. Можно ли его как-то заменить на стандартный mail моей OS ?
      1) Это модуль для перла, по идее если бы его не было, то скрипт ругнулся бы на строчку "use MIME::Lite;"
      2) Да, вызвать внешнюю команду конечно можно, но тут проблема в том, что на сколько я понимаю у Вас @massend пустой, а он берется из $screens будет деление строки на части с разделителем ":", который берется из хэша %user_screen который в свою очередь строиться по результатам запроса select sendto, exec_path from media, media_type where media.mediatypeid=media_type.mediatypeid}. Попробуй обвязать все это дебагом

      Comment

      • csf
        Senior Member
        • Nov 2007
        • 154

        #18
        > Из этого я ничего не понял. У Вас в заббиксе есть комплексный экран SendGraph?

        Нет такого ! И не было с самого начала. Я полагал, что Вы спрашиваете или в описании "Media" название SendGraph совпадает с названием скрипта SendGraph в /etc/zabbix/externalscript.

        Создать экран SendGraph ?

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #19
          Originally posted by csf
          > Нет такого ! И не было с самого начала. Я полагал, что Вы спрашиваете или в описании "Media" название SendGraph совпадает с названием скрипта SendGraph в /etc/zabbix/externalscript.

          Создать экран SendGraph ?
          Ну ведь п.2 в исходном топике:
          2)Create new Media Types with this fileds - " Script Summary Report - Script name: "Screen1:Screen2:Screen3" "
          Explanations: Fileds "Script Name" - we use as container for needed Screen's.

          Откуда по Вашему скрипт узнает какие именно скрины Вас интересуют.
          Создайте скрин SendGraph, поместите на него какой либо график и проверяйте.

          Зы в английской версии заббикса комплексный экран называется "screen", отсюда калька на русский "скрин"

          Comment

          • csf
            Senior Member
            • Nov 2007
            • 154

            #20
            Originally posted by yukra
            Ну ведь п.2 в исходном топике:
            2)create new media types with this fileds - " script summary report - script name: "screen1:screen2:screen3" "
            explanations: Fileds "script name" - we use as container for needed screen's.

            Откуда по Вашему скрипт узнает какие именно скрины Вас интересуют.
            Создайте скрин sendgraph, поместите на него какой либо график и проверяйте.

            Зы в английской версии заббикса комплексный экран называется "screen", отсюда калька на русский "скрин"
            Я этим пунктом не озаботился потому что полагал, что он (скрипт) доставит мне все графики, со всех экранов... Ураган. Сейчас проверю !

            Comment

            • csf
              Senior Member
              • Nov 2007
              • 154

              #21
              Работает !

              Спасибо Вам большое за помощь !

              Comment

              • aydar
                Senior Member
                • Dec 2014
                • 176

                #22
                Ребята, а как отправлять в отчете конкретный график?
                раз в месяц например

                Comment

                • MetrS
                  Member
                  • Mar 2016
                  • 38

                  #23
                  Осмелюсь поднять данную тему.
                  Zabbix 3.0.
                  Использую скрипт, переделал под себя - графики льются в /grapf, письмо отсылается пустое. png просматриваются, не битые.
                  Экран создан (графики) http://prntscr.com/ambv20
                  В Media создан http://prntscr.com/ambv90 http://prntscr.com/ambvdh
                  В консоли скрипт исполняется без ошибок http://prntscr.com/ambvpq
                  Открывал print - вывод пуст http://prntscr.com/ambvum

                  Прошу помощи

                  Comment

                  • MetrS
                    Member
                    • Mar 2016
                    • 38

                    #24
                    Originally posted by aydar
                    Ребята, а как отправлять в отчете конкретный график?
                    раз в месяц например
                    При запуске данного скрипта, сразу отсылается письмо (или письма).
                    Воспользуйтесь калькулятором cron и занесите запуск данного скрипта crontab.
                    Конкретный график вы подготавливаете заранее в комплексных экранах в заббиксе (мониторинг-экраны). Далее, название экрана (ов) указываете в Медиа, и скрипт его оттуда дергает.

                    Comment

                    • narmo
                      Junior Member
                      • Nov 2016
                      • 20

                      #25
                      живые есть?

                      Никто так и не решил?

                      Comment

                      • csf
                        Senior Member
                        • Nov 2007
                        • 154

                        #26
                        Originally posted by narmo
                        Никто так и не решил?
                        Вы же видели выше, что у меня получилось 4 года назад. Что конкретно у Вас не получается ? Тоже скрипт отрабатывает нормально но через Zabbix приходит пустое письмо без вложения ?
                        Если мое предположение верно, то у меня главная ошибка была в следующем: неправильная настойка в режиме "Media" (Способы оповещений).
                        Правильное в итоге:
                        Имя: SendGraph
                        Тип: скрипт
                        Имя скрипта:Точное название графика из закладка "Комплексные экраны", а если хотите, чтобы в письме приходило несколько экранов оттуда - отделяете их двоеточием.

                        Comment

                        • raimond
                          Junior Member
                          • Mar 2017
                          • 8

                          #27
                          Originally posted by csf
                          Вы же видели выше, что у меня получилось 4 года назад. Что конкретно у Вас не получается ? Тоже скрипт отрабатывает нормально но через Zabbix приходит пустое письмо без вложения ?
                          Если мое предположение верно, то у меня главная ошибка была в следующем: неправильная настойка в режиме "Media" (Способы оповещений).
                          Правильное в итоге:
                          Имя: SendGraph
                          Тип: скрипт
                          Имя скрипта:Точное название графика из закладка "Комплексные экраны", а если хотите, чтобы в письме приходило несколько экранов оттуда - отделяете их двоеточием.
                          У меня тоже возникли проблемы при попытке использовать этот механизм.
                          В скрипте изменил:
                          Code:
                                  my $strcomm  = `curl  -c $cook -b $cook -d "name=$login&password=$pass&enter&autologin=1&enter=Sign in" 192.168.1.10/zabbix/index.php 2>/dev/null`;
                                  $strcomm  = `curl  -c $cook -b $cook -F  "graphid=$ids" -F "period=$period" -F "stime=$stime" -F "width=$width" -F "height=$height" 192.168.1.10/zabbix/chart2.php > $p 2>/dev/null`;
                          При таком раскладе, создаются графики png. Но при их просмотре, отображается:
                          No permissions to referred object or it does not exist!

                          И после каждого запуска скрипта, пользователь "sendgraph" блокируется в web-интерфейсе (Вход в систему=Заблокирован).

                          Если же, изменить chart2.php на chart.php, т.е.:
                          Code:
                                  $strcomm  = `curl  -c $cook -b $cook -F  "graphid=$ids" -F "period=$period" -F "stime=$stime" -F "width=$width" -F "height=$height" 192.168.1.10/zabbix/chart.php > $p 2>/dev/null`;
                          то при открытии изображений, там надпись:
                          Zabbix has received an incorrect request.
                          Field "itemids" is mandatory


                          При каждом запуске, удалял папку graph для чистоты эксперимента.
                          Скрипт называется "SendGraph.pl". В Zabbix способ оповещения:
                          Имя: SendGraph
                          Тип: Скрипт
                          Имя скрипта: SendGraph

                          В "Мониторинг - Комплексные экраны" создал экран "SendGraph", на котором разместил один график.
                          Версия Zabbix 3.2.4. У меня кстати и сами сообщения не отправляются. Но это видимо из-за настроек почты в скрипте (такая же проблема была и при настройке уведомлений через web-интерфейс, решилось нужными настройками).
                          В "Имя скрипта" нужно указывать название экрана или же название графика?

                          Comment

                          • csf
                            Senior Member
                            • Nov 2007
                            • 154

                            #28
                            Originally posted by raimond


                            В "Имя скрипта" нужно указывать название экрана или же название графика?
                            1. В поле "Имя скрипта" из "Администрирование"->"Способы оповещения" Вы указываете имя "Комплексного экрана" на котором Вы расположили свой график, в Вашем случае это SendGraph.

                            В моем случае это несколько комплексных экранов разделенных ":"
                            Uptime_Hosting:Uptime_ASP-Rechner:Uptime_Firewalls

                            2. Проверьте в скрипте my $login = и
                            my $pass = или они сопадают с параметрами пользователя, который Вы завели в Zabbix-е (!!!) через Web-интерфейс.
                            3. При экспериментировании каждый раз, на всякий случай, удаляйте подкаталог "graph", куда попадают все png-файлы.

                            Comment

                            • raimond
                              Junior Member
                              • Mar 2017
                              • 8

                              #29
                              Originally posted by csf
                              1. В поле "Имя скрипта" из "Администрирование"->"Способы оповещения" Вы указываете имя "Комплексного экрана" на котором Вы расположили свой график, в Вашем случае это SendGraph.

                              В моем случае это несколько комплексных экранов разделенных ":"
                              Uptime_Hosting:Uptime_ASP-Rechner:Uptime_Firewalls

                              2. Проверьте в скрипте my $login = и
                              my $pass = или они сопадают с параметрами пользователя, который Вы завели в Zabbix-е (!!!) через Web-интерфейс.
                              3. При экспериментировании каждый раз, на всякий случай, удаляйте подкаталог "graph", куда попадают все png-файлы.
                              2. Да, они совпадают. Т.е. пользователя создал в Zabbix. И я успешно попадаю в консоль, используя эти данные (логин/пароль). Прописал неверный пароль в скрипте и ситуация такая же.

                              Кстати, я использую Centos 7 и PostgreSQL. Поэтому мне пришлось доустановить perl-MIME-Lite и perl-DBD-Pg и изменить строку:
                              my $dbh = DBI->connect($dsn, $db_user_name, $db_password);

                              на:
                              my $dbh = DBI->connect('dbi:Pg:dbname=zabbix_db;host=localhost', 'пользователь_бд','пароль__пользователя');

                              Видимо, нужно мне разбираться с самим скриптом.

                              Comment

                              • raimond
                                Junior Member
                                • Mar 2017
                                • 8

                                #30
                                Originally posted by raimond
                                Видимо, нужно мне разбираться с самим скриптом.
                                Ошибку "Zabbix has received an incorrect request. Field "itemids" is mandatory" исправил добавлением параметра "itemids=$ids", т.е. строка выглядит следующим образом:
                                Code:
                                $strcomm  = `curl  -c $cook -b $cook -F  "graphid=$ids" [B]-F  "itemids=$ids"[/B] -F "period=$period" -F "stime=$stime" -F "width=$width" -F "height=$height" 192.168.1.10/zabbix/chart2.php > $p 2>/dev/null`;
                                Кстати, использовать нужно "chart2.php", т.к. если использовать "chart.php", то график строится пустой (без данных и названия).

                                Следующая ошибка:
                                No permissions to referred object or it does not exist

                                возникала из-за проблем с аутентификацией, в пароле был спец. символ. Поэтому кстати, логин и блокировался в web. Изменил пароль и проверил его работоспособность. Графики успешно создаются.

                                Теперь проблема с отправкой писем с gmail.com на mail.ru. В своё время долго подбирал нужные параметры, для настройки оповещений из web. А вот с mail.ru на yandex.ru почта успешно приходит.

                                Comment

                                Working...