- Зміст статті Є у мене одна слабкість - я люблю різні системи моніторингу. Тобто для мене ідеальна...
- loggly
- PaperTrail
- Logentries
- NewRelic
- logstash
- Fluentd
Зміст статті
Є у мене одна слабкість - я люблю різні системи моніторингу. Тобто для мене ідеальна ситуація, коли можна подивитися стан кожного компонента системи в будь-який момент часу. З реалтайм все більш-менш зрозуміло: можна агрегувати дані і виводити їх на красивий дашборда. Складніші справи з тим, що було в минулому, коли потрібно дізнатися різні події в певний момент і зв'язати їх між собою.
Завдання насправді не така вже тривіальна. По-перше, потрібно агрегувати логи з абсолютно різних систем, які часто не мають нічого спільного між собою. По-друге, потрібно прив'язувати їх до однієї тимчасової шкалою, щоб події можна було між собою корелювати. І по-третє, потрібно ефективно влаштувати зберігання і пошук по цьому величезного масиву даних. Втім, як це зазвичай буває, про складну частини вже подбали до нас. Я пробую кілька різних варіантів і тому зроблю міні-огляд того, з чим уже встиг попрацювати.
Splunk
Про цей сервіс писав в колонці і я, і недавно Олексій Синцов. Взагалі кажучи, це не просто агрегатор логів, а потужна система аналітики з багаторічною історією. Тому завдання зібрати логи і агрегувати їх для подальшої обробки і пошуку - для нього нікчемна справа. Існує більше 400 різних додатків, в тому числі понад ста в області IT Operations Management, які дозволяють збирати інформацію з твоїх серверів і додатків.
loggly
Цей сервіс вже спеціально заточений для аналізу журналів і дозволяє агрегувати будь-які види текстових логів. Ruby, Java, Python, C / C ++, JavaScript, PHP, Apache, Tomcat, MySQL, syslog-ng, rsyslog, nxlog, Snare, роутери та свитчи - неважливо. Безкоштовно можна збирати до 200 Мб в день (що чимало), а найближчий платний тариф починається від 49 доларів. Працює дуже здорово.
windows-loggly
PaperTrail
Відмінний сервіс, який агрегує логи додатків, будь-які текстові журнали, syslog та інше. Що цікаво: з агрегованими даними можна працювати через браузер, командний рядок або API. Пошук здійснюється простими запитами на кшталт «3pm yesterday» (отримати дані з усіх систем о третій годині ночі за вчорашній день). Всі пов'язані події будуть згруповані. Для будь-якої умови можна зробити Алерт, щоб вчасно отримати попередження (змінилися налаштування в конфігах). Для зберігання логів можна використовувати S3. У перший місяць дають 5 Гб бонусом, далі безкоштовно надається тільки 100 Мб на місяць.
papertrail
Logentries
Ще один непоганий сервіс для збору даних, що дозволяє збирати до гігабайта логів в місяць безкоштовно. А можливості все ті ж: потужний пошук, tail в режимі реального часу (виводиться все, що «прилітає» з логів на поточний момент), зберігання даних в AWS, моніторинг PaaS, IaaS і популярних фреймворків, мов. На безкоштовному тарифі можна зберігати дані за сім днів.
logentries
NewRelic
Так, цей сервіс не зовсім для збору логів. Але якщо стоїть питання про моніторинг продуктивності серверів і додатків, то це один з найкращих варіантів. Причому в більшості випадків з ним можна працювати безкоштовно, ніж ми довгий час і користувалися в редакції для моніторингу додатків і статусу серверів.
Мої експерименти з онлайн-сервісами закінчилися, коли даних стало так багато, що за їх агрегацію довелося б платити тризначні суми. Втім, виявилося, що розгорнути подібне рішення можна і самому. Тут два основні варіанти.
logstash
Це відкрита система для збору подій і балок, яка добре себе зарекомендувала в співтоваристві. Розгорнути її, звичайно, нескладно - але це вже й не готовий сервіс з коробки. Тому будь готовий до Багам в скупий документації, глюків модулів і подібного. Але зі своїм завданням logstash справляється: логи збираються, а пошук здійснюється через веб-інтерфейс.
Fluentd
Якщо вибирати standalone-рішення, то Fluentd мені сподобався більше. На відміну від logstash, яка написана на JRuby і тому вимагає JVM (яку я не люблю), вона реалізована на CRuby і критичні по продуктивності ділянки написані на C. Система знову ж відкрита і дозволяє збирати великі потоки логів, використовуючи понад 1500 різних плагінів. Вона добре документована і гранично зрозуміла. Поточний варіант збирача логів у мене розгорнуто саме на Fluentd.
Вперше опубліковано в Хакер # 03/182