Мониторинг Ceph кластера используя Prometheus и платформу визуализации Grafana.
Grafana - открытая и бесплатная платформа визуализации данных и мониторинга с поддержкой Graphite, InfluxDB, Prometheus, Elasticsearch и многих других баз.
Для мониторинга Ceph кластера мы будем использовать Prometheus
Prometheus - это система мониторинга с открытым исходным кодом, разработанная SoundCloud. Как и другие системы мониторинга, такие как InfluxDB и Graphite, Prometheus хранит все свои данные в базе данных временных рядов.
Установка Grafana
Установим актуальную версию Grafana с официального сайта:
yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm |
Либо используя репозиторий /etc/yum.repos.d/grafana.repo
:
[grafana] |
И ставим пакет:
yum install grafana |
Добавляем сервис в автозагрузку:
systemctl enable grafana-server.service |
Запускаем сервис:
systemctl start grafana-server |
После установки Grafana будет доступна по адресу: http://IP_ADDRESS:3000
Логин/пароль по умолчанию admin/admin
.
Установка Prometheus
Создаем non-root sudo
пользователя prometheus
.
echo "prometheus ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/prometheus && sudo chmod 0440 /etc/sudoers.d/prometheus |
Загружаем стабильную версию продукта:
$ curl -LO "https://github.com/prometheus/prometheus/releases/download/v1.7.1/prometheus-1.7.1.linux-amd64.tar.gz" |
Создаем директорию для Prometheus:
$ mkdir ~/Prometheus |
И распаковываем в неё загруженный архив:
$ tar -xvzf ~/prometheus-1.7.1.linux-amd64.tar.gz |
Проверяем установленную версию Prometheus:
$ /home/prometheus/Prometheus/prometheus-1.7.1.linux-amd64/prometheus -version |
Увидим приблизительно следующий вывод:
prometheus, version 1.7.1 (branch: master, revision: 3afb3fffa3a29c3de865e1172fb740442e9d0133) |
В целом установка Prometheus завершена.
Запускаем Prometheus сервер
Переходим в директорию с установленным Prometheus
$ /home/prometheus/Prometheus/prometheus-1.7.1.linux-amd64/ |
Редактируем конфигурационный файл prometheus.yml
:
... |
Запускаем Prometheus в фоновом режиме:
nohup ./prometheus > prometheus.log 2>&1 & |
Посмотреть лог-файл сервиса Prometheus:
tail -f prometheus.log |
Вывод приблизительно следующий:
time="2017-09-14T12:21:58+03:00" level=info msg="Starting prometheus (version=1.7.1, branch=master, revision=3afb3fffa3a29c3de865e1172fb740442e9d0133)" source="main.go:88" |
Веб-интерфейс доступен по адресу: http://YOUR_IP_ADDRESS:9090
Настройка экспорта
Для экспорта данных о Ceph кластере будем использовать Ceph Exporter
В данной статье будет рассмотрен пример с Docker-контейнером, на ГХ можно найти мануал по установке на Go.
Итак, установим Docker, если он еще не установлен в системе:
$ sudo yum install docker |
Добавим в автозагрузку и запустим:
$ sudo systemctl enable docker |
Выгружаем контейнер:
$ sudo docker pull digitalocean/ceph_exporter |
Запускаем контейнер с дополнительными опциями (указываем папку с конфигурационными файлами Ceph, а также порт на котором будет слушаться экспортер):
$ sudo docker run -v /etc/ceph:/etc/ceph -p=9128:9128 -td digitalocean/ceph_exporter |
Проверяем, что контейнер запущен:
$ sudo docker stats |
Настраиваем экспорт в Grafana
Добавляем источник данных в Grafana:
Затем добавляем дашборд. В данном примере используется Ceph - Cluster шаблон с Grafana Labs. Добавляем его. (Для удобства можно использовать ID 917 для быстрого импорта).
Переходим в добавленный дашборд и, если все действия были выполнены правильно, то наблюдаем информацию о нашем Ceph кластере.