У меня есть список пользователей в .passwd
и access_log
загружается в Cloudwatch. Мне нужно делать еженедельный отчет, кто из этого списка делал доступ к серверу.
Есть ли способ автоматизировать это вместо того, чтобы вручную проверять журналы для каждого пользователя? Их несколько десятков.
NXLog может использовать CloudWatch API для получения журналов из Amazon Cloudwatch, а также доступен сценарий Python. Вот.
Чтобы автоматизировать такую задачу, у вас есть несколько вариантов.
Пакетная обработка - Загрузите журналы из CloudWatch и затем проанализируйте их, ищу ваших пользователей.
Ты можешь использовать aws logs describe-log-streams
чтобы найти имена потоков журналов, отфильтруйте их по отметке времени, чтобы убедиться, что вы обрабатываете только последние.
Для каждого вызова потока журнала aws logs get-log-events
который предоставит вам фактические сообщения журнала, а затем проанализирует их, например с помощью grep
.
Вместо того, чтобы использовать aws
и grep
вы можете написать небольшой загрузчик / парсер, например. в python
или на другом языке по вашему выбору и используйте один из AWS SDK библиотеки для доступа к журналам.
Онлайн-обработка - собирать и обрабатывать соответствующие записи журнала как только они будут записаны в CloudWatch Logs. Вы можете настроить Шаблон фильтра журналов CloudWatch и накормите соответствие access_log
записи, например к Лямбда-функция который будет отслеживать пользователей, заходящих на ваш сайт. Вы можете сохранить результаты, например, в DynamoDB, по одному объекту для каждого пользователя.
Идти тяжелый вес и использовать Служба ElasticSearch или Graylog или Splunk или что-то подобное служба обработки журналов. Но это, скорее всего, излишек для вашего варианта использования.
Надеюсь, это поможет :)