Как стать автором
Обновить
85
0
Игорь Олемской @olemskoi

CEO в Southbridge

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

Мониторинг докер-хостов, контейнеров и контейнерных служб

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

Я искал self-hosted мониторинговое решение с открытым кодом, которое может предоставить хранилище метрик, визуализацию и оповещение для физических серверов, виртуальных машин, контейнеров и сервисов, действующих внутри контейнеров. Опробовав Elastic Beats, Graphite и Prometheus, я остановился на Prometheus. В первую очередь меня привлекли поддержка многомерных метрик и несложный в овладении язык запросов. Возможность использования одного и того же языка для графических изображений и уведомления сильно упрощает задачу мониторинга. Prometheus осуществляет тестирование по методу как черного, так и белого ящика, это означает, что вы можете тестировать инфраструктуру, а также контролировать внутреннее состояние своих приложений.


Читать дальше →

FreePBX: первые шаги по граблям

Время на прочтение6 мин
Количество просмотров129K
Начиная знакомство с FreePBX, даже опытные системные администраторы зачастую допускают одни и те же ошибки, которые способны серьезно испортить настроение и отбить всякое желание продолжать освоение этой системы.


Читать дальше →

Двухфакторная аутентификация в Redmine

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

С давних пор для второго шага аутентификации мы использовали одноразовые пароли отправляемые через СМС. Такой функционал появился в Redmine в 2013, когда мы разработали плагин redmine_sms_auth. Об этом мы писали в давней статье.


Но время не стоит на месте. Мы активно внедряем Telegram в бизнес-процессы компании (раз, два, три).


В связи с этим решили сделать аутентификацию через Telegram в Redmine. Заодно с этим переписать старый плагин про СМС и добавить поддержку Google Authenticator.


Далее мы расскажем о том как установить, настроить и использовать этот плагин.

Хочу знать подробности!

Устранение беспорядка маршрутизации сервисов при помощи Docker

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

Устранение беспорядка маршрутизации сервисов при помощи Docker


“Не трудности “ломают” вас, а то, как вы их переносите” —  Lou Holtz

В соавторстве с Emmet O’Grady (основателем NimbleCI и Docker Ninja)


В книге Франца Кафки “Превращение” (“Метаморфозы”) человек просыпается однажды утром и обнаруживает, что он превратился в гигантское насекомоподобное существо. Как у инженеров DevOps, у нас есть такие же сюрреалистические моменты в жизни. Мы находим экзотические ошибки “под ковриком” (скрытые в самых труднодоступных местах) или бываем атакованы червями либо другими опасными сущностями. Если вы занимаетесь этим достаточно долго, у вас рано или поздно появится ужасная история, или даже две (поделитесь ими с нами!). В такой момент мы не можем сидеть и ждать, когда наступит кризис, мы должны действовать быстро. Торопясь исправить это как можно раньше, мы должны развернуть (deploy) новую сущность и выпустить новую версию нашего сервиса, устраняя проблему.

Читать дальше →

Кластер Docker Swarm за 30 секунд

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


В этом июне, в качестве лейтмотива конференции DockerCon мы видели демо, в котором 3-узловой Swarm-кластер был создан за 30 секунд используя набор инструментов для кластеризации Swarm, интегрированную в Docker Engine 1.12.


Впечатляет, но естественно, мне нужно было попробовать сделать это самому, чтобы увидеть своими глазами.


Читать дальше →

Сaжаем на диету индексы PostgreSQL для Zabbix

Время на прочтение4 мин
Количество просмотров11K
Недавно мы перевели Zabbix на работу с БД PostgreSQL. Вместе с переездом на сервер с SSD это дало существенный прирост скорости работы. Также решили проблему с дублирующими хостами в базе данных, bug request. Здесь статья могла бы закончиться, но мы заметили, что Zabbix использует много дискового пространства, поэтому ниже я расскажу, как это вышло. И как мы с этим разобрались.
Читать дальше →

Gitlab-CI и проверка корректности синтаксиса Ansible-lint

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


Всем привет! Мы продолжаем серию статей про DevOps и ищем наиболее эффективные способы управлять конфигурацией, делясь с вами опытом. В прошлых статьях мы рассматривали, как выстроить управление конфигурацией Ansible с помощью Jenkins и Serverspec, а теперь по вашим просьбам рассмотрим, как организовать управление конфигурацией с помощью GitLab-CI.

Ansible-lint — это утилита для проверки корректности синтаксиса плейбука и стиля кода, которую можно интегрировать в CI-сервис. В нашем случае мы внедряем её в gitlab-ci для проверки плейбуков на этапе принятия Merge-Request и выставления статуса проверок.
GitLab (GitLab Community Edition) — это opensource-проект, менеджер git-репозиториев, изначально разрабатывающийся как альтернатива платной корпоративной версии Github.
Читать дальше →

Про наш финансовый отдел и собственную CRM

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

Это первая статья серии о том, как мы внедрили непрерывную интеграцию в процесс разработки CRM и облегчили жизнь финансовому отделу.


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


image


Раньше для автоматизации технических процессов в финансовом отделе мы использовали такую структуру.

Читать дальше →

Gitlab-CI

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



Всем привет.
У нас не так много задач, которым необходим полноценный CI. Некоторое время мы использовали в качестве CI-сервиса Jenkins. Там всё довольно очевидно, он прост и гибок в настройке, имеет кучу плагинов, но пару раз мы столкнулись с OOM-убийцами агентов на слабых машинах и решили рассмотреть в качестве CI-сервиса Gitlab CI, потому что мы любим эксперименты и тем более в комментариях к нашей прошлой статье задавали такой вопрос.
Читать дальше →

Вебинар: FreePBX. Офисная телефония: быстрый старт

Время на прочтение1 мин
Количество просмотров7.2K
Centos-admin.ru - делимся опытом!
Очередной вебинар от команды Centos-admin.ru пройдет в ближайший понедельник, в 12-00 по московскому времени. В этот раз мы рассмотрим использование FreePBX для быстрого развертывания системы офисной телефонии. Плюсы и минусы, основные настройки.

Вебинар рассчитан на системных администраторов, еще не имеющих опыта работы с FreePBX.

Прямая ссылка на видео | Cсылка для регистрации

Приглашаем всех желающих 29 августа. Приходите!

Вебинар: знакомство с Zabbix

Время на прочтение1 мин
Количество просмотров8.7K
Centos-admin.ru - делимся опытом! Очередной вебинар от команды Centos-admin.ru пройдет в ближайший четверг, в 18-00 по московскому времени. На этом вебинаре мы расскажем о системе мониторинга Zabbix, подробно опишем процесс установки, покажем способы автоматизации и интеграции с другими программными продуктами на примере Redmine. В конце вебинара будет небольшой рассказ о поиске и устранении неисправностей, а также затронем вопрос конфигурирования Zabbix под большие нагрузки. Вебинар рассчитан на системных администраторов еще не имеющих опыта работы с Zabbix.

Прямая ссылка на видео | Cсылка для регистрации

Приглашаем всех желающих 11 августа. Приходите!

Определение региона по номеру телефона в Asterisk без использования БД

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


Для многих компаний, работающих по всей стране, бывает очень важно знать, из какого региона именно поступил каждый входящий звонок, например, для оценки эффективности маркетинговой кампании по интересующим регионам. Конечно, можно заставить операторов call-центра уточнять эту информацию у звонящего каждый раз, но все же удобнее получать такую информацию в автоматическом режиме.
Кроме того, при осуществлении исходящих вызовов бывает важно звонить именно с номера того региона, где находится клиент. Можно, конечно, составить исходящие маршруты, но при количестве регионов более трех, да еще и с учетом мобильных номеров, конструкция получается монструозной.
Читать дальше →

Ansible-container: новый шаг в управление контейнерами

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


Недавно разработчики Ansible анонсировали новый проект Ansible Container. Проект нас очень сильно заинтриговал, и мы решили рассмотреть его поближе.
Ansible уже давно стал незаменимым инструментом в вопросах создания, сборки, деплоя образов docker-контейнеров и самих docker-контейнеров, благодаря соответствующему модулю.
Ранее для провиженинга docker-контейнеров с помощью Ansible необходим был запущенный в контейнере sshd, но в версии 2.1 в Ansible был добавлен Docker connection plugin, благодаря которому стало возможно запускать плейбуки не только на физических/виртуальных машинах, но и внутри docker-контейнеров и отпала необходимость использования sshd внутри docker-контейнера.

Читать дальше →

Вебинар: знакомство с Asterisk

Время на прочтение1 мин
Количество просмотров7.2K
Centos-admin.ru - делимся опытом!

Очередной вебинар от команды Centos-admin.ru пройдет в ближайшую пятницу, в 13-00 по московскому времени.

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

Приглашаем всех желающих 22 июля.

Тут прямая ссылка на видео.
А тут ссылка для регистрации.

Приходите!

Ansible: тестируем плейбуки (часть 2)

Время на прочтение3 мин
Количество просмотров9.3K
Итак, в нашей прошлой статье мы рассмотрели как можно быстро и просто настроить среду для тестирования плейбуков и ролей Ansible. Это всё, конечно, очень хорошо и удобно, но почему бы нам не автоматизировать весь процесс внесения изменений в инфраструктуру от написания плейбука до внесения изменений на сервера?

image

Напомню несколько условий, при которых мы будем выполнять тестирование конфигураций:

1. Вся конфигурация хранится в git-репозитории;
2. Jenkins периодически опрашивает git-репозиторий с нашими ролями/плейбуками на предмет внесённых изменений;
3. При появлении изменений Jenkins запускает job с тестированием конфигурации. Тесты состоят из двух этапов:
3.1 Kitchen-CI берёт обновленный код из репозитория, запускает полностью свежий docker-контейнер, заливает в них обновлённые плейбуки из репозитория и запускает Ansible локально, в docker-контейнере;
3.2 Если первый этап прошёл успешно, в docker-контейнере запускается serverspec и проверяет, корректно ли встала новая конфигурация;
4. Если в Kitchen-CI все тесты прошли успешно, то Jenkins инициирует заливку новой конфигурации.

В идеале, весь процесс от написания плейбука и коммита в репозиторий до внесения изменений на сервера, должен проходить без нашего участия. Сильно углубляться в установку Jenkins и подробно расписывать о пайплайнах в данной статье не планируется. Первое делается без проблем из стандартных репозиториев, а второе — сугубо индивидуальное.
Читать дальше →

Ansible: тестируем плейбуки (часть 1)

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


Думаю, любой системный администратор, использующий Ansible для управления своим зоопарком серверов задавался вопросом о проверке корректности описания конфигурации своих серверов. Как же не бояться вносить изменения в конфигурации серверов?
В серии статей, посвященных DevOps, мы расскажем об этом.

Читать дальше →

Хотите интегрировать Telegram в Redmine? Есть решение

Время на прочтение3 мин
Количество просмотров20K
Некоторое время назад я рассказал от том «Как хранить сложную иерархию настроек в проектах Redmine». Рассказ этот базировался на опыте разработки плагина redmine_intouch. В этой публикации расскажу о самом плагине и том, чем он может быть полезен для вас.

Наша компания растёт, полагаться на человеческий фактор всё сложнее и сложнее, а многочисленные клиенты ожидают мгновенной реакции на свои заявки.

В связи с этим мы стараемся максимально автоматизировать все возможные процессы, напоминать администраторам о необходимости вовремя написать статус по открытым задачам клиентам…

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

image

Читать дальше →

Redmine: миграция с MySQL на PostgreSQL 9.5

Время на прочтение3 мин
Количество просмотров16K
image
В последнее время клиенты нашей компании все чаще обращаются с просьбой осуществить переход с MySQL на PostgreSQL. Действительно, активное развитие PostgreSQL дает повод разработчикам задуматься о смене СУБД. Зачастую при этом встает вопрос о переносе больших объемов данных, которыми «обросла» существующая база под MySQL.

Мы сами являемся активными пользователями Redmine и разработчиками плагинов для него, потому и выбрали эту CRM для иллюстрации процесса миграции.

Ниже описывается один из способов миграции с БД MySQL на PostgreSQL 9.5 для Redmine на ОС CentOS 6.

Читать дальше →

DNS Google больше не поддерживает Round Robin DNS

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

Раньше, когда надо было распределить нагрузку на несколько серверов, мы прописывали несколько A-записей с одним именем в DNS-зоне, и все работало. Запросы клиентов распределялись примерно поровну. Особенно актуален такой способ балансировки был для раздачи статитического контента.

Недавно наш клиент обратился к нам с проблемой:
В ЧНН начинались проблемы с загрузкой различных флешек — файлы загружались по несколько минут.
ищем виновного...

Плагин для Redmine: redmine_chat_telegram

Время на прочтение2 мин
Количество просмотров16K
imageimage

А мы продолжаем активно разрабатывать инструменты, которые упрощают жизнь команде поддержки Linux/Unix серверов. Хотя, этот плагин может быть полезен всем активным пользователям Redmine.
Плагин redmine_chat_telegram позволяет из тикета создать чат в Telegram, а все содержимое чата записывает в тикет.
Как это работает, зачем нужно и кому будет полезно описано под катом.
Читать дальше →

Информация

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