Zabbix мониторинг логина на Linux server

Автор: | 18 декабря 2021

Даже когда на сервер запрещено логиниться ото всюду, кроме разрешенных ip адресов — все равно может потребоваться мониторить удачные (да и неудачные вдруг) входы на сервер. В принципе даже в шаблоне по умолчанию для Linux серверов есть элемент количества залогиненых пользователей, и можно просто повесить триггер на изменение этого числа. Но мне нужно было получить ip адрес, с которого произошел вход. Вот как я это сделал.

Я настраивал все это на Ubuntu 18/20 , но думаю что на других системах всё примерно похоже. Итак, нас будет интересовать лог файл /var/log/auth.log а в нем строчка :

Dec 18 19:07:17 server sshd[4096267]: Accepted password for user from 168.0.1.42 port 51850 ssh2

Создаем в Zabbix новый элемент. Имя элементу на свой вкус, тип элемента — Zabbix agent (active), ключ элемента будет такой:

log[/var/log/auth.log,"from ([0-9]{1,3}.){3}[0-9]{1,3}",,,,\0]

То есть мы проверяем файл /var/log/auth.log и ищем в нем момент строки, который совпадает с маской 'from IPv4'. Не факт, что это самое правильно написание регулярного выражения и я буду рад, если меня поправят. Но оно работает. Тип информации элемента — log. Параметры обновления и хранения данных элемента — на свой вкус. Сохраняем элемент и добавляем его на нужный сервер.

Идем проверять. Latest data, выбираем нужный сервер, проверяем появились ли данные после логина на сервер. Можно даже посмотреть историю.

Теперь сделаем триггер. Триггер будет срабатывать при появлении новой строки в лог файле, и если в течение 10 минут новых данных не будет — триггер будет закрываться. Имя триггера — New login, выражение триггера такое:

{Template OS Linux:log[/var/log/auth.log,"from ([0-9]{1,3}.){3}[0-9]{1,3}",,,,\0].str (from)}=1 and {Template OS Linux:log[/var/log/auth.log,"from ([0-9]{1,3}.){3}[0-9]{1,3}",,,,\0].nodata (10m)}=0

Так как тут же проверяется на отсутствие данных в течение 10 минут — я не буду делать выражение для события статуса Ok и т.д. То есть в принципе триггер готов. Сохраняем, логинимся и проверяем.

Работает.

Добавить комментарий

Ваш адрес email не будет опубликован.

*