Ad Widget

Collapse

Email сообщения каждый день в определенное вр&

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Strategist
    Member
    • Sep 2013
    • 54

    #1

    Email сообщения каждый день в определенное вр&

    Здравствуйте, прошу помочь с реализацией функционала: требуется отправлять какжый день по будням ну или вообще каждый (не суть) в 9 утра например, сообщение содержащее значения items (например размеры свободного места по дискам на одном хосте)

    как впихнуть несколько item где-то я уже встречал, а вот как сделать триггер срабатывающий каждый день в определенное время пока не понимаю, кто знает как реализовать желательно без извращений помогите пожалуйста.
  • ableev
    Senior Member
    Zabbix Certified Specialist
    • Oct 2012
    • 276

    #2
    А что есть извращение?
    Я бы сделал селект из базы заббикса, положил это в скрипт и поставил в крон на 9 утра.

    Comment

    • filipp.sudanov
      Senior Member
      Zabbix Certified Specialist
      • May 2014
      • 137

      #3
      У триггера в условиях, к сожалению, задать диапазон времени нельзя. Но можно задать у действия.

      Можно сделать так - добавить какой-нибудь элемент данных с интервалом обновления раз в час, скажем zabbix[boottime]. Сделать триггер, который будет срабатывать каждый раз при обновлении элемента - например {Zabbix server:zabbix[boottime].last()}<>-1, поставить у него галочку "Многократная генерация событий ПРОБЛЕМА". По этому триггеру создать действие, у которого задать интервал действия, например 8:00-8:59.

      Т.к. момент обновления элемента данных не фиксирован, то письмо будет приходить в любой момет в течении часа. Ну и минус в том, что в событиях все время будет болтаться этот постоянно срабатывающий триггер.

      Чуток улучшить дело можно, если сделать элемент данных типа траппер, и прописать в cron запуск zabbix_send, который будет посылать какое-то значение этому элементу. Тогда можно сделать триггер, который срабатывает один раз в сутки и через минуту возвращается в ОК.

      Comment

      • ableev
        Senior Member
        Zabbix Certified Specialist
        • Oct 2012
        • 276

        #4
        Originally posted by filipp.sudanov
        У триггера в условиях, к сожалению, задать диапазон времени нельзя.
        Да ладно? Не путайте человека, в триггере можно задать диапазон времени, https://www.zabbix.com/documentation...gers/functions самая последняя функция, time.

        Comment

        • filipp.sudanov
          Senior Member
          Zabbix Certified Specialist
          • May 2014
          • 137

          #5
          Да, все верно, я вчера не вкурил как этой функцией пользоваться. Оказывается, все просто: https://www.zabbix.com/documentation...sion#example_9

          Таким образом в триггере пишем, например,
          {Zabbix server:zabbix[boottime].time(0)}>090000 and {Zabbix server:zabbix[boottime].time(0)}<090500 - берем любой часто обновляющийся элемент данных. Многократную генерация событий ПРОБЛЕМА не ставим. И триггер благополучно срабатывает раз в сутки.

          Ну и еще может пригодится dayofweek.

          Comment

          • Strategist
            Member
            • Sep 2013
            • 54

            #6
            Спасибо, кажется получилось, trigger сделал следующим образом:
            {Server.loc:vfs.fs.size[C:,free].time(0)}>073000&{Server.loc:vfs.fs.size[C:,total].time(0)}>073000&{Server.loc:vfs.fs.size[D:,free].time(0)}>073000&{Server.loc:vfs.fs.size[D:,total].time(0)}<073100&{Server.loc:vfs.fs.size[E:,free].time(0)}<073100&{Server.loc:vfs.fs.size[E:,total].time(0)}<073100

            а action:
            Свободно на {HOST.NAME1}:

            1. {ITEM.NAME1} {ITEM.VALUE1} из {ITEM.VALUE2}
            2. {ITEM.NAME3} {ITEM.VALUE3} из {ITEM.VALUE4}
            3. {ITEM.NAME5} {ITEM.VALUE5} из {ITEM.VALUE6}

            Все отрабатывает, еще если у кого-нибудь есть идеи как оптимизировать
            отпишитесь пожалуйста

            Comment

            • yukra
              Senior Member
              • Apr 2013
              • 1359

              #7
              Originally posted by Strategist
              Все отрабатывает, еще если у кого-нибудь есть идеи как оптимизировать
              отпишитесь пожалуйста
              Как уже говорилось выше: селектить из БД скриптом и отправлять. Или графиком фигачить еще можно.

              Comment

              • Strategist
                Member
                • Sep 2013
                • 54

                #8
                это понятно, просто самое лучшее решение - решение которое выполняет поставленную задачу затрагивая наименьшее число компонентов (считаю что можно принять за аксиому), чтобы перенести решение со скриптом в случа к примеру падения сервера, нужно переносить кроме базы еще скрипты и перенастраивать крон;
                поэтому сейчас меня интересует можно ли как-нибудь более красиво переписать триггер (чтобы исправлять время начала и конца срабатывания не 3 раза, а 1 например) и сделать его универсальным (например чтобы работало для любого количества дисков и триггер можно было вешать не непосредственно на каждый хост, а на шаблон)

                Comment

                • aklim007
                  Junior Member
                  • Jul 2014
                  • 5

                  #9
                  Originally posted by Strategist
                  это понятно, просто самое лучшее решение - решение которое выполняет поставленную задачу затрагивая наименьшее число компонентов (считаю что можно принять за аксиому), чтобы перенести решение со скриптом в случа к примеру падения сервера, нужно переносить кроме базы еще скрипты и перенастраивать крон;
                  поэтому сейчас меня интересует можно ли как-нибудь более красиво переписать триггер (чтобы исправлять время начала и конца срабатывания не 3 раза, а 1 например) и сделать его универсальным (например чтобы работало для любого количества дисков и триггер можно было вешать не непосредственно на каждый хост, а на шаблон)
                  так лучше будет:
                  {Server.loc:vfs.fs.size[C:,free].time(0)}>073000&{Server.loc:vfs.fs.size[C:,total].time(0)}#0&{Server.loc:vfs.fs.size[D:,free].time(0)}#0&{Server.loc:vfs.fs.size[D:,total].time(0)}#0&{Server.loc:vfs.fs.size[E:,free].time(0)}#0&{Server.loc:vfs.fs.size[E:,total].time(0)}#0

                  если конечно не смущает, что триггер будет активен с 7:30 до 235959, если смущает достаточно будет еще только одного условия:
                  {Server.loc:vfs.fs.size[C:,free].time(0)}>073000&{Server.loc:vfs.fs.size[C:,total].time(0)}<073100&{Server.loc:vfs.fs.size[D:,free].time(0)}#0&{Server.loc:vfs.fs.size[D:,total].time(0)}#0&{Server.loc:vfs.fs.size[E:,free].time(0)}#0&{Server.loc:vfs.fs.size[E:,total].time(0)}#0
                  Last edited by aklim007; 18-07-2014, 12:03.

                  Comment

                  Working...