Как стать автором
Обновить
0
0
Николай Василенко @himmelherz

Пользователь

Отправить сообщение

Система сбора, анализа, уведомлений и визуализации логов на syslog-ng, elasticsearch, kibana, grafana, elasticalert

Время на прочтение34 мин
Количество просмотров123K

image


Что мы получим после этой статьи:


Систему сбора и анализа логов на syslog-ng, elasticsearch в качестве хранилища данных, kibana и grafana в качестве систем визуализации данных, kibana для удобного поиска по логам, elasticalert для отправки уведомлений по событиям. Приготовьтесь, туториал объемный.


Какие логи будем собирать:


  • все системные логи разложенные по индексам в зависимости от их facility(auth,syslog,messages и т.д.);
  • логи nginx — access и error;
  • логи pm2;
  • и др.

Обоснование выбора системы


Почему я выбрал связку с syslog-ng в качестве отправителя, парсера и приемщика логов? Да потому что он очень быстрый, надежный, не требовательный к ресурсам(да да — logstash в качестве агентов на серверах и виртуальных машинах просто убожество в плане пожирания ресурсов и требованием java), с внятным синтаксисом конфигов(вы видели rsyslog? — это тихий ужас), с широкими возможностями — парсинг, фильтрация, большое количество хранилищ данных(postgresql,mysql,elasticsearch,files и т.д.), буферизация(upd не поддерживает буферизацию), сторонние модули и другие фишки.


Требования:


  • Ubuntu 16.04 или debian 8-9;
  • vm для развертывания;
  • Прямые руки.

Приступим или добро пожаловать под кат

Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии36

Erlang. Параметры TCP/IP сокета

Время на прочтение3 мин
Количество просмотров13K
Небольшая шпаргалка по параметрам TCP/IP сокетов в Erlang по-русски. Все взято от сюда:

1) erlang.org/doc/man/gen_tcp.html
2) www.erlang.org/doc/man/inet.html#setopts-2
3) learnyousomeerlang.com/buckets-of-sockets#tcp-and-udp-brotocols
Подглядеть...
Всего голосов 25: ↑24 и ↓1+23
Комментарии0

Быстрые TCP сокеты на Erlang

Время на прочтение10 мин
Количество просмотров12K
Обработка TCP соединений может запросто оказаться узким местом, когда скорость приближается к 10 тыс запросов в секунду: эффективное чтение и запись становится отдельной проблемой, а большая часть вычислительных ядер простаивает.

В этой статье я предлагаю оптимизации, которые позволяют улучшить три составляющие работы с TCP: приём соединений, получение сообщений и ответ на них.

Статья адресована как Erlang программистам, так и всем, кто просто интересуется Erlang. Глубокие знания языка не требуются.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии14

Секционирование PostgreSQL с помощью pg_pathman

Время на прочтение28 мин
Количество просмотров18K


Александр Коротков, Дмитрий Иванов (Postgres Professional)


Ведущий: Тяжелая артиллерия в лице Александра и Дмитрия будет рассказывать про важную фичу Postgres. И не то, чтобы фичу, а проблему, с которой сталкиваются люди, работающие с Postgres – это то, как правильно секционировать или партиционировать, как вам более удобно произносить, таблицы. И Александр с Дмитрием уже довольно длительное время трудятся над расширением, которое позволяет это делать гибко, хорошо, удобно и быстро.

Александр Коротков: Как правильно уже сказали, наш доклад будет посвящен расширению pg_pathman, которое реализует продвинутое секционирование в Postgres. Основную часть доклада будет рассказывать мой коллега Дмитрий Иванов, который сейчас очень активно включился в работу над расширением pg_pathman, а я буду время от времени что-то добавлять.
Всего голосов 26: ↑25 и ↓1+24
Комментарии2

Какие нужны фавиконки

Время на прочтение5 мин
Количество просмотров27K


Расскажите о тонкостях подключения фавиконок, какие способы сейчас актуальны?
Давайте разберёмся
Всего голосов 65: ↑58 и ↓7+51
Комментарии20

Запросы GraphQL без подключения к сети с помощью Redux Offline и Apollo

Время на прочтение6 мин
Количество просмотров8.3K

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


А это… не просто.


Посмотрим, как создать эффективное решение, работающее без подключения к сети, на React и слое данных GraphQL с применением Apollo Client. Статья разбита на две части. На этой неделе разберем оффлайновые запросы. На следующей неделе примемся за мутации.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

HTTP/2 Server Push не так прост, как я думал

Время на прочтение17 мин
Количество просмотров40K


Фото найдено на просторах Википедии


Привет! Меня зовут Макс Матюхин, я работаю PHP-программистом в Badoo. Мы постоянно изучаем различные возможности по ускорению работы нашего приложения и самыми интересными находками, конечно, делимся в нашем блоге на Хабре.


Вторая версия протокола HTTP обещает нам много улучшений, и одной из любопытных особенностей HTTP/2 является поддержка push. Теоретически эта возможность позволяет ускорить загрузку приложения. Недавно Jake Archibald написал большую статью, в которой проанализировал особенности реализации push в различных браузерах, и оказалось, что таких особенностей довольно много.


Мы уже публиковали пост, описывающий базовый функционал HTTP/2 Server Push, а этот будет хорошим дополнением, рассказывающим, как в реальности обстоят дела с поддержкой HTTP/2 Server Push в различных браузерах.

Всего голосов 91: ↑88 и ↓3+85
Комментарии14

Обзор систем мониторинга серверов. Заменяем munin на…

Время на прочтение9 мин
Количество просмотров186K
Очень долго хотел написать статью, но не хватало времени. Нигде (в том числе на Хабре) не нашёл такой простой альтернативы munin, как описанная в этой статье.


Читать дальше →
Всего голосов 79: ↑76 и ↓3+73
Комментарии111

Советы по Postgres для Rails разработчиков

Время на прочтение4 мин
Количество просмотров8.8K

В апреле на RailsConf в Фениксе мы обсудили огромное количество советов по использованию Postgres с Rails, и подумали, что будет полезно их записать и поделиться с более широкой аудиторией. Здесь вы найдете некоторые из них, касающиеся отладки и улучшения производительности базы данных вашего Rails приложения.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

Открываем доступ к видеозаписям HighLoad++ за последние пять лет

Время на прочтение1 мин
Количество просмотров28K
image

Мы выложили в открытый доступ видеозаписи последних пяти лет конференции разработчиков высоконагруженных систем HighLoad++. Смотрите, изучайте, делитесь и подписывайтесь на канал YouTube.

Более терабайта записей и 500 видеороликов! Это всё, под катом только реклама :)

Перейти в канал YouTube!

Читать дальше →
Всего голосов 115: ↑110 и ↓5+105
Комментарии19

Шифрование в EXT4. How It Works?

Время на прочтение12 мин
Количество просмотров24K
image Паранойя не лечится! Но и не преследуется по закону. Поэтому в Linux Kernel 4.1 добавлена поддержка шифрования файловой системы ext4 на уровне отдельных файлов и директорий. Зашифровать можно только пустую директорию. Все файлы, которые будут созданы в такой директории, также будут зашифрованы. Шифруются только имена файлов и содержимое, метаданные не шифруются, inline data (когда данные файла, не превышающие по размеру 60 байт, хранятся в айноде) в файлах не поддерживается. Поскольку расшифровка содержимого файла выполняется непосредственно в памяти, шифрование доступно только в том случае, когда размер кластера совпадает с PAGE_SIZE, т.е. равен 4К.
Читать дальше →
Всего голосов 53: ↑51 и ↓2+49
Комментарии24

Gixy — open source от Яндекса, который сделает конфигурирование Nginx безопасным

Время на прочтение10 мин
Количество просмотров36K
Nginx, однозначно, один из крутейших веб-серверов. Однако, будучи в меру простым, довольно расширяемым и производительным, он требует уважительного отношения к себе. Впрочем, это относится к почти любому ПО, от которого зависит безопасность и работоспособность сервиса. Признаюсь, нам нравится Nginx. В Яндексе он представлен огромным количеством инсталляций с разнообразной конфигурацией: от простых reverse proxy до полноценных приложений. Благодаря такому разнообразию у нас накопился некий опыт его [не]безопасного конфигурирования, которым мы хотим поделиться.



Но обо всем по порядку. Нас давно терзал вопрос безопасного конфигурирования Nginx, ведь он — полноправный кубик веб-приложения, а значит, и его конфигурация требует не меньшего контроля с нашей стороны, чем код самого приложения. В прошлом году нам стало очевидно, что этот процесс требует серьезной автоматизации. Так начался in-house проект Gixy, требования к которому мы обозначили следующим образом:

— быть простым;
— но расширяемым;
— с возможностью удобного встраивания в процессы тестирования;
— неплохо бы уметь резолвить инклюды;
— и работать с переменными;
— и про регулярные выражения не забыть.
Читать дальше →
Всего голосов 112: ↑112 и ↓0+112
Комментарии18

Кластер PostgreSQL высокой надежности на базе Patroni, Haproxy, Keepalived

Время на прочтение25 мин
Количество просмотров129K
Привет, Хабр! Встала передо мной недавно задача: настроить максимально надежный кластер серверов PostgreSQL версии 9.6.

По задумке, хотелось получить кластер, который переживает выпадение любого сервера, или даже нескольких серверов, и умеет автоматически вводить в строй сервера после аварий.

Планируя кластер я проштудировал много статей, как из основной документации к PostgreSQL, так и различных howto, в том числе с Хабра, и пробовал настроить стандартный кластер с RepMgr, эксперементировал с pgpool.

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

В итоге где-то (уже не вспомню точно где) нашел ссылку на прекрасный проект Zalando Patroni, и все заверте…
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии70

OpenSSL, ssl_ciphers и nginx: прокачиваем на 100%

Время на прочтение11 мин
Количество просмотров91K


Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да братья.


Также вы узнаете почему 100% по тестам — не всегда хорошо в реальности.

Читать дальше →
Всего голосов 66: ↑65 и ↓1+64
Комментарии92

Как запустить ClickHouse своими силами и выиграть джекпот

Время на прочтение15 мин
Количество просмотров79K

Мы решили описать простой и проверенный путь для тех, кто хочет внедрить аналитическую СУБД ClickHouse своими силами или просто испробовать ClickHouse на собственных данных. Именно этот путь прошли мы сами в новостном агрегаторе СМИ2 и добились впечатляющих результатов.


Clickhouse-client


В предисловии статьи — небольшой рассказ о наших попытках внедрить Druid и InfluxDB. Почему после успешного запуска ClickHouse мы смогли отказаться от использования InfiniDB и Cassandra.


Всего голосов 59: ↑59 и ↓0+59
Комментарии50

Вызов функций Go из других языков

Время на прочтение9 мин
Количество просмотров23K

image


С версии 1.5 компилятор Go поддерживает несколько режимов сборки, определяемых флагом buildmode. Их ещё называют режимами исполнения Go (Go Execution Modes). С их помощью go tool может компилировать пакеты Go в нескольких форматах, включая архивы и библиотеки общего пользования Go (shared libraries), архивы и библиотеки общего пользования Си, а с версии 1.8 — и динамические плагины Go.


В статье мы рассмотрим компилирование пакетов Go в библиотеки Си. В этом режиме сборки компилятор генерирует стандартный бинарный файл объекта (shared object) (.so), передавая функции Go в качестве API в стиле Си. Мы поговорим о том, как создавать библиотеки Go, которые можно вызывать из C, Python, Ruby, Node и Java.


Весь код доступен на GitHub.

Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии23

Микросервисы: опыт использования в нагруженном проекте

Время на прочтение17 мин
Количество просмотров68K


На конференции HighLoad++ 2016 руководитель разработки «М-Тех» Вадим Мадисон рассказал о росте от системы, для которой сотня микросервисов казалась огромным числом, до нагруженного проекта, где пара тысяч микросервисов — обыденность.

Тема моего доклада — то, как мы запускали в продакшн микросервисы на достаточно нагруженном проекте. Это некий агрегированный опыт, но поскольку я работаю в компании «M-Tех», то давайте я пару слов расскажу о том, кто мы.

Если коротко, то мы занимаемся видеоотдачей — отдаём видео в реальном времени. Мы являемся видеоплатформой для «НТВ-Плюс» и «Матч ТВ». Это 300 тысяч одновременных пользователей, которые прибегают за 5 минут. Это 300 терабайт контента, который мы отдаем в час. Это такая интересная задача. Как это всё обслужить?

Про что сама эта история? Это про то, как мы росли, как проект развивался, как происходило какое-то переосмысление каких-то его частей, какого-то взаимодействия. Так или иначе, это про масштабирование проекта, потому что это всё — ради того, чтобы выдержать ещё больше нагрузки, предоставить клиентам ещё больше функционала и при этом не упасть, не потерять ключевых характеристик. В общем, чтобы клиент остался доволен. Ну и немного про то, какой путь мы прошли. С чего мы начинали.
Читать дальше →
Всего голосов 78: ↑77 и ↓1+76
Комментарии65

«mymehouse» co-working Москва

Время на прочтение1 мин
Количество просмотров1.4K
Итак, свершилось! В Москве открылась студия myme. В связи с началом своей деятельности в столице мы рады предложить активным и креативным фрилансерам сотрудничество!
Уважаемые веб-дизайнеры, дизайнеры интерьера, программисты и прочие креативные личности, вы нам нужны! С нас 180 квадратов творческой атмосферы, располагающейся в одном из самых престижных районов Москвы в пяти минутах ходьбы от м. Кутузовская, рабочее место с возможностью оставлять в офисе необходимые вещи в ценности и сохранности, интернет со скоростью 10 мб/сек, телефон, переговорная, душ, кухня. А так же мягкая зона с плазмой и игровыми приставками для релаксации. Для той же самой релаксации в двух шагах от офиса находится ресторан, фитнес клуб, солярий и скалодром. Так же есть места для парковки машин и скорей всего велостоянка. У нас можно жить, но мы хотим работать, работать с приятными и талантливыми людьми! Мы готовы общаться, делиться идеями, а так же обращаться к вам за помощью в реализации наших проектов!
Открытие офиса в январе.

Цена удовольствия 12 т.р. в месяц или 500 р за одни сутки, для тех, кто готов сотрудничать с нами более длительный период, у нас существует гибкая система скидок!


По вопросам бронирования мест пишите на почту.
Так же в письме напишите ваш вид деятельности.


Интересно бы было узнать насколько актуален сейчас для вас такой офис.

PS: imac в стоимость не входит))

PS2: ко-воркинг закрыт
Всего голосов 106: ↑93 и ↓13+80
Комментарии240

Тюнинг Леопарда

Время на прочтение3 мин
Количество просмотров862
Неважно насколько хорош OS X Leopard, всегда найдутся вещи которые людям не нравятся и они хотели бы их изменить. И чем выше уровень пользователя, тем больше у него запросов и желания изменить что-то на свой вкус. В этой заметке, я попытаюсь рассказать о небольших советах, которые позволят вам улучшить внешний вид Леопарда.
Читать дальше →
Всего голосов 67: ↑61 и ↓6+55
Комментарии70

Google AJAX Search API

Время на прочтение1 мин
Количество просмотров30K
Возможно я идиот, и убейте меня кто-нибудь, но сегодня я совершенно случайно, перерыв бОльшую половину интернета, обнаружил, что у Google есть мощнейший и абсолютно бесплатный API для поиска. Который ну просто мега элементарно интегрировать со своим сайтом.
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".urlencode($query)";
$body = file_get_contents($url);
$json = json_decode($body);
foreach ($json->responseData->results as $resultjson) {
$result_google['urls']= $resultjson->url;
$result_google['contents'] = $resultjson->content;
}

а вот что из этого получилось
Всего голосов 65: ↑59 и ↓6+53
Комментарии71

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность