Как я могу заставить свою систему отправить мне электронное письмо, когда возникнет критическая проблема, основываясь на выводе команды?

Я хотел бы, чтобы в моей системе Linux был сервер сценариев / системного журнала, чтобы он сначала удаленно подключался или входил в мою другую систему, а затем выполнял одну команду (например, netstat -an), и если система находила их что-либо с помощью " syn_sent "это должно генерировать немедленное электронное письмо или смс.

Как это настроить?

0
задан 21 February 2014 в 01:54

2 ответа

UNIX уже поддерживает (довольно стандартный) протоколирование системного журнала, которое позволяет регистрировать сообщения ядра и приложений и даже пересылать сообщения на другие сетевые хосты.

Вы можете использовать cronjob для периодического выполнения чего-то вроде:

netstat -nntulpa | grep SYN_SENT | logger

Это запишет вывод netstat в локальные файлы журнала.

Для получения журналов на центральном «логхосте» все, что вам нужно, - это одна строка в конфигурации syslog. В зависимости от вашего предпочтительного демона syslog, это выглядит следующим образом:

*.* @192.168.5.1

На принимающей стороне вы можете делать всякие причудливые вещи (даже отправку писем), при условии, что вы выбрали полнофункциональную реализацию syslog, такие как syslog-ng или rsyslog.

Ваш вопрос слишком широкий, вы также можете использовать решение для мониторинга, такое как Icinga, и пользовательский плагин, который выполняет ту же команду (за исключением части регистратора). Системный журнал проще в настройке и поддерживается "из коробки" большинством приложений. Я надеюсь, что мой ответ поможет вам в системном журнале вашего вопроса.

0
ответ дан 21 February 2014 в 01:54

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

Это помогло бы разбить этот вопрос на несколько частей, это много вопросов в одном вопросе.

Для опроса это можно сделать, запустив скрипт через cronjob, который устанавливает соединение и выполняет команду, чтобы увидеть, происходит ли событие. Теперь этот скрипт может отправить письмо по электронной почте. При необходимости сценарий может создать собственный журнал или отправить сообщение журнала в системный журнал.

Возможные вопросы или googles:

how to execute a script via a cronjob
how to setup the remote connection from script (security?)
how to detect your event
how to send out an email from script
how to do additional logging.

Чтобы напрямую реагировать на быстрые события, лучше настроить другую систему для отправки сообщения журнала и регистрации активности.

Некоторые брандмауэры могут выполнять регистрацию на syn_sent, возможно, даже отправили журнал на сервер системного журнала, или вам нужна отдельная программа для этого. На стороне сервера вы затем получаете сообщение в своем syslog-daemon, которое можно настроить на выполнение скрипта, который может при необходимости отправить электронное письмо.

Возможные вопросы к другой машине (только для askubuntu, когда это машина с Ubuntu):

which firewall software
how to configure the firewall to log the event
which program to send to remote syslog

Возможные вопросы на сервере:

how to configure syslog-daemon to run a script on incoming events
how to send out an email from script
0
ответ дан 21 February 2014 в 01:54

Другие вопросы по тегам:

Похожие вопросы: