Политика

Политика - это набор свойств индикаторов, которые применяются сразу ко всем индикаторам, использующим эту политику. Каждый индикатор использует одну политику, но одна политика может использоваться многими индикаторами.

Свойства политики

Политика (имя политики) - Можно называть на свое усмотрение, но рекомендуется называть политики по их предназначению (например „SSL Сертификаты“ или „Виртуальные сервера“), а не по параметрам („1 час“).

Период - самое важное свойство политики. Период времени, через который индикатор должен перепроверяться. Указываться в виде целого числа (в секундах) или с суффиксом (например: 1h, 30min).

Patience (Терпение) - (Только для пассивных индикаторов) Время (по прошествии периода), в течение которого okerr все еще ждет апдейта индикатора до того как переключит его в состояние ERR. Например, если период 1h и patience 20min, то индикатор будет переключен в состояние ERR через 1 час 20 минут после последнего обновления.

Секрет - Секрет (пароль). (Только для пассивных индикаторов). Требуется для обновления индикатора. Вы можете использовать разные секреты в разных политиках. Это позволяет использовать клиентское ПО okerr на недоверенных машинах без того чтобы хранить более важный секрет на них.

Расписание перепроверок - (Только для активных индикаторов). Набор задержек (можно пустой) между повторными проверками. Например, если расписание «20 sec 5 min» и проверка неудачная, то повторная будет предпринята через 20 секунд. Если и она неудачная, то будет предпринята следующая еще через 5 минут. И если же и она не будет удачной, тогда индикатор переключится в состояние ERR.

Расписание перепроверок (восстановление) - (Только для активных индикаторов). Аналогично для расписания повторных попыток, но для индикаторов, которые переходят из состояния ERR в OK.

Режим сокращения алертов - используется чтобы предотвратить частые оповещения при «моргании», когда индикатор быстро меняет состояние и пользователь не нуждается в оповещениях. Например, ночью на короткое время останавливается база данных чтобы сделать бэкап (в это время состояние ERR допустимо и ожидаемо, не требуется оповещать) и «починится» самостоятельно. Оповещение о смене статуса будет задержано на указанное время. Если за это время произойдет обратная смена статуса, то оба оповещения не будут отправлены. Если же указанное время пройдет, и индикатор не восстановит свое состояние - то сообщение будет отправлено.

Формат: <время задержки по умолчанию> (<интервал времени> <время задержки>)* Значение для примера: 0s 00:30-02:00 5m 14:00-14:30 30m

Это означает, что время задержки по умолчанию у нас 0 секунд (оповещения отправляются сразу). Но в интервал 00:30-02:00 - задерживаются на 5 минут, а в интервал 14:00-14:30 - на 30 минут.

Пример: Если индикатор переключится в ERR в 01:00, оповещение будет создано, но будет задержано на 5 минут (до 01:05). Если в 01:04 индикатор переключится обратно в OK, оба оповещения о смене статуса будут сокращены (удалены). В журнале индикатора будут записи о смене статусов, но не будут отправлены оповещения ни на почту, ни в телеграм. Если же до окончания времени задержки (01:05) индикатор не вернется в исходное состояние, то задержанное оповещение будет отправлено.

URL для отчетов о смене статуса - URL, на который okerr будет отправлять данные о смене статуса индикаторов (в формате JSON, через HTTP POST)

Пример клиентского скрипта:

<?php
$filename = '/tmp/okerr-post.log';
$fh = fopen($filename, 'a');
fwrite($fh, date("Y/m/d H:i:s") . " ");
fwrite($fh, $_POST['data']);
fwrite($fh,"\n");
fclose($fh);
?>

Пример отчета от этого скрипта:

2020/02/19 10:02:25 {"type": "status_change", "textid": "okrrdm", "name": "echo:empty", "old": "ERR", "new": "OK", "details": "0 files checked", "unixtime": 1582106544, "time": "2020-02-19 10:02:24 UTC (+0000)"}
2020/02/19 10:04:10 {"type": "status_change", "textid": "okrrdm", "name": "charlie:maxfilesz", "old": "ERR", "new": "OK", "details": "/var/log/btmp 61.9M", "unixtime": 1582106649, "time": "2020-02-19 10:04:09 UTC (+0000)"}

Автосоздание - Если включено, то при обработке обновления для несуществующего индикатора, он создастся (если при обновлении указана политики и совпадает секрет)

Принимать обновления через HTTP - если включено, принимаются обновления через HTTP (обычные обновления от okerrupdate, okerrmod, okerrclient). Если выключено - то они игнорируются.

Принимать обновления через SMTP - Если включено, то обновления через SMTP принимаются.

Допустимые клиентские подсети

Каждая политика имеет список подсетей в формате a.b.c.d/mask (например, 1.2.3.0/24), от которых okerr будет принимать обновления. 0.0.0.0/0 соответствует всем IPv4 адресам.

Политика по-умолчанию

Политика с именем „Default“ особая

  • нельзя удалить политику Default

  • если политика неизвестна (например, когда отправляется обновление для несуществующего индикатора), то используется политика Default.