
Сергей
18.05.2017
06:47:28
А если самому писать, то получится ещё одна либа для разбора csv

Misak
18.05.2017
07:19:29
Здрасте, а кто в заббиксе делал мониторинг мультикаст потоков?
наличие, количество ошибок в стриме и прочее

Google

Timofey
18.05.2017
07:21:38
ого =) а что за ошибки, последовательность прибытия?

Misak
18.05.2017
07:22:47
ну там не только эти бывают
ну в принципе у меня прямо сейчас ничего нет, так что любой совет к месту

Timofey
18.05.2017
07:24:35
вывод из консоли интересно бы поглядеть что конкретно имеется в виду. ну а раз есть вывод то всегда можно будет самому собрать

Misak
18.05.2017
07:28:07
я даже не знаю какой тулзой это все анализировать

Alexander
18.05.2017
07:48:04

Саян
18.05.2017
07:54:08

Ilya
18.05.2017
07:57:28
Какие счётчики?

Саян
18.05.2017
07:58:17
неправильно выразился, меня интересуют минимальный и максимальный показания в графике, т.е. их хочу убрать

Ilya
18.05.2017
07:58:43
Никак, кроме как "открыть исходный код и поправить"

Саян
18.05.2017
07:59:26
жаль... а вот еще тут мелькают фразы типа графанов всяких, не подскажете они для чего? не успел поинтересоваться

Andrey
18.05.2017
08:00:02

Alexander
18.05.2017
08:00:09
Графики рисовать

Google

Саян
18.05.2017
08:00:47
бля красиво


Сергей
18.05.2017
08:03:40
Очень похоже, но не совсем. В CSV нет array params. Но 99% это должно покрыть.
не совсем понял про array params
лучше всего код
-- Функция разбивки csv в таблицу
-- http://lua-users.org/wiki/CsvUtils
function fromCSV (s)
s = s .. ','
local t = {}
local fieldstart = 1
repeat
if string.find(s, '^"', fieldstart) then
local a, c
local i = fieldstart
repeat
a, i, c = string.find(s, '"("?)', i+1)
until c ~= '"'
if not i then error('unmatched "') end
local f = string.sub(s, fieldstart+1, i-1)
table.insert(t, (string.gsub(f, '""', '"')))
fieldstart = string.find(s, ',', i) + 1
else
local nexti = string.find(s, ',', fieldstart)
table.insert(t, string.sub(s, fieldstart, nexti-1))
fieldstart = nexti + 1
end
until fieldstart > string.len(s)
return t
end
это я такое нашел на lua, использую для составления документации при помощи nginx
а это уже на php
function print_item($item){
$name = $item->name;
$key_ = $item->key_;
#$pattern = array("/\\\$1/", "/\\\$2/", "/\\\$3/", "/\\\$4/", "/\\\$5/", "/\\\$6/", "/\\\$7/", "/\\\$9/", "/\\\$10/");
$pattern = array("$1", "$2", "$3", "$4", "$5", "$6", "$7", "$9", "$10");
$replace = new Replacer();
$name = $replace->macros($item->name);
if(strpos($name, "$") !== false){
$lstart = strpos($key_, "[") +1;
$str = substr($key_, $lstart, -1);
$replace = str_getcsv($str);
$name = str_replace($pattern, $replace, $name);
}
return $name;
}


Alexander
18.05.2017
08:05:01
system.cpu.util[,["user,system",iowait],avg1] будет разобран как
{
"column0": "system.cpu.util[",
"column1": "[\"user",
"column2": "system\"",
"column3": "iowait]",
"column4": "avg1]"
}
А Заббикс не так разбирает

Сергей
18.05.2017
08:05:43
вот такие не встречал
даже и не знал что там такие можно делать

Alexander
18.05.2017
08:06:40
Я тоже, просто когда фиксил баг, открыл детальное описание в заббиксе, там есть и такое
https://www.zabbix.com/documentation/3.0/manual/config/items/item/key

Сергей
18.05.2017
08:07:34
надо будет посмотреть
вдруг будет такая запись где полезна
и тоже огребу тогда кучу багов
))

Alexander
18.05.2017
08:08:07
Да, но, честно, я этот array param ни разу не видел
просто сделал уже как положено

Сергей
18.05.2017
08:09:13
рекурсивную фцнкцию надо прям ))

Alexander
18.05.2017
08:09:56
Ну мне надо только в имя подставлять, так что я внутри массива уже не разбираю параметры.
Так что я проверил, как заббикс их в интерфейсе разбирает и сделал несколько тест-кейсов
https://github.com/alexanderzobnin/grafana-zabbix/blob/master/src/datasource-zabbix/specs/utils_specs.js#L65
А сама функция здесть https://github.com/alexanderzobnin/grafana-zabbix/blob/master/src/datasource-zabbix/utils.js#L25

Сергей
18.05.2017
08:15:21
не силен я в js, да и давно такое сам не писал (писал еще в колледже более 15 лет назад)
получается что добрая половина скриптов не соотетствуют спецификации
например тот же скрипт на баше может принимать параметры, которые еще могут быть и массивом
у меня явно 100% не обработают такой ключ

Google

Alexius
18.05.2017
08:54:22
как на легенде в графане вывести имена хостов, а не айтемов?

Alexander
18.05.2017
09:00:56
Если несколько хостов возвращается, то автоматически выводятся еще и имена хостов

Recluse
18.05.2017
09:02:02

Serge
18.05.2017
09:50:43
Добрый день. Кто-нибудь подскажет, какая логика у активных проверок в плане периода опроса? Настраиваю через agent (active) проверку даты создания файла. Если выставляю проверять раз в 2 часа, то потом, выставляя меньший интервал проверки - например, 1 минута, ничего не проверяется.. Во всяком случае, пока агента не рестартанешь, после этого интервал проверок действительно становится 1 минута.. Как я понимаю, агент каждые 2 минуты (по дефолту) бегает за конфигурашкой к серверу, в том числе получает интервалы обновления метрик.. А в моем случае, если я с большего интервала меняю на меньший, то такое ощущение, что у него где-то закеширован старый интервал, и обновления метрик не происходит.. в чем может быть дело? (на нескольких хостах такое поведение наблюдаю)

Ilya
18.05.2017
09:52:29
Выставь обновление каждые 60 сек
Данных

Serge
18.05.2017
09:55:37
я в параметрах метрики и выставляю это обновление.. в 60 сек.. но если там раньше стояло 3600, то ничего и не происходит ни через минуту, ни через 10 (не обновляется значение, хотя по факту оно изменилсь).. пока агент не рестартанешь
Update interval (in sec)

Ilya
18.05.2017
10:00:03
Не то
Есть время получения новых данных с сервера (так у прокси, я не уверен, что это на агенты действует, но по логике – должно)

Serge
18.05.2017
10:06:46
тогда я не совсем понял, где эта настройка.. на стороне сервера, я так думал, это настраивается в метрике.. а на стороне агента - интервалом опроса со стороны агента (как часто он будет за обновлениями бегать к серверу).. получается, еще где-то на стороне сервера?
со стороны агента:
### Option: RefreshActiveChecks
# How often list of active checks is refreshed, in seconds.
#
# Mandatory: no
# Range: 60-3600
# Default:
# RefreshActiveChecks=120

Alseg
18.05.2017
10:08:41
Подскажите пожалуйста как
ssh.run[<unique short description>,<ip>,<port>,<encoding>]
сделать в шаблоне с переменными в виде %IP% и т.д.
ну вроде достаточно дать ему только 1ый аргумент, остальные не давать

Евгений
18.05.2017
10:36:02

Ash
18.05.2017
11:00:42

Alseg
18.05.2017
11:01:51
и порт там указать можно явно
мне не нужно было в скрипт передать порт

Ash
18.05.2017
11:03:02
в смысле встроенноый макрос {HOST:PORT} не работает

Google

Alseg
18.05.2017
11:03:21
это понятно, какой макрос в поле key

Ash
18.05.2017
11:05:06
а так не работает: ssh.run["text",{HOST:IP},22,<encoding>] ?
в кодировку не знаю что писать, не юзаю SSH проверки

Admin
ERROR: S client not available

Ash
18.05.2017
11:05:38
только Внешние проверки активно
по аналогии накидал

Alseg
18.05.2017
11:06:17
ну вроде достаточно дать ему только 1ый аргумент, остальные не давать

Ash
18.05.2017
11:09:14
хм, судя по скриншоту с вики, можно. Пробовали?

Alseg
18.05.2017
11:16:28
я же и пишу сам себе отвечая, что достаточно ему дать только 1ый аргумент
всё работает


Maxim
18.05.2017
11:41:00
Коллеги, а кто ставил у себя Zabbix-Network-Weathermap?
делаю по https://github.com/Prototype-X/Zabbix-Network-Weathermap
при создании карты ругается root@zabbix:/opt/Zabbix-Network-Weathermap# ./weathermap.py -s test3 -z http://192.168.121.9 -l appliance -p zabbix
Traceback (most recent call last):
File "./weathermap.py", line 121, in <module>
main()
File "./weathermap.py", line 118, in main
WeathermapCLI()
File "./weathermap.py", line 55, in init
self._map_scan()
File "./weathermap.py", line 66, in _map_scan
zbx = ZabbixAgent(self.args.zabbix, self.args.login, self.args.pwd)
File "/opt/Zabbix-Network-Weathermap/zabbix.py", line 23, in init
self.zbx_api = ZabbixAPI(url=url, use_authenticate=False, user=login, password=password)
File "/usr/local/lib/python3.4/dist-packages/pyzabbix/api.py", line 156, in init
self._login(user, password)
File "/usr/local/lib/python3.4/dist-packages/pyzabbix/api.py", line 186, in _login
self.auth = self.user.login(user=user, password=password)
File "/usr/local/lib/python3.4/dist-packages/pyzabbix/api.py", line 82, in fn
args or kwargs
File "/usr/local/lib/python3.4/dist-packages/pyzabbix/api.py", line 236, in do_request
res = urlopen(req)
File "/usr/local/lib/python3.4/dist-packages/pyzabbix/api.py", line 107, in inner
res = func(req, context=ctx)
File "/usr/local/lib/python3.4/dist-packages/pyzabbix/api.py", line 118, in urlopen
return urllib2.urlopen(*args, **kwargs)
File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.4/urllib/request.py", line 469, in open
response = meth(req, response)
File "/usr/lib/python3.4/urllib/request.py", line 579, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.4/urllib/request.py", line 507, in error
return self._call_chain(*args)
File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain
result = func(*args)
File "/usr/lib/python3.4/urllib/request.py", line 587, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found


Alexander
18.05.2017
12:01:19
как в заббиксе использовать SNMP v1 (надо замониторить старые Cisco PIX)

Ash
18.05.2017
12:06:27

Alexander
18.05.2017
12:07:19
ага. нашел

Alseg
18.05.2017
12:12:43

Oleg
18.05.2017
12:20:10
есть вопрос, ребят. Есть хост, на нём 20 jmx сокетов. Надо подключить 20 шаблонов, каждый к своему jmx. в каждом шаблоне по 100 айтемов - руками проходить переключать не вариант. Пока все к первому подключаются, хотя я меняю дефолтный вроде
а не

Google

Oleg
18.05.2017
12:22:30
работает
пардон
ништяк!
простите

Alseg
18.05.2017
12:42:20
Для одного из хостов пишет при SSH check
Cannot establish SSH session: Unable to exchange encryption keys
Почитал, пишут что может быть из за долгого рукопожатия
Я уже ручками на заббиксе зашел на него удаленно по ssh, нажал yes для фингерпринта
всё ок, подключился, но заббикс в latest data продолжает утверждать Unable to exchange encryption keys
таким образом коннективити есть, пароли явки проверены, порты проверены, и даже хз куда копнуть
по этому же шаблону остальные хосты отвечают корректно

Евгений
18.05.2017
12:50:03
Подорожник прикладывал?

Alseg
18.05.2017
12:50:35

Евгений
18.05.2017
12:51:02
Если только контора православная

Alseg
18.05.2017
12:54:00
ну кароч сделал фулл клон хоста, старый хост удалил