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

Telegram: канал и группа @rtfm, бот, API и кросспост из WordPress

30 января 2019
 

 Давно хотел и просили добавить канал в Телеграме, и сделать кросспост постов из блога туда. Всё не доходили руки сесть, и закончить — но теперь всё работает. Сам канал в телеге — тут>>> (плюс открытая группа  тут>>>), а в этом посте — описание настройки. Используется телеграм-бот, и плагин WP Telegram. Telegram Создание бота и получение API-токена Начинаем с… Читать далее »

C: отладка с gdb — примеры

30 января 2019
 

 gdb (GNU Project Debugger) используется при отладке/дебаге кода. Ниже приводятся примеры работы с кодом на С. Используем такой код: #include <stdio.h> #include <string.h> #include <stdlib.h> char * buf; int sum_to_n(int num) { int i,sum=0; for(i=1;i<=num;i++) sum+=i; return sum; } void printSum() { char line[10]; printf(«Enter a number: «); fgets(line, 10, stdin); if(line != NULL) strtok(line, «\n»);… Читать далее »

C: libmysqlclient — примеры работы с MySQL API

29 января 2019
 

 Давно не писал на С (последний раз — почти год тому, см. What is: Linux namespaces, примеры PID и Network namespaces). Немного за ним заскучал, ибо язык интересный и заставляет местами поломать голову, потому решил немного освежить память. Ниже приводятся примеры работы с сервером MySQL/MariaDB на С, используя API из библиотеки libmysqlclient. Примеры взяты из поста MySQL… Читать далее »

Arch: yaourt — No space left on device

24 января 2019
 

 Требуется установить пакет libmysqlclient для работы с API MySQL из C. Описание пакета — тут>>>. Во время сборки — yaourt сообщает об ошибке: Scanning dependencies of target mysql_protocol [100%] Building CXX object router/src/mysql_protocol/CMakeFiles/mysql_protocol.dir/src/handshake_packet.cc.o Unknown file/directory /tmp/yaourt-tmp-setevoy/aur-libmysqlclient/src/mysql-8.0.13/router/src/mysql_protocol/../src/router/include. Unknown file/directory /tmp/yaourt-tmp-setevoy/aur-libmysqlclient/src/mysql-8.0.13/router/src/mysql_protocol/../src/harness/include. {standard input}: Assembler messages: {standard input}: Fatal error: can’t close CMakeFiles/mysql_protocol.dir/src/handshake_packet.cc.o: No space left on device… Читать далее »