ZABBIX Forums  

Go Back   ZABBIX Forums > Zabbix in Your Language > На русском языке

Reply
 
Thread Tools Display Modes
  #1  
Old 01-12-2017, 14:01
kharkov_max kharkov_max is offline
Member
 
Join Date: Mar 2016
Posts: 30
Default Сумма значений за текущий месяц.

Добрый день.

Есть параметр числовой, который всегда увеличивается.
Хочу как то настроить такой подсчет ...

1. Необходимо получать значение за текущий месяц т.е. берем значение на сейчас и от него отнимаем то что было на начало месяца.
2. Хранить историю таких значений по месяцам, можно в виде списка ...

Через какие элементы можно такое закрутить?
Может натолкнете на что то...
Reply With Quote
  #2  
Old 01-12-2017, 14:12
rough-84 rough-84 is offline
Senior Member
 
Join Date: Oct 2014
Posts: 197
Default

Если все время увеличивается то можно просто
Тип элемента данных calculated
максимальное значение за последний месяц- минимальное значение за последний месяц
получим ваше искомое число
Reply With Quote
  #3  
Old 01-12-2017, 14:50
kharkov_max kharkov_max is offline
Member
 
Join Date: Mar 2016
Posts: 30
Default

Quote:
Originally Posted by rough-84 View Post
Если все время увеличивается то можно просто
Тип элемента данных calculated
максимальное значение за последний месяц- минимальное значение за последний месяц
получим ваше искомое число
Собственно так и думал делать через вычисляемое значение.
Не смог найти как определить минимальное и максимальное значение.
Подскажите функцию ...
Reply With Quote
  #4  
Old 01-12-2017, 15:01
rough-84 rough-84 is offline
Senior Member
 
Join Date: Oct 2014
Posts: 197
Default

Попробуйте так

max("host:item",2592000)-
min("host:item",2592000)-

2598000 это месяц в секундах 60*60*24*30
Reply With Quote
  #5  
Old 01-12-2017, 15:06
Kos Kos is offline
Senior Member
 
Join Date: Aug 2015
Location: Riga, Latvia
Posts: 608
Default

Если я правильно понял автора темы, то его интересуют данные не "за месяц назад", а "за текущий месяц", т.е. "с 1-го числа текущего месяца".
Reply With Quote
  #6  
Old 01-12-2017, 15:12
rough-84 rough-84 is offline
Senior Member
 
Join Date: Oct 2014
Posts: 197
Default

Quote:
Originally Posted by kos View Post
Если я правильно понял автора темы, то его интересуют данные не "за месяц назад", а "за текущий месяц", т.е. "с 1-го числа текущего месяца".
Если так, то на ум пришло только создать отдельный элемент данных в который бы в приходили данные 1 числа каждого месяца
Reply With Quote
  #7  
Old 01-12-2017, 15:22
kharkov_max kharkov_max is offline
Member
 
Join Date: Mar 2016
Posts: 30
Default

Quote:
Originally Posted by kos View Post
Если я правильно понял автора темы, то его интересуют данные не "за месяц назад", а "за текущий месяц", т.е. "с 1-го числа текущего месяца".
Да так и есть, нужно снимать только за текущий месяц.
Фактически получаемое значение это расход за месяц...

Quote:
Если так, то на ум пришло только создать отдельный элемент данных в который бы в приходили данные 1 числа каждого месяца
Намек понял, буду ковыряться...

Ps
Уже возник вопрос, как поймать первое значение месяца, новое, отличное от старого?
Если делать отдельный элемент на конкретьное время к примеру на 00:00, то так не подойдет т.к. узел может быть выключенным.

Что посоветуете ?
Reply With Quote
  #8  
Old 01-12-2017, 15:31
rugo rugo is offline
Junior Member
 
Join Date: Apr 2013
Location: Saint-Petersburg
Posts: 24
Default

Quote:
Originally Posted by kharkov_max View Post
Уже возник вопрос, как поймать первое значение месяца?
Что посоветуете ?
Запускаем элемент по расписанию и указываем например
Quote:
md1h9m30
что будет означать получение данных в 9-30 1 числа месяца.
Более подробно про пользовательские интервалы написано на сайте Заббикса https://www.zabbix.com/documentation...stom_intervals
Reply With Quote
  #9  
Old 01-12-2017, 15:34
rough-84 rough-84 is offline
Senior Member
 
Join Date: Oct 2014
Posts: 197
Default

Ага тоже хотел про это написать, ну и тригер на nodata по последнему значению чтобы поймать проблему, на случай если комп может быть как вы написали выключен.
Reply With Quote
  #10  
Old 01-12-2017, 16:42
Kos Kos is offline
Senior Member
 
Join Date: Aug 2015
Location: Riga, Latvia
Posts: 608
Default

В общем, штатными средствами решить Вашу задачу будет проблематично. Разве что писать скрипт с использованием Zabbix API для получения значения "на первое число", вычитанием его из последнего текущего значения и закидыванием результата назад через zabbix_sender.

Как вариант - можно извратиться и (с учётом того, что результат логических операций преобразуется к нулю или единице) написать в формулу вычисляемого элемента данных что-то наподобие следующего:
Code:
(dayofweek("host:item")=1) * delta("host:item",1d) +
(dayofweek("host:item")=2) * delta("host:item",2d) +
(dayofweek("host:item")=3) * delta("host:item",3d) +
(dayofweek("host:item")=4) * delta("host:item",4d) +
...
(dayofweek("host:item")=31) * delta("host:item",31d)
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 09:10.