Архив за год: 2018

Linux: Spectacle — module «QtQuick.Controls» is not installed

27 августа 2018
 

 После последнего апдейта системы — spectacle начал вылетать при попытке сделать скришот выделенной области — опция «Reactangular Region» в Area: Для «дебага» — запускаем его из консоли, и смотрим сообщения: [simterm] 11:40:46 [setevoy@setevoy-arch-work ~] $ spectacle qt5ct: using qt5ct plugin qrc:/QuickEditor/EditorRoot.qml:23:1: module «QtQuick.Controls» is not installed QObject::connect: Cannot connect (null)::acceptImage(int, int, int, int) to QuickEditor::acceptImageHandler(int, int,… Читать далее »

AWS: миграция RTFM 3.0 (final) — CloudFormation и Ansible роли

25 августа 2018
 

 Прошёл почти год, как я начал миграцию v2, закончил на посте Ansible: миграция RTFM 2.11 – хост Services – установка PHP, PHP-FPM. Основной её идеей на тот момент было максимально использовать возможности AWS и Ansible — чисто из интереса и для практики, т.к. на предыдущем месте работы её было совсем мало (там в основном был Azure… Читать далее »

Jenkins: wrapper script does not seem to be touching the log file

23 августа 2018
 

 При запуске задачи возникает ошибка: wrapper script does not seem to be touching the log file in /var/lib/jenkins/workspace/ETLFB@tmp/durable-893314e7 (JENKINS-48300: if on a laggy filesystem, consider -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=300) Есть созданная бага тут>>>. Собственно решеине указано в тексте самой ошибки — добавляем HEARTBEAT_CHECK_INTERVAL=300. Обновляем pipeline-скрипт, добавляем System.setProperty(«org.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL», «3800»);: #!/usr/bin/env groovy node { // checkout https://github.com/project/deployment to the «ci»… Читать далее »

Linux: kernel panic-not syncing: VFS: unable to mount root fs on unknown block(0,0)

17 августа 2018
 

 Есть Ubuntu машинка, Jenkins билд-агент. Последнее время начала выпадать в Kernel panic и просто во время работы, и при перезагрузке, с ошибкой вида «kernel panic-not syncing: VFS: unable to mount root fs on unknown block(0,0)«. Причина оказалась банальна — раздел /boot был забит чуть менее, чем полностью (с). Для решения — находим старые ядра: [simterm]… Читать далее »

Jenkins: Scripted Pipeline — подтверждение выполнения для Production окружения

16 августа 2018
 

 Есть несколько задач, которые выполняются в Scripted Pipeline. В задачах выполняется провижен CloudFormation и запуск Ansible плейбука на Dev и Production. Что бы исключить случайный запуск Production задачи — хочется добавить шаг подтверждения действия. Используем pipeline-input-step и класс BooleanParameterDefinition. Добавляем функцию verify(): def verify() { stage(‘Verify’) { def userInput = input( id: ‘userInput’, message: ‘This… Читать далее »

Prometheus: проверка отсутствия метрик — avg_over_time()

15 августа 2018
 

 Среди прочих алертов у нас есть алерты на падение сервиса — когда метрика *_up == 0. Проблема в том, что такой алерт сработает только в том случае, если екпортёр сервиса явно вернёт значение ноль, но если ЕС2 с сервисом и екпортёром был выключен/удалён — то Alertmanager ничего не сообщит. Например — алерт на RDS выглядит… Читать далее »

Linux: systemd сервис для Docker Compose

14 августа 2018
 

 Есть Docker Compose файл, который запускает Prometheus стек. Рабочий каталог Prometheus — /opt/prometheus, в котором находится Compose файл prometheus-compose.yml. Для управления им через systemd — создаём файл /etc/systemd/system/prometheus.service: [Unit] Description=Prometheus stack Requires=docker.service After=docker.service [Service] Restart=always WorkingDirectory=/opt/prometheus ExecStart=/usr/local/bin/docker-compose -f prometheus-compose.yml up ExecStop=/usr/local/bin/docker-compose -f prometheus-compose.yml down [Install] WantedBy=multi-user.target Проверяем. Запускаем: [simterm] # systemctl start prometheus.service [/simterm] Проверяем… Читать далее »

AWS: 502 ошибка на Application Load balancer

10 августа 2018
 

 Имеется ALB, на который постоянно срабатывает Alertmanager с ошибкой 502: В CloudWatch видно, что ошибка возникает спорадически, и только один раз: При этом в логах NGINX никаких ошибок нет Первым делом — включаем логи ALB: Не то что бы они чем-то реально помогли — но по крайне мере теперь можно увидеть ошибку «вживую» : 52.***.***.142… Читать далее »

Prometheus: OpsGenie и Alertmanager — уведомления в почту/SMS/телефон

9 августа 2018
 

 OpsGenie — сервис, позволяющий настроить отправку уведомлений на почту, в Slack, SMS и умеющий выполнять звонки при возникновении алерта. Кроме того — у него есть мобильные приложения для Android и iOS. Сейчас у нас нотификации отправляются только в Slack, через slack_configs Alertmanager-а, но этого явно мало, особенно если ночью упадёт какой-то критичный сервис. Собственно, задачей… Читать далее »

RabbitMQ: Ansible и Hostname mismatch: node believes its host is different.

8 августа 2018
 

 Имеется Ansible плейбук, где среди прочего выполняется установка и настройка RabbitMQ. При запуске задачи с использованием плагина rabbitmq_vhost возникает ошибка: [simterm] TASK [rabbitmq : Add RabbitMQ vhosts] **** fatal: [dev.mobilebackend.domain.world]: FAILED! => {«changed»: false, «cmd»: «/usr/sbin/rabbitmqctl -q -n rabbit list_vhosts name tracing», «msg»: «Error:********@localhost’\n- home dir: /var/lib/rabbitmq\n- cookie hash: cWvPHXMU4l0V3ALUhc3MbA==», «rc»: 69, «stderr»: «Error: unable… Читать далее »