Добрый день сообщество.
Прошу прощения если вопрос не новый и решение уже не раз обсуждалось, но я к сожалению его не нашел и буду очень благодарен если мне помогут его найти.
Итак, есть Zabbix сервер 4.0.13 и некоторое множество линукс устройств которые генерируют лог файл который в свою очередь мониторится элементом данных заббикс "Search_LOG"
Имя = Search_LOG
Ключ = log["/var/log/logfile.log",Search_String,"UTF-8",100,skip,0]
Интервал обновления = 5 мин
Поиск строки и тригер повешенный на этот элемент данных работает.
Теперь задача. Необходимо иметь возможность задавать период и смотреть какое количество вхождений в лог было за сутки или за несколько часов или например за прошлые сутки по одному устройству или по группе или по всем устройствам. Т.е. например суммировать количество срабатываний по 5-ти устройствам за прошлый день. (сутки)
Задача бьется на 2
1. Получение количественных данных по каждому устройству.
2. Обработка и визуализация отчета.
1.1. Я попробовал сделать вычисляемый элемент данных в том же шаблоне что и элемент данных "Search_LOG".
Имя = Calc_Search_LOG
Тип = Вычисляемый
Ключ = string.finded.calc
Интервал обновления = 1 мин
Формула = count(log["/var/log/logfile.log",Search_String,"UTF-8",100,skip,0],60) = подразумевалось что результатом будет количество строк за последние 60 секунд. Почему то это не сработало. (если кто то поправит меня буду признателен, сам я не разобрался почему это не сработало.)
1.2. Ок. есть обходной костыль с log.count сделал элемент данных
Имя = Count_Search_LOG
Ключ = log.count[/var/log/logfile.log,(Search_String),"UTF-8",100,skip,0]
Интервал обновления = 1 мин
В результате имеем последовательность цифр в единицу интервала обновления. Т.е. если в 1 минуту было 2 срабатывания в логе = 2 если ни одного то = 0.
Т.е. с первой задачей худо-бедно справились. Теперь нужно сделать подсчет и визуализацию.
2.1 Сделал новый шаблон. Создал пустой узел сети. Повесил на него этот шаблон. В шаблоне создал элемент данных
Имя = GRP_SUM
Ключ = grpsum["GRP_5_UNITS","log.count[/var/log/logfile.log,(Search_String),"UTF-8",100,skip,0]",sum,1d]
Период обновления = 1м
В результате имеем число равное сумме срабатываний по указанной группе устройств за последние 24 часа. Вроде бы все как нужно, но есть большое но. Эта цифра постоянно изменяется т.к. ключ " 1d " постоянно смещается относительно текущего часа. т.е. если сейчас 15-00 то это будет с 15-00 сейчас по 15-00 вчера, и соответственно если сейчас 9-00 утра то и элемент данных посчитает все с 9 вчера до 9 сейчас, а хотелось бы все же видеть фиксированную цифру именно за вчера за промежуток с 8 утра по 23 часа вечера. и так же за сегодня с 8 утра по текущее время.
Вопрос. Возможно ли сделать такую аналитику на базе Заббикса? Как лучше ее реализовать? Посоветуйте что то, сам отчаялся искать.
Прошу прощения если вопрос не новый и решение уже не раз обсуждалось, но я к сожалению его не нашел и буду очень благодарен если мне помогут его найти.
Итак, есть Zabbix сервер 4.0.13 и некоторое множество линукс устройств которые генерируют лог файл который в свою очередь мониторится элементом данных заббикс "Search_LOG"
Имя = Search_LOG
Ключ = log["/var/log/logfile.log",Search_String,"UTF-8",100,skip,0]
Интервал обновления = 5 мин
Поиск строки и тригер повешенный на этот элемент данных работает.
Теперь задача. Необходимо иметь возможность задавать период и смотреть какое количество вхождений в лог было за сутки или за несколько часов или например за прошлые сутки по одному устройству или по группе или по всем устройствам. Т.е. например суммировать количество срабатываний по 5-ти устройствам за прошлый день. (сутки)
Задача бьется на 2
1. Получение количественных данных по каждому устройству.
2. Обработка и визуализация отчета.
1.1. Я попробовал сделать вычисляемый элемент данных в том же шаблоне что и элемент данных "Search_LOG".
Имя = Calc_Search_LOG
Тип = Вычисляемый
Ключ = string.finded.calc
Интервал обновления = 1 мин
Формула = count(log["/var/log/logfile.log",Search_String,"UTF-8",100,skip,0],60) = подразумевалось что результатом будет количество строк за последние 60 секунд. Почему то это не сработало. (если кто то поправит меня буду признателен, сам я не разобрался почему это не сработало.)
1.2. Ок. есть обходной костыль с log.count сделал элемент данных
Имя = Count_Search_LOG
Ключ = log.count[/var/log/logfile.log,(Search_String),"UTF-8",100,skip,0]
Интервал обновления = 1 мин
В результате имеем последовательность цифр в единицу интервала обновления. Т.е. если в 1 минуту было 2 срабатывания в логе = 2 если ни одного то = 0.
Т.е. с первой задачей худо-бедно справились. Теперь нужно сделать подсчет и визуализацию.
2.1 Сделал новый шаблон. Создал пустой узел сети. Повесил на него этот шаблон. В шаблоне создал элемент данных
Имя = GRP_SUM
Ключ = grpsum["GRP_5_UNITS","log.count[/var/log/logfile.log,(Search_String),"UTF-8",100,skip,0]",sum,1d]
Период обновления = 1м
В результате имеем число равное сумме срабатываний по указанной группе устройств за последние 24 часа. Вроде бы все как нужно, но есть большое но. Эта цифра постоянно изменяется т.к. ключ " 1d " постоянно смещается относительно текущего часа. т.е. если сейчас 15-00 то это будет с 15-00 сейчас по 15-00 вчера, и соответственно если сейчас 9-00 утра то и элемент данных посчитает все с 9 вчера до 9 сейчас, а хотелось бы все же видеть фиксированную цифру именно за вчера за промежуток с 8 утра по 23 часа вечера. и так же за сегодня с 8 утра по текущее время.
Вопрос. Возможно ли сделать такую аналитику на базе Заббикса? Как лучше ее реализовать? Посоветуйте что то, сам отчаялся искать.
Comment