Updates rtfm.co.ua 🇺🇦 – Telegram
Updates rtfm.co.ua 🇺🇦
726 subscribers
35 photos
457 links
Канал @rtfm - новые посты на https://rtfm.co.ua.
Обсуждения - группа @rtfmco https://t.me./rtfmco
Download Telegram
Linux: rsyslog и “ротация” логов.

Имеется система с Debian 9, запущенная на AWS EC2 с дефолтным 8-гиговым рутовым разделом. Проблема в том, что временами /var/log/syslog и /var/log/daemon.log отжираются за сутки на пару гигов, и logrotate, который запускается раз в сутки, не успевает их сжать и выполнить ротацию. syslog и daemon.log используются (уже некоторыми подзабытым) демоном rsyslog: root@bttrm-dev-console:/home/admin# cat /etc/rsyslog.conf…

https://rtfm.co.ua/linux-rsyslog-i-rotaciya-logov/
Forwarded from DevOps Help Bot
Starter Kit:
0. DevOps manifest
1. SRE implments DevOps \ 30 минутное интервью, дополняет 1 сезон
Tip: В данном плейлисте сотрудники Google расскажут базовые различия между SRE и DevOps, а также основные концепции и принципы построения рабочего процесса
2. CI\CD\CDP \ Patterns and anti-patterns of CI/CD
Tip: Расшифровка абревиатур, а также паттерны/антипаттерны построения и работы с этими методиками
3. How To Become a DevOps Engineer In Six Months or Less (part 1 \ part 2 \ part 3 \ part 4 \ part 5 \ part 6 \ part 7)
Tip: В своем роде roadmap для становления SRE специалиста с примерами. Достаточно абстрактный для того, чтобы замена инструментов не привела к потери большого куска смысла
4. DevOps Toolkit 2.0 (и далее всю серию) Стоит понимать, что 2.0/1 морально устарели и читать их нужно только для изучения концепций
Tip: Детально рассказывает про инструменты, а также учит когда, как и для каких целей использовать те или иные инструменты
5. SRE books
Tip: книги от Google, думаю комментарии излишне) Просто нужно прочесть)
6. Kubernetes best practice (актуально для любой разработки в контейнерах)
Tip: небольшой плейлист по мировым практикам работы с контейнерами на примере Kuberenetes и GCP
7. Designing Distributed Systems
Tip: Данная книга расскажет про паттерны построения расрпделенной системы. Достаточно абстрактно, чтобы можно было применить к большому количеству кейсов с определенными купюрами
8. Building Evolutionary Architectures
Tip: In progress
9. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
Tip: In progress
10. The Twelve-Factor App
Tip: Данная книга позволяет понять как лучше писать приложения, для того, чтобы потом их можно было легко использовать

Additional information:
- Service mesh
- Chaos Engineering (White paper)
- Google SRE: взгляд изнутри
- An 8-minute introduction to K8S (Core concepts, features and building blocks)
Microservices:
- What Is Microservices Architecture?
- A Microservices implementation journey (part 1 \ part 2 \ part 3)

К этому лучше переходить когда понимаете все или большую часть из того, что есть в нумерованном списке. Данный список не будет иметь рекомендаци или аннотаций.

#обучение #DevOps #SK
Grafana Labs: Loki – распределённая система, теги и фильтры

Задача на сейчас – попробовать собрать распределённую систему: Grafana будет работать на одном хосте Loki – на втором Promtail – на третьем Суть идеи такова: имеется рабочее окружение, скажем Dev, включает в себя 2 хоста имеется окружение мониторинга – хост с Grafana/Prometheus/etc На хостах Dev-окружения – запустим promtail, которые будут пушить собранные логи в Loki, а…

https://rtfm.co.ua/grafana-labs-loki-raspredelyonnaya-sistema-tegi-i-filtry/
Golang: unrecognized import path “math/bits” (import path does not begin with hostname)

При импорте пакета – возникает ошибка вида “unrecognized import path “math/bits” (import path does not begin with hostname)“. Гуглим, находим обсуждение тут>>>, радуемся, что в репозиториях Debian 9 последняя доступная версия 1.7. Проверяем версию Go: Выполняем установку вручную. Удаляем установленный пакет: root@ip-172-31-38-97:/home/admin# apt purge golang…

https://rtfm.co.ua/golang-unrecognized-import-path-math-bits-import-path-does-not-begin-with-hostname/
Grafana Labs: Loki – подключение S3 для данных и DynamoDB для индексов

И продолжаем баловаться с Loki. Первая часть – тут>>>, вторая – тут>>>. Очень пригодилась помощь разработчиков в Slack-комьюнити Grafana – там есть отдельный канал #loki. Задача сейчас – настроить Loki для использования AWS S3 корзины как persistent storage для данных самих логов, и AWS DynamoDB – для хранения индексов. При запуске Loki с конфигурацией по…

https://rtfm.co.ua/grafana-labs-loki-podklyuchenie-s3-dlya-dannyx-i-dynamodb-dlya-indeksov/
Golang: Go in Practice – заметки на полях, часть 2 – CLI приложение на Go

Предыдущая часть – Golang: Go in Practice – заметки на полях, часть 1 – введение. Стандартная библиотека Go включает в себя пакеты для создания приложения с поддержкой опций командной строки. В отличии от стандартных, принятых в Linux/BSD, стилей – в пакете из стандартной библиотеке Go используются одинарные или двойные дефисы как взаимозаменяемые. Т.е. тут не…

https://rtfm.co.ua/golang-go-in-practice-zametki-na-polyax-chast-2-cli-prilozhenie-na-go/
Docker: RabbitMQ: exec(): Unable to fork, Prometheus node_exporter и Docker limits

RabbitMQ перестал принимать новые сообщения, и при выполнении запроса – возвращает ошибки вида: exec(): Unable to fork write(): send of 12 bytes failed with errno=104 Connection reset by peer fwrite(): send of 19 bytes failed with errno=32 Broken pipe Собственно, по сообщениям видно, что проблема с памятью – exec() не может выполнить fork() и выделить…

https://rtfm.co.ua/docker-rabbitmq-exec-unable-to-fork-prometheus-node_exporter-i-docker-limits/
Chromium: 400 ошибка на Youtube

В Chromium (не только, скорее всего) иногда возникает ошибка 400 при обращении к Youtube. Вариант первый – просто очистить все данные в браузере через Settings => Clear browsing data. Нагуглилось обсуждение тут>>>, пишут, что ошибка возникает из-за плагина The Great Suspender (шикарный и полезный плагин, кстати). Сама ошибка выглядит так: Жмём F12, открываем Developer tools, перезагружаем…

https://rtfm.co.ua/chromium-400-oshibka-na-youtube/
RTFM: обновления – английская версия, обновлённый поиск

За последние пару дней появилась два достаточно интересных обновления в блоге. Английская версия Очень давно планировалась, но всё “не доходили руки” (на самом деле было лень выкатить Dev-версию блога, что бы потестировать разные плагины). Наконец-то таки добавил плагин Polylang, перевёл категории и теги, начал переводить посты. Английская версия доступна по адресу https://rtfm.co.ua/en или с помощью переключателя в…

https://rtfm.co.ua/__trashed-2/
Viber: Linux – Qt WebEngine resources not found

После последнего обновления на Arch Linux “поломался” Viber. Решений нашлось несколько, но сработало только одно. Ошибки при запуске выглядят так: $ viber Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory...…

https://rtfm.co.ua/viber-linux-qt-webengine-resources-not-found/
OpenVPN: настройка OpenVPN Access Server и AWS VPC peering

OpenVPN Access Server предоставляет полностью настроенный и готовый к использованию OpenVPN сервер, который требует минимальной настройки для запуска. Бесплатная версия разрешает использовать 2 одновременных подключения, если требуется больше пользователей – за денежку. Сейчас для доступа к нашим ресурсам, таким как Jenkins, Nexus и т.д. используются правила в Security Group-ах, в которых для каждого пользователя приходится…

https://rtfm.co.ua/openvpn-nastrojka-openvpn-access-server-i-aws-vpc-peering/
OpenVPN: настройки DNS и dnsmasq

В продолжение OpenVPN: настройка OpenVPN Access Server и AWS VPC peering – пример настройки DNS. Дано: домен ci.example.com, который должен резолвиться на публичный IP сервера с Jenkins при подключении напрямую, через Интернет, и на приватный IP – при подключении через VPN-соединение. Для этого на сервере с OpenVPN устанавливаем dnsmasq: # apt -y install dnsmasq…

https://rtfm.co.ua/openvpn-nastrojki-dns-i-dnsmasq/
Arch Linux: grub-mkconfig зависает на создании /boot/grub/grub.cfg

Во время установки новой системы на новый компьютер – grub-mkconfig зависает при создании файла конфигурации GRUB. Нет ни ошибок, ни предупреждений. Решение нагуглилось тут>>>, запишу его и себе. Сама ошибка выглядит так: Прерываем по Ctrl+C. Проверяем скрипт /usr/bin/grub-mkconfig – находим все редиректы 2> (stderror) в /dev/null: …

https://rtfm.co.ua/arch-linux-grub-mkconfig-zavisaet-na-sozdanii-boot-grub-grub-cfg/
Arch Linux: установка с EFI и dual-boot с Windows

Новый компьютер купил ещё в декабре, накатил тогда на него Windows, потом праздники – и всё руки не доходили установить Linux. Приходилось подключаться через Putty на старый ноут с Arch Linux, на котором всё настроено и работает – и через него делать всякие полезные вещи по SSH. Но Винда всё-таки неудобна, и наконец-то решил выделить…

https://rtfm.co.ua/arch-linux-ustanovka-s-efi-i-dual-boot-s-windows/
World of Tanks: установка и запуск на Arch Linux

Не думал, что заведётся – но всё получилось) Использовался гайд 2017-го года отсюда>>>, а уже после того, как всё заработало – подсказали ещё один мануал тут>>>. Не уверен – будет ли работать с драверами nouveau – у меня запустилось на nvidia. Подключаем Multilib репозиторий. Обновляем доступные пакеты и систему: [setevoy@setevoy-arch-pc ~]$ sudo pacman -Syu…

https://rtfm.co.ua/world-of-tanks-ustanovka-i-zapusk-na-arch-linux/
OpenVPN: настройка SSL и hostname

Доводим до ума наш OpenVPN. У нас он уже в продакшене, пользуемся. Вкусно, просто, удобно. Встроенная поддержка ACL вообще замечательна, но о ней, может быть, в другом посте. Сейчас надо настроить SSL, что бы браузеры и клиенты не ругались. Документация по настройке SSL в OpenVPN AS – тут>>>. Let’s Encrypt Устанавливаем Let’s Encrypt клиент: …

https://rtfm.co.ua/openvpn-nastrojka-ssl-i-hostname/
Viber: нет подключения – qt.network.ssl: Incompatible version of OpenSSL

На свежеустановленной Arch Linux Viber запускается, но при авторизации – не может подключиться к сети. Вообще десктопная версия Вайбера, конечно, убога – но это лучше, чем тыкать кнопочки в телефоне. Да и сам Вайбер, как мессенджер… Решение для домохозяек. Но по статистке он установлен на 94% Android-телефонах, и по сути стал новым скайпом для обычных…

https://rtfm.co.ua/viber-net-podklyucheniya-qt-network-ssl-incompatible-version-of-openssl/
Linux: ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave

Имеется свежая установка Arch Linux. Пока фиксил запуск Viber – игрался с pulseaudio и alsa, после чего начал пропадать звук. Выглядит это так: запускаем qmmp, жмём Play: ... DecoderMAD: Fixed rate detected DecoderMAD: Total time: 297900 ReplayGain: disabled Dithering: disabled ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave OutputALSA: Error opening PCM device default OutputWriter:…

https://rtfm.co.ua/linux-alsa-lib-pcm_dmix-c1108snd_pcm_dmix_open-unable-to-open-slave/
Linux: редактирование systemd юнит-файлов, рестарт сервиса при падении и уведомление на почту

Имеется RabbitMQ сервис, который изредка может упасть. Требуется: перезапускать его, если процесс был завершён с ошибкой отправлять почтовое уведомление об этом событии Настроим это всё через systemd-сервис файл самого RabbitMQ (хотя есть и другие варианты, например – с помощью monit, см. Monit: мониторинг и перезапуск NGINX). Нас интересуют две опции: RestartSec=: задержка при рестарте сервиса…

https://rtfm.co.ua/linux-redaktirovanie-systemd-yunit-fajlov-restart-servisa-pri-padenii-i-uvedomlenie-na-pochtu/
Arch Linux: OpenVPN – не обновляется resolv.conf

В Arch Linux при подключении к OpenVPN AS не обновляется resolv.conf. Насколько я в курсе – проблема специфична именно для Arch и его производных, типа Manjaro Linux. Пакет openvpn установлен с помощь pacman, см. OpenVPN: настройка OpenVPN Access Server и AWS VPC peering. При старте подключения – в логе выводятся сообщения: ... Fri Feb…

https://rtfm.co.ua/arch-linux-openvpn-ne-obnovlyaetsya-resolv-conf/
Android Studio: adb – INSTALL_FAILED_INSUFFICIENT_STORAGE

Продолжаем воевать с нашими UI авто-тестами. Пригодились предыдущие посты – Android Studio: установка на Linux и работа с Android Virtual Devices и Appium: Android Virtual Device, Original error: Condition unmet after 60159 ms и костыль. В целом тесты работают, но иногда вылазят интересные проблемки. Сегодня наш QA-инженер скинул сообщение, что все UI-тесты упали с такой…

https://rtfm.co.ua/android-studio-adb-install_failed_insufficient_storage/