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 не будет опубликован. Обязательные поля помечены *

*