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

Prometehus: MySQL exporter

7 августа 2018
 

 Ещё одна задача по мониторингу — проверять доступ к серверу баз данных. Краткая заметка просто для примера. Используем prometheus/mysqld_exporter. Подключаемся к серверу БД, добавляем пользователя: [simterm] MariaDB [(none)]> CREATE USER ‘prometheus’@’10.0.2.7’ IDENTIFIED BY ‘password’; Query OK, 0 rows affected (0.00 sec) [/simterm] Задаём ему права доступа: [simterm] MariaDB [(none)]> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.*… Читать далее »

AWS: CloudFormation — создание EFS + Ansible роль

1 августа 2018
 

 Задача — добавить ресурсы AWS Elastic File System в существующий CloudFormation стек. В CloudFormation для этого имеется ресурс AWS::EFS::FileSystem, который и используем. Шаблон для CloudFormation уже создан, и в примерах ниже будут отсылки к его ресурсам. Опции EFS Перед тем, как создавать EFS — немного рассмотрим доступные опции. EFS имеет два основных доступных параметра — Performance… Читать далее »

Prometheus: Alertmanager и blackbox-exporter — проверка срока действия SSL и нотификация в Slack

27 июля 2018
 

 Основная задача — проверять SSL-сертификаты и уведомлять о том, что срок действия сертификата завершается. Запуск blackbox-exporter Все сервисы мониторинг запускаются из Compose-файла, который деплоится на хост мониторинга из Ansible-шаблона roles/monitoring/templates/prometheus-compose.yml.j2. Добавляем туда ещё один контейнер: … blackbox-exporter: image: prom/blackbox-exporter command: ‘—config.file=/config/blackbox.yml’ # for debug #command: ‘—config.file=/config/blackbox.yml —log.level=debug’ networks: — prometheus ports: — 9115:9115 volumes: -… Читать далее »

Jenkins: уведомление в Slack из Jenkins Scripted Pipeline

25 июля 2018
 

 Имеется Jenkins-job, из которой необходимо отправлять уведомления по завершению билда. В Jenkins для этого имеется Slack Notification, который и применим. Хороший пост по теме — тут>>>. Устанавливаем его: Настраиваем Slack — переходим на https://setevoy.slack.com/apps/new/A0F7VRFKN-jenkins-ci (меняем setevoy на ваш URL, само собой), и добавляем Jenkins: И следуем инструкции: Настройка Slack Notification Переходим в Jenkins > Global configuration, внизу настраиваем Slack… Читать далее »

AWS: бекап EBS по расписанию через CloudWatch rules или Data Lifecycle Manager

24 июля 2018
 

 Выполнить снапшот EBS по расписанию можно двумя способами: старый — с помощью CloudWatch rules, и новый — с помощью Data Lifecycle Manager. EBS backup with CloudWatch rules Переходим в CloudWatch > Rules, жмём Create rule: В Event source выбираем Schedule, задаём время — фиксированный период или по крону, например — в 18:10 каждый день (время тут задаётся… Читать далее »

Grafana: создание dashboard

23 июля 2018
 

 Задача — добавить дашборд для отображения различной статистики с бекенда. Ниже описывается процесс создания дашборды, рассматриваются примеры запросов из Grafana к Prometheus для получения данных, настройки различных типов панелей, примеры метрик, которые можно использовать. Основная цель поста — записать для себя примеры использования Grafana, т.к. подобных примеров не встречал, хотя у Grafana отличная документация. Для… Читать далее »

Prometheus: nginx_exporter и сбор метрик с NGINX

19 июля 2018
 

 Имеется два експортёра для NGINX — discordianfish/nginx_exporter и hnlq715/nginx-vts-exporter. Второй предоставляет больше возможностей, но мне сейчас нужны самые базовые, поэтому использую discordianfish/nginx_exporter. NGINX status Сначала — добавим /nginx_status в NGINX. Проверяем — собран ли NGINX со статус-модулем: [simterm] root@bm-backed-app-dev:/opt/prometheus-client# nginx -V 2>&1 | grep -o with-http_stub_status_module with-http_stub_status_module [/simterm] Я добавил отдельный конфиг /etc/nginx/conf.d/status.conf с default_server, который принимает запросы… Читать далее »

Grafana: добавление CloudWatch data-sorce

18 июля 2018
 

 Для получения метрик из AWS CloudWatch для связки Grafana/Prometheus можно использовать два подхода: собирать метрики в Prometheus с помощью cloudwatch_exporter добавить новый data-source в Grafana, и рисовать графики используя его Ниже описывается процесс добавления data-source в Grafana и графиков AWS Load Balancer. IAM пользователь Добавляем IAM пользователя с Programmatic access: В Permissions выбираем Attach existing policies… Читать далее »

MySQL/MariaDB: ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

16 июля 2018
 

 В MySQL имеется функция PASSWORD() для получения хеша из строки с паролем, котоаря используется самим MySQL для проверки авторизации. При добавлении пользователя с использованием этой функции и при передачи пароля открытым текстом — возникает ошибка: [simterm] MariaDB [(none)]> CREATE USER ‘ruser’@’%’ IDENTIFIED BY PASSWORD ‘password’; ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number… Читать далее »

Docker: настройка tzdata и timezone во время билда

14 июля 2018
 

 При сборке образа — билд останавливается с запросом на настройку tzdata. Dockerfile выглядит сейчас так: FROM ubuntu:18.04 RUN apt update && apt install -y python-pip python-dev ssh python-boto3 RUN pip install ansible==2.4.3.0 Запускаем сборку: [simterm] admin@jenkins-production:~$ docker build -t proj/proj-ansible:1.1 . Sending build context to Docker daemon 29.62MB Step 1/3 : FROM ubuntu:18.04 —> 113a43faa138… Читать далее »