При построении микросервисной архитектуры часто возникает потребность анализировать логи из нескольких источников (баз, сервисов и т. д.). В этой статье я бы хотел поделиться решением к которому в итоге пришел.
Пользователь
Управление конфигурациями: Puppet vs. Chef vs. Ansible
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/129/e4b/a32/129e4ba3279ea3e6e98c40ee325310fe.png)
Управление конфигурациями позволяет автоматизировать и оптимизировать эти процессы, снижая риски человеческих ошибок и обеспечивая более высокую эффективность и безопасность систем.
В управлениях конфигурациями выделяются три крупных игрока: Puppet, Chef и Ansible. Все они предлагают мощные возможности, но каждый со своим уникальным подходом и философией.
Обзор: Puppet, Chef, Ansible, Salt
Ведущие инструменты для управления конфигурацией по разному подходят к автоматизации серверов
От переводчика: в связи с грядущим внедрением одной из подобных описанным в статье систем, приходится изучать доселе неведомые продукты. Захотелось перевести, поскольку подобных обзорных статей на русском языке не нашлось (не исключаю, что плохо искал), и, надеюсь, кому-то и пригодится. За возможные ошибки и неточности перевода просьба ногами не бить.
Быстрое развитие виртуализации вкупе с увеличением мощности серверов, соответствующих промышленным стандартам, а также доступность «облачных» вычислений привели к значительному росту числа нуждающихся в управлении серверов, как внутри, так и вне организации. И если когда-то мы делали это при помощи стоек с физическими серверам в центре обработки данных этажом ниже, то теперь мы должны управлять гораздо большим количеством серверов, которые могут быть распределены по всему земному шару.
В этот момент средства управления конфигурациями и вступают в игру. Во многих случаях, мы управляем группами одинаковых серверов, на которых запущены одинаковые приложения и сервисы. Они размещаются на системах виртуализации внутри организации, или же запускаются как «облачные» и гостевые в удаленных ЦОД. В некоторых случаях, мы можем говорить о большом количестве оборудования, которое существует только для поддержки очень больших приложений или об оборудовании, обслуживающем мириады небольших сервисов. В любом случае, возможность «взмахнуть волшебной палочкой» и заставить их всех выполнить волю системного администратора не может быть обесценена. Это единственный путь управлять огромными и растущими инфраструктурами.
Puppet, Chef, Ansible и Salt были задуманы чтобы упростить настройку и обслуживание десятков, сотен и джае тысяч серверов. Это не значит, что маленькие компании не получат выгоды от этих инструментов, так как автоматизация обычно делает жизнь проще в инфраструктуре любого размера.
Я пристально взглянул на каждый из этих четырех инструментов, исследовал их дизайн и функциональность, и убежден, что несмотря на то, что некоторые оценены выше, чем другие, для каждого есть свое место, в зависимости от целей внедрения. Здесь я подвожу итоги моих находок.
WAL-G: бэкапы и восстановление СУБД PostgreSQL
WAL-G – это инструмент, написанный на Go для резервного копирования и восстановления PostgreSQL баз данных (а с недавнего времени и MySQL/MariaDB, MongoDB и FoundationDB). Он поддерживает работу с хранилищами Amazon S3 (и аналогами, например, Yandex Object Storage), а также Google Cloud Storage, Azure Storage, Swift Object Storage и просто с файловой системой. Вся настройка сводится к простым шагам, но из-за того что статьи о нём разрозненны по интернету – нет полного how-to мануала, который бы включал все шаги от и до (на Хабре есть несколько постов, но многие моменты там упущены).
![postgresql backup](https://habrastorage.org/webt/9i/pq/ut/9ipqut4x24_-0192l8skbzkri6o.jpeg)
Инструкция: как расширить файловую систему в Linux. Часть 1
![image](https://habrastorage.org/webt/tw/rk/jf/twrkjfndllssgck9ebixkwplho8.jpeg)
Чаще всего задача расширить файловую систему возникает при работе с облачной инфраструктурой. Виртуализация позволяет экономить на дисковом пространстве и выделять его столько, сколько необходимо в конкретный момент. Но простого расширения ресурсов недостаточно, об изменениях необходимо сообщить операционной системе. Сегодня ведущий архитектор #CloudMTS Дмитрий Фисенко в формате пошагового туториала расскажет, как это сделать.
Материал будет интересен начинающим системным администраторам, а также разработчикам, которые хотят ближе познакомиться с файловыми системами.
Многоярусный бэкап PostgreSQL с помощью Barman и синхронного переноса журналов транзакций
В Яндекс.Деньгах хранится масса важной для комфортной работы пользователя информации. Настройки профилей и подписки на штрафы тоже нужно бэкапить, чем и занимается у нас связка из Barman Backup & Recovery for PostgreSQL и pg_receivexlog.
В статье расскажу о том, почему архитектура стала такой, какой стала, а также расскажу, как реализовать подобный сценарий для вашей базы PostgreSQL.
Ansible + Grafana Loki: Настраиваем отправку уведомлений в чат после логина на сервер по SSH
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/347/045/8e1/3470458e18cddad2849f8ec3fa57907c.png)
Не задумывались ли вы когда-нибудь над тем, чтобы знать о каждом входе на ваши сервера? Меня охватила такая же паранойя: а вдруг, когда я сплю, на мой сервер заходит домовой и творит там ужасы? Хотя логин на наши сервера и запрещен по паролю, а SSH-ключи есть только у меня, в любом случае это вызывает большие опасения.
В этой статье мы развёрнем через Terraform несколько серверов в Yandex.Cloud, а затем при помощи Ansible настроим необходимый софт на каждом сервере. У нас будет основной сервер c Loki (система агрегирования логов) и Grafana (инструмент для визуализации данных), на серверах, которые мы хотим отслеживать, будет установлен Promtail (агент для сбора и отправки логов). Мы разберёмся с тем, как отслеживать входы на сервер, а затем в удобном формате отправлять об этом уведомления в чат с помощью вышеуказанных сервисов.
Как работает сеть в контейнерах: Docker Bridge с нуля
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/1b1/ae9/52d/1b1ae952d24f1cba030fd48b477d5728.png)
В этой статье мы собираемся разобраться со следующими вопросами:
* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?
* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?
* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?
* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?
* Как реализовать публикацию портов, подобную Docker?
Создаём виртуальную сеть, как это делает Docker
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/a34/b0f/bb9/a34b0fbb98416d541e27de2e0df6cdc3.png)
Как известно, Docker умеет создавать виртуальные сети для безопасного и удобного сетевого взаимодействия внутри контейнеров. В этой статье мы рассмотрим, как именно он это делает на примере базовых манипуляций с сетью в рамках одного хоста с операционной системой Linux.
Docker и сети
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/00e/ee1/c9a/00eee1c9ac59bc6fccf28094eeb0866b.png)
Сейчас без преувеличения можно сказать, что контейнеризация прочно вошла в нашу жизнь. Контейнеры используются в различных программных продуктах, начиная от микросервисов и заканчивая решениями ИБ, такими как песочницы. Однако, контейнеры не были бы столь удобным инструментом построения распределенной архитектуры, если бы они не могли взаимодействовать между собой, а также обмениваться данными с внешними сетевыми ресурсами. В этой статье мы подробно рассмотрим механизмы, позволяющие контейнерам работать с сетями.
Правильные, но (не)простые бэкапы. Как настроить резервное копирование в Kubernetes?
![](https://habrastorage.org/webt/kt/nm/g2/ktnmg2ammmmpir5yaf59b1rqk4c.png)
Разработчикам и системным администраторам важно обеспечивать надежность и доступность данных в приложениях Kubernetes. Несмотря на высокую степень автоматизации и управления контейнерами, всегда остаются риски сбоев или человеческих ошибок — поэтому необходимо заранее задуматься о резервном копировании.
Меня зовут Филипп, я системный администратор в отделе Data- и ML-продуктов Selectel. В этой статье постараюсь раскрыть, какие есть решения для резервного копирования в Kubernetes, и на простом примере покажу, как с ними работать. Подробности под катом.
Отказоустойчивый кластер с балансировкой нагрузки с помощью keepalived
![](https://habrastorage.org/webt/ny/0g/jj/ny0gjjl6jblj-ybks4dl5-is5ry.png)
Сегодня я расскажу о том, как быстро собрать отказоустойчивый кластер с балансировкой нагрузки с помощью keepalived на примере DNS-серверов.
Сети Docker изнутри: связь между контейнерами в Docker Swarm и Overlay-сети
В предыдущей статье я рассказал, как Docker использует виртуальные интерфейсы Linux и bridge-интерфейсы, чтобы установить связь между контейнерами по bridge-сетям. В этот раз я расскажу, как Docker использует технологию vxlan, чтобы создавать overlay-сети, которые используются в swarm-кластерах, а также где можно посмотреть и проинспектировать эту конфигурацию. Также я расскажу, как различные типы сетей решают разные задачи связи для контейнеров, которые запущены в swarm-кластерах.
Я предполагаю, что читатели уже знают, как разворачивать swarm-кластеры и запускать сервисы в Docker Swarm. Также в конце статьи я приведу несколько ссылок на полезные ресурсы, с помощью которых можно будет изучить предмет в деталях и вникнуть в контекст обсуждаемых здесь тем. Опять же, буду ждать ваших мнений в комментариях.
Сети Docker изнутри: как Docker использует iptables и интерфейсы Linux
Я познакомился с Docker довольно давно и, как и большинство его пользователей, был мгновенно очарован его мощью и простотой использования. Простота является основным столпом, на котором основывается Docker, чья сила кроется в легких CLI-командах. Когда я изучал Docker, я захотел выяснить, что происходит у него в бэкграунде, как вообще все происходит, особенно что касается работы с сетью (для меня это одна из самых интересных областей).
Я нашел много разной документации о том, как создавать контейнерные сети и управлять ими, но в отношении того, как именно они работают, материалов намного меньше. Docker широко использует Linux iptables и bridge-интерфейсы для создания контейнерных сетей, и в этой статье я хочу подробно рассмотреть именно этот аспект. Информацию я почерпнул, в основном, из комментариев на github-е, разных презентаций, ну и из моего собственного опыта. В конце статьи можно найти список полезных ресурсов.
Я использовал Docker версии 1.12.3 для примеров в этой статье. Я не ставил своей целью дать исчерпывающее описание Docker-сетей или написать полное введение в эту тему. Я надеюсь, что этот материал будет полезен для пользователей, и я буду рад, если вы в комментариях оставите обратную связь, укажете на ошибки или скажете, чего недостает.
Docker Swarm для самых маленьких
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/a5f/936/16e/a5f93616ea21e679dbdcee28627ff020.png)
Данная статья посвящена настройке и работе с Docker Swarm.
Swarm это стандартный оркестратор для docker контейнеров, доступный из «коробки», если у вас установлен сам docker.
Что нам потребуется для освоения:
Репликация в PostgreSQL: Write-Ahead Logging (WAL) и Logical Replication
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/d70/3aa/769/d703aa769e6788c7c89e2d8db634ed4a.png)
Репликация PostgreSQL с опережающей записью (WAL) — ключевая концепция в высоконагруженных архитектурах, поскольку она позволяет создавать высокодоступные и отказоустойчивые системы баз данных.
Всё /var/lib/docker пожрал … docker
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/233/5a4/9f4/2335a49f479a723394e9e66624d0632f.png)
Небольшая юмористическая заметка на тему того, что делать, если докер всё пожрал всё место на диске, от для человека, который каждый день работает с докером не шарит за докер.
Заметку написала моя коллега, орфография и пунктуация по возможности сохранены. В какой-то момент ей надоело вспоминать или гуглить как чистить мусор, который оставляет докер, его билды, образы и вольюмы, и она свела всё в одну заметку.
Как мне кажется, получилось довольно смешно. Всё написанное в статье выдумка, любые совпадения с реальным миром случайны, если вы вводите в консоль sudo
или его аналог - вы делаете это на свой страх и риск. Слова, замененные на другие для соблюдения правил Хабра, выделил курсивом, но думаю всё поймут, что было в оригинале написано.
Анализ безопасности Wi-Fi: атаки на WPA2-Personal / Enterprise и методология взлома WPA3
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/617/296/a98/617296a9868ef5111a15332e86f853ce.jpeg)
Подробное исследование методологии взлома протоколов WPA2-Personal / Enterprise и WPA3: какие атаки и уязвимости существуют, и какой инструментарий применяется для их эксплуатации.
Дружим FreeBSD 14.0 и HomeAssistant
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/354/ded/3b2/354ded3b2fb77d86e02bff62fad9002e.jpeg)
Привет, Хабр!
Многие из вас наверное слышали о Home Assistant (HA) - система домашней автоматизации с открытым исходным кодом, которая прекрасно работает на различных аппаратных решениях и поддерживает операционные систем Linux, macOS, Windows. К сожалению, в списке поддерживаемых операционных систем нет FreeBSD. А как быть тем, кто уже имеет рабочий сервер для домашней автоматизации на FreeBSD и не хочет заморачиваться с установкой дополнительного оборудования для запуска Home Assistant? Тут два варианта решения проблемы: первое решение это использование виртуальной машины с поддерживаемой операционной системой для HA, что занимает некоторые ресурсы сервера и второй вариант это установка HA непосредственно на FreeBSD. Как вы понимаете, я пошел вторым путем (путь граблей и приключений) и об этом расскажу далее.
Логи из docker compose / docker swarm в Grafana / Loki быстро и просто
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/f86/ae2/54a/f86ae254ab3eda3def741eb9d657621c.png)
Хочу показать как развернуть готовый и полностью работающий стек мониторинга Grafana + Loki + Prometheus + Pushgateway + Promtail за пару минут (в прямом смысле этого слова), без необходимости устанавливать на машину дополнительное ПО (плагины docker и плагины логирования) и собирать логи со всех контейнеров машины (или сразу со всех нод, в случае с swarm).
Информация
- В рейтинге
- Не участвует
- Откуда
- Киев, Киевская обл., Украина
- Дата рождения
- Зарегистрирован
- Активность