Збір логів з rsyslog, іменами файлів в тегах, багаторядковими повідомленнями і відмовостійкість

image
зображення з сайту oxygen-icons.org
Завдання
Передавати лог-файли на центральний сервер. Коли сервер не втрачати повідомлення, а накопичувати і передавати при його появу в мережі. Коректно передавати багаторядкові повідомлення.
Додатково:
  • не потрібно зміна конфігурації сервера при появі нових лог-файлів, досить перенастроювання клієнта.
  • можна передавати вміст всіх лог-файлів з відповідним шаблоном ім'ям, причому на сервері їх вміст буде зберігатися роздільно у файли з таким же ім'ям.
Умови: в інфраструктурі використовуються тільки Linux-сервера.
Читати далі →

$mol: reactive micromodular ui-framework

Скільки потрібно часу, щоб просто вивести на екран великий список, використовуючи сучасні фреймворки?





Список на 2000 рядків ReactJS AngularJS Raw HTML SAPUI5 $mol Поява списку 170 ms 420 ms 260 ms 1200 ms 50 ms Оновлення всіх його даних 75 ms 75 ms 260 ms 1200 ms 10 ms
Напишемо нехитра додаток — особистий список завдань. Які у нього будуть характеристики?






ToDoMVC ReactJS AngularJS PolymerJS VanillaJS $mol Розмір ( html + php + css + templates ) * gzip 322 KB 326 KB 56 KB 20 KB 23 KB Час завантаження 1.4 s 1.5 s 1.0 s 1.7 s 0.7 s Час створення і видалення 100 задач 1.3 s 1.7 s 1.4 s 1.6 s 0.5 s
Невелика головоломка: перед вами синхронний код, який завантажує і обробляє вміст 4 файлів, але з сервера вони вантажаться паралельно. Як таке може бути?
Синхронна паралельна завантаження ресурсів
А тепер прошу за мною в кролячу нору, настав час дивовижних історій...

Читати далі →

Порівняння бібліотек логування



У мережі величезна кількість майданчиків формату Q&A де задаються питання з розряду:

  • Запропонуйте С++ логгер? (C++ logging framework suggestions)
  • Який найбільш ефективний потоко-безпечний С++ логгер? (What is the most efficient thread-safe C++ logger)
  • Бібліотека логування для ігор (Logging library for c games)
  • Асинхронний потоко-безпечний С++ логгер? (Asynchronous thread-safe logging in C++)
Люди діляться своїм досвідом і знаннями, але формат таких майданчиків дозволяє лише показати особисті уподобання відповідає. Наприклад, одним з найбільш продуктивних логгерів найчастіше називають Pantheios, який навіть по тестам виробника витрачає більше 100 секунд на запис 1M рядків лода, на сучасному залозі це близько 30 секунд, швидко це?

У цій статті я порівняю найбільш відомі і заслужені логгер останніх років і кілька відносно молодих логгерів за більш ніж 25 критеріями.

Читати далі →

Пишемо свій канал-бот для Telegram як у Хабра на Python

Нещодавно до мене звернувся один з проханням написати бота, імпортуючої новини з RSS-каналу на сайті в Telegram-канал. Величезним плюсом даного способу оповіщення є push-повідомлення, які приходять кожному підписаним користувачеві на його пристрій. Вже давно хотілося зайнятися чимось подібним. Недовго думаючи, в якості зразка я вибрав канал Хабра telegram.me/habr_ru. В якості мови програмування був обраний Python.
Читати далі →

Використання Log4php в Magento-додатках

Magento без сумніву є видатною системою для побудови e-commerce додатків. Принципи, закладені в її архітектуру, дозволили не тільки зайняти перше місце рейтингу в своєму класі web-додатків і утримувати його багато років, але, що більш важливо, сформувати навколо себе еко-систему розробників, що створюють для основного функціоналу розширення, що задовольняють самим екзотичним вимогам користувачів. Але ось чого мені дуже дуже не вистачало в Magento при першому підході до снаряду», так це системи логування рівня Log4php. Тому перше розширення, яке було зроблено для Magento — це «обгортка» для Log4php. Під катом опис того, як ми використовуємо цю «обгортку» в наших Magento-проектах.

Читати далі →

Ще один логгер для SAP

Кожен програміст у своєму житті повинен хоча б раз написати свій власний логгер.
Народний вислів
Сьогодні мені хотілося б розповісти, як використовувати журнал додатків в своїх розробках, а ще запропонувати спільноті черговий велосипед, покликаний зробити життя трохи комфортніше.

Отже, Application Log, також відомий як
SLG0
та
SLG1

Читати далі →

Боротьба з надмірною логгірованіем в Openstack

  Зміст: Несамовита швидкість росту auth.log на хостах з neutron-plugin-openvswitch-agent. Аналіз причин, метод усунення. Трохи про роботу sudo, PAM і його сесії.
 
 
 
Про що піде мова? Openstack — платформа для побудови хмар. Neutron — назва його підсистеми відповідає за мережу, модною хіпстерской вебдванольний , cчитался досконалішою і функціональною, ніж перша спроба під назвою nova-networking. openvswitch-plugin — це плагін до neutron, який реалізує його функціональність за допомогою Open vSwitch — програмного комутатора, що дозволяє робити розумні штуки, начебто GRE-тунелів, бондинга і міррорінга портів, накладення правил на порт всередині віртуального комутатора в стилі iptables і т.д.
 
neutron-openvswitch-plugin-agent — одна з компонент цього плагіна, що працює на всіх хостах, які мають хоч якесь реальне ставлення до передачі мережевого трафіку віртуалок. Іншими словами, це все compute-вузли (там, де працюють виртуалки), networking-вузли (які роблять «інтернет» для віртуалок). Зі списку випадають тільки сервера API та інші службові сервера. З урахуванням, що більша частина хмари складається з compute + networking, можна, злегка огрубляя, говорити, що цей neutron-openvswitch-plugin-agent встановлений на всіх хостах. Logstash — система централізованої збірки логів, Elasticsearch — база даних для роботи з цими логами.
 
Для своєчасної реакції на проблеми ПО, все логи всіх додатків повинні збиратися і аналізуватися системою моніторингу. Докладніше про це у нас вже було написано . Однак, навіть хорошого може бути занадто багато. Швидко виявилося, що більша частина зібраного з хостів — безглузді повідомлення наступного вигляду:
 
Читати далі →

Backend без проблем. Чудо чи майбутнє?

  Всім привіт!
 
 Друзі, не мені вам розповідати, та й самі ви знаєте про те, як робиться backend для серверних / клієнт-серверних додатків. У нашому ідеальному світі все починається з проектування архітектури, потім вибираємо майданчик, потім прикидаємо потрібну кількість машин, як віртуальних, так і немає. Потім відбувається сам процес підняття архітектури для розробки / тестування. Все готово? Ну поїхали писати код, робити перші Комміт, оновлювати код на сервері з репозиторію. Відкрили консоль / браузер перевірили і поїхало. Поки все просто, а що далі?
Читати далі →