Опис
Завдання — потрібно налаштувати моніторинг jenkins, а саме цікавить статус нод, оскільки вихід ноди з онлайну буде зупиняти виконання завдань. Інші метрики також будуть важливими(jenkins status, jenkins jobs).
Рішення — оскільки основною системою моніторингу є prometheus, скористаємось плагіном jenkins prometheus. Детальніше про метрики читаємо тут.
Для реалізації нам знадобиться:
- Встановлена та налаштована Grafana (з підключеним datasource prometheus);
- Встановлений та налаштований Prometheus;
- Звісно сам Jenkins на який будемо встановлювати плагін;
План виконання:
- Встановлення плагіну на Jenkins;
- Перевірки отримання метрик в браузері або за допомогою curl;
- Додавання нового job в prometheus.yml на сервері прометеус;
- Створення борди в Grafana;
Встановлення плагіну
Переходимо в Jenkins > Manage Jenkins > Manage Plugins > Available Plugins в пошуковому полі вводимо prometheus, завантажуємо плагін, після завантаження jenkins перезапуститься:
Коли плагін встановлено метрики будуть доступні за посиланням https://JENKINS_URL/prometheus/ або http://JENKINS_IP:8080/prometheus/:
Налаштування плагіну доступне в налаштуваннях Jenkins > Manage Jenkins > Configure System > Prometheus:
Налаштування Prometheus
На сервері прометеус додаємо в конфігураційний файл prometheus.yml наступні налаштування:
- job_name: jenkins
metrics_path: '/prometheus/'
scrape_interval: 5s
static_configs:
- targets:
- "<JENKINS_URL_or_JENKINS_IP:PORT>"
Перевіряємо валідність конфігураційного файлу:
# promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
Перезапускаємо prometheus.
Далі відкриємо UI прометеуса та перевіримо підключення в Status > Targets:
Jenkins доступний, можемо переходити до створення борди графана.
Створення dashboard в Grafana
Пошукавши та знайшовши декілька цікавих Dasnboards, в Marketplace взяв за основу один з доступних, переробив під потреби та видалив зайве, в кінцевому результаті маємо наступне:
На цьому все. Переглянути доступні борди для Jenkins можемо тут, а завантажити для імпорту створений мною дашборд тицяємо сюди.
Корисні посилання
- https://plugins.jenkins.io/prometheus/
- https://grafana.com/grafana/dashboards/?search=Jenkins
- https://github.com/HennessiUA/geekops.guru/tree/main/1014
- https://www.jenkins.io/
- https://grafana.com/
- https://prometheus.io/