8 облачных анализаторов логов для оценки рабочей среды
Увеличение количества устройств, повышение квалификационных требований, оптимизация процесса сбора данных необходимы для любого вида бизнеса. Анализ логов может дать вам реальное представление о том, что происходит в вашей информационной среде. Вот некоторые примеры, функционирующие в реальном времени:
- планирование производительности
- раннее обнаружение проблемы
- актуальная отчетность
- управление доступностью
Если у вас несколько мегабайт лог-файлов, тогда их можно просмотреть вручную, но когда вы работаете в среднем и корпоративном бизнесе, где объем логов исчисляется гигабайтами, тогда ручной анализ превращается в кошмар.
Если вы ищете решение для мониторинга и анализа логов ваших веб-приложений, включая инфраструктуру, вы можете рассмотреть следующие средства для работы с логами. Большинство из них имеют слегка урезанную бесплатную версию, в которой вы можете попробовать поработать.
Список анализаторов логов:
Loggly
Loggly одно из самых популярных решений для управления логами, подходит для анализа данных практически из любого источника, включая следующие:
- веб-приложения — Apache, Nginx, PHP, Node.js, .NET, Java, JavaScript
- операционные системы – Linux, Windows
С помощью Loggly вы можете собирать данные (логи) для анализа и создавать содержательные информационные панели для мониторинга необходимых показателей. Разумеется, вы можете осуществлять поиск в логах из интерфейса Loggly.
Loggly обладает мощной поисковой системой, в которой вы можете настраивать и устанавливать фильтры для всего текста, одного поля и булевских значений. Вы можете также привязать электронную почту, PageDuty, Slack, HipChat и т.д., чтобы получать оповещения.
SumoLogic
Получите информационную аналитику в режиме реального времени с помощью SumoLogic для мониторинга, анализа, устранения проблем и защиты бизнес приложений и инфраструктуры.
У SumoLogic есть агент-сборщик/облачный сборщик, который необходимо установить на ваш сервер для передачи логов в SumoLogic. Вы можете преобразовывать любые типы логов составляя наглядную картину происходящего, обновляющуюся в реальном времени, для мониторинга и оповещения о достижении заданных границ.
SumoLogic имеет несколько заранее настроенных приложений, основанных на наиболее распространенных способах применения для ускорения работающих задач и изучения проблем.
Примеры приложений для:
- mongoDB – отслеживание общего состояния, оптимизация запросов, мониторинг безопасности;
- AWS Lambda – проактивный мониторинг, обзор затрат, углубленное изучение;
- AWS – определение проблем производительности, активный контроль безопасности, расширенная аналитика;
- Salesforce – улучшение адаптации для пользователей, аудиторские проверки, сравнение данных;
- Trend Micro – анализ уязвимости, история событий, улучшение визуализации атак;
- Github – визуализация командной производительности, создание базовых показателей использования;
- Docker — расширенная аналитика, устранение проблем;
- Linux — устранение неполадок и оптимизация ОС, оповещения о доступе/проверке и событиях безопасности, отслеживание показателей производительности;
- Nginx — обзор, локация посетителей, время отклика, выявление узких мест в производительности;
- Apache – взаимодействие с посетителями, оптимизация производительности, визуализация посетителей;
- IIS — комплексная информация, статистика трафика, поиск медленных страниц;
- MySQL — общее состояние, ключевые ошибки, мониторинг производительности запросов.
В бесплатной версии вы получите 500 мегабайт в день с 7-дневным хранением данных с любым исходным типом собираемых данных.
Splunk
Splunk Cloud доступен в 10 регионах AWS по всему миру для сбора и индексирования любого типа информации. Splunk — это быстрый и простой способ анализа и визуализации данных, создаваемых на физических, облачных или виртуальных устройствах.
С помощью Splunk вы можете отслеживать и визуализировать данные и настраивать пороговые показатели для оповещений. Я не видел бесплатной версии, но у них есть пробная версия, позволяющая анализировать и визуализировать данные объемом 5 ГБ в течение 15 дней.
Papertrail
Papertrail может собирать данные из syslog, text, Apache, MySQL, приложений Heroku, журнала событий Windows, маршрутизаторов, брандмауэров, RubyOnRails и многого другого.
Вы можете выполнять поиск в режиме реального времени с помощью браузера, командной строки или API и получать оповещения по электронной почте или Slack.
Logz.io
Logz.io предоставляет размещение ELK как услугу. ELK (Elastic Search, Logstash, Kibana) — одна из самых популярных платформ для анализа с открытым исходным кодом. Если вы ищете гибкую платформу для обработки логов, то Logz.io будет вам полезен.
Logz.io может индексировать данные почти всех современных технологий и предоставлять вам подробный анализ с визуализацией данных и оповещениями.
Некоторые поддерживаемые технологии:
- Apache HTTP/Tomcat
- Nginx
- Hadoop
- Heroku
- Node.js
- mongoDB
- postgreSQL
- Windows
- Linux
- AWS
Бесплатная версия предлагает три дня хранения с 3 ГБ данных в день.
Timber
Отслеживание в режиме реального времени, современная система фильтрации, быстрый поиск, а также возможность интеграции Timber с вашим приложением или платформой.
Библиотеки доступны для Node, Ruby и Elixir и поддерживают многие платформы, включая следующие:
- Logstash
- Zeit (Now)
- AWS Lambda
- Docker
- Linux
- Heroku
- Kubernetes
Вы можете начать с бесплатной версии и опробовать эту платформу.
Logentries
Отправьте любые данные в Logentries для немедленного поиска и визуализации данных. Вы можете следить за логами в пользовательском интерфейсе Logentries и немедленно получать оповещения о необходимых значениях.
Оповещения могут быть переданы в Slack, Hipchat, Pagerduty или при помощи вебхуков. Logentries предоставляет REST API для запроса ваших логов для визуализации.
В бесплатной версии вы можете отправить данные объемом до 5 ГБ, а срок хранения составляет семь дней.
Logsene
Logsene от Sematext — это ваш облачный управляемый ELK Stack для управления и анализа логов. Вы можете отправлять логи через зашифрованные каналы из любого источника, включая Syslog.
Он работает на AWS и поддерживает SOC, SSAE, FISMA, DIACAP, HIPPA и др.
Попробуйте демо-версию, чтобы понять принцип работы.
Я надеюсь, что эти облачные анализаторы журналов помогут вам искать, анализировать и визуализировать свои данные и облегчат ИТ-аналитику.
Вертим логи как хотим ― анализ журналов в системах Windows
Пора поговорить про удобную работу с логами, тем более что в Windows есть масса неочевидных инструментов для этого. Например, Log Parser, который порой просто незаменим.
В статье не будет про серьезные вещи вроде Splunk и ELK (Elasticsearch + Logstash + Kibana). Сфокусируемся на простом и бесплатном.
Журналы и командная строка
До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:
Она позволяла получить в файле fail.txt все ошибки обмена. Но если было нужно что-то большее, вроде получения информации о предшествующей ошибке, то приходилось создавать монструозные скрипты с циклами for или использовать сторонние утилиты. По счастью, с появлением PowerShell эти проблемы ушли в прошлое.
Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:
Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:
Смотрим за ходом обновления Windows.
Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:
Смотрим, кто пытается пролезть на наш дедик.
При необходимости посмотреть в журнале строки перед и после нужной, можно использовать параметр Context. Например, для вывода трех строк после и трех строк перед ошибкой можно использовать команду:
Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:
Журналы системы ведутся в формате .evtx, и для работы с ними существуют отдельные командлеты. Для работы с классическими журналами («Приложение», «Система», и т.д.) используется Get-Eventlog. Этот командлет удобен, но не позволяет работать с остальными журналами приложений и служб. Для работы с любыми журналами, включая классические, существует более универсальный вариант ― Get-WinEvent. Остановимся на нем подробнее.
Для получения списка доступных системных журналов можно выполнить следующую команду:
Вывод доступных журналов и информации о них.
Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:
Последние записи в журнале System.
Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.
Для примера получим все события из журнала System с кодом события 1 и 6013.
В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:
- 0 ― всегда записывать;
- 1 ― критический;
- 2 ― ошибка;
- 3 ― предупреждение;
- 4 ― информация;
- 5 ― подробный (Verbose).
Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится. Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:
Ошибки и предупреждения журнала System.
Аналогичным образом можно собирать таблицу, фильтруя непосредственно по тексту события и по времени.
Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:
PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.
Работаем с журналами посредством запросов SQL
Утилита Log Parser появилась на свет в начале «нулевых» и с тех пор успела обзавестись официальной графической оболочкой. Тем не менее актуальности своей она не потеряла и до сих пор остается для меня одним из самых любимых инструментов для анализа логов. Загрузить утилиту можно в Центре Загрузок Microsoft, графический интерфейс к ней ― в галерее Technet. О графическом интерфейсе чуть позже, начнем с самой утилиты.
О возможностях Log Parser уже рассказывалось в материале «LogParser — привычный взгляд на непривычные вещи», поэтому я начну с конкретных примеров.
Для начала разберемся с текстовыми файлами ― например, получим список подключений по RDP, заблокированных нашим фаерволом. Для получения такой информации вполне подойдет следующий SQL-запрос:
Посмотрим на результат:
Смотрим журнал Windows Firewall.
Разумеется, с полученной таблицей можно делать все что угодно ― сортировать, группировать. Насколько хватит фантазии и знания SQL.
Log Parser также прекрасно работает с множеством других источников. Например, посмотрим откуда пользователи подключались к нашему серверу по RDP.
Работать будем с журналом TerminalServices-LocalSessionManager\Operational.
Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx в %temp%\test.evtx.
Данные будем получать таким запросом:
Смотрим, кто и когда подключался к нашему серверу терминалов.
Особенно удобно использовать Log Parser для работы с большим количеством файлов журналов ― например, в IIS или Exchange. Благодаря возможностям SQL можно получать самую разную аналитическую информацию, вплоть до статистики версий IOS и Android, которые подключаются к вашему серверу.
В качестве примера посмотрим статистику количества писем по дням таким запросом:
Если в системе установлены Office Web Components, загрузить которые можно в Центре загрузки Microsoft, то на выходе можно получить красивую диаграмму.
Выполняем запрос и открываем получившуюся картинку…
Любуемся результатом.
Следует отметить, что после установки Log Parser в системе регистрируется COM-компонент MSUtil.LogQuery. Он позволяет делать запросы к движку утилиты не только через вызов LogParser.exe, но и при помощи любого другого привычного языка. В качестве примера приведу простой скрипт PowerShell, который выведет 20 наиболее объемных файлов на диске С.
Ознакомиться с документацией о работе компонента можно в материале Log Parser COM API Overview на портале SystemManager.ru.
Благодаря этой возможности для облегчения работы существует несколько утилит, представляющих из себя графическую оболочку для Log Parser. Платные рассматривать не буду, а вот бесплатную Log Parser Studio покажу.
Интерфейс Log Parser Studio.
Основной особенностью здесь является библиотека, которая позволяет держать все запросы в одном месте, без россыпи по папкам. Также сходу представлено множество готовых примеров, которые помогут разобраться с запросами.
Вторая особенность ― возможность экспорта запроса в скрипт PowerShell.
В качестве примера посмотрим, как будет работать выборка ящиков, отправляющих больше всего писем:
Выборка наиболее активных ящиков.
При этом можно выбрать куда больше типов журналов. Например, в «чистом» Log Parser существуют ограничения по типам входных данных, и отдельного типа для Exchange нет ― нужно самостоятельно вводить описания полей и пропуск заголовков. В Log Parser Studio нужные форматы уже готовы к использованию.
Помимо Log Parser, с логами можно работать и при помощи возможностей MS Excel, которые упоминались в материале «Excel вместо PowerShell». Но максимального удобства можно достичь, подготавливая первичный материал при помощи Log Parser с последующей обработкой его через Power Query в Excel.
Приходилось ли вам использовать какие-либо инструменты для перелопачивания логов? Поделитесь в комментариях.