Нашёл на github простой скрипт, который делает одну вещь — следит за конкретным лог файлом или набором файлов на предмет появлен…

Нашёл на github простой скрипт, который делает одну вещь — следит за конкретным лог файлом или набором файлов на предмет появления там заданных строк. Как только их видит, отправляет уведомление в Telegram.

https://github.com/dobanov/mon_log_and_send_keywords_to_telegram

Я проверил версию на python. Работает очень просто. Копируем репу:

# git clone https://github.com/dobanov/mon_log_and_send_keywords_to_telegram
# cd mon_log_and_send_keywords_to_telegram

Устанавливаем необходимые пакеты:

# apt install python3-pip python3-watchdog

Запускаем скрипт без параметров:

# python3 tg_mon.py

Он ругнётся, что не переданы параметры и нет файла конфигурации. Создаст пустой ~/.config/tg_log.ini. Заполняем его:

filename=/var/log/auth.log
keyword=Accepted password,session opened
n=100
bot_id=5731668668:AAFxcwvp8XjvepZzDMIAN87l1D_MuiI1Ve9
chat_id=210856265
debug=true

В этом примере я указал две строки из файла auth.log, куда записывается вся информация об SSH сессиях. В данном случае в Telegram прилетят две строки:

2024-12-04T18:35:23.679324+03:00 debian12-vm sshd[4282]: Accepted password for root from 10.8.2.2 port 9669 ssh2
2024-12-04T18:35:23.680422+03:00 debian12-vm sshd[4282]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)

То есть полная информация о подключении — IP адрес и пользователь.

Запускаем скрипт:

# python3 tg_mon.py

Открываем новую SSH сессию и наблюдаем уведомление в телеге. В данном случае обе строки не нужны, сделал так для примера.

Всё очень просто и быстро. Код скрипта можете сами посмотреть, он небольшой. В репе лежит простенький шаблон для создания systemd службы, чтобы запускать скрипт в фоне.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#script #logs

https://t.me/srv_admin | Авторская информация о системном администрировании

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

You might like

© 2024 DIGITNOTES - WordPress Theme by WPEnjoy