Архив за месяц: Февраль 2019

Chromium: 400 ошибка на Youtube

18 февраля 2019
 

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

Docker: RabbitMQ: exec(): Unable to fork, Prometheus node_exporter и Docker limits

15 февраля 2019
 

 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() и выделить… Читать далее »

Golang: Go in Practice – заметки на полях, часть 2 – CLI приложение на Go

14 февраля 2019
 

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

Grafana Labs: Loki – подключение S3 для данных и DynamoDB для индексов

13 февраля 2019
 

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

Golang: unrecognized import path “math/bits” (import path does not begin with hostname)

12 февраля 2019
 

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

Grafana Labs: Loki – распределённая система, теги и фильтры

7 февраля 2019
 

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

Linux: rsyslog и “ротация” логов.

7 февраля 2019
 

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

Grafana Labs: Loki – сбор и просмотр логов

6 февраля 2019
 

 В Grafana версии 6.0 была предоставлена новая плюшка – просмотрщик логов Loki, аналог известного всем стека ELK/EFK. Является встроенной возможностью самой Grafana, и заточен под работу с Prometehus и Kubernetes, с возможностью использования их метрик. Проект совсем новый, и главный его недостаток, который выявился за время попытки поднять хотя бы Proof of Concept, который и… Читать далее »

Ansible: шифрование и копирование PEM-ключа

5 февраля 2019
 

 Задача – во время выполнения роли скопировать на удалённый хост PEM-ключ. Для этого используем ansible-vault. Идея состоит в том, что мы зашифруем содержимое ключа в переменную, а затем используем модуль copy – и создадим на удалённой системе новый файл. Создание сертификата Сначала создадим сам сертификат и приватный ключ с помощью openssl: [simterm] $ openssl req… Читать далее »

Golang: Go in Practice – заметки на полях, часть 1 – введение

4 февраля 2019
 

 Ещё весной начал учить Go, но потом перешёл на новую работу, забот и без того хватало, и Go забросил. Тем не менее – встречается он сейчас много где (Docker, Prometheus, Terraform etc), а потому знать его желательно. Да и вообще – иногда надо поучить что-то новое, ибо становится скучно. Попробую вести “конспекты” книги Go in Practice … Читать далее »