Олег Букатчук

Установка Zabbix и Grafana с помощью Docker Compose на Debian Linux

Сен
18

Привет, дорогой читатель! Ранее я писал о том что такое Docker, а теперь мы установим Docker и Compose на сервер и установим панель мониторинга Zabbix, а также визуализатор данных Grafana в разные Docker-контейнеры с одновременным запуском всего выше указанного с помощью Docker Compose.

Подготовка

Прежде всего обновим систему, чтобы иметь свежие версии всех пакетов.

$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Установка Docker Engine

Добавим GPG-ключ для Docker репозитория на нашем сервере.

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Создадим файл /etc/apt/sources.list.d/docker.list с ардесом Docker репозитория.

$ sudo touch /etc/apt/sources.list.d/docker.list
$ sudo nano /etc/apt/sources.list.d/docker.list

В созданный файл, добавляем строку указанную ниже.

deb https://apt.dockerproject.org/repo debian-jessie main

Так, как Docker-репозиторий требует HTTPS-соединения нам нужно установить пакеты apt-transport-https и ca-certificates.

$ sudo apt-get install apt-transport-https ca-certificates

Обновляем локальный индекс пакетов и устанавливаем Docker Engine.

$ sudo apt-get update && sudo apt-get install docker-engine

Запускаем Docker.

$ sudo systemctl start docker

Добавляем Docker Engine в автозагрузку.

$ sudo systemctl enable docker

Проверяем статус запущеннного Docker’a.

$ sudo systemctl status docker

Вывод:

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled)
   Active: active (running) since Fri 2016-09-15 14:55:11 EDT; 1min 3s ago
     Docs: https://docs.docker.com
 Main PID: 1992 (docker)
   CGroup: /system.slice/docker.service
           ├─1992 /usr/bin/docker daemon -H fd://
           └─1995 docker-containerd -l /var/run/docker/libcontainerd/docker-c...

Проверим корректность установки Docker с помощью команды из официальной документации:

$ sudo docker run hello-world

Если вы всё сделали правильно, тогда увидите примерно такой вывод

Hello from Docker.
This message shows that your installation appears to be working correctly.

Проверяем версию Docker’a.

$ sudo docker --version

Вывод:

Docker version 1.11.0, build 4dc5990

Установка Docker Compose

Переключаемся на пользователя root.

$ sudo -i

Загружаем бинарный пакет docker-compose с Github и сохраняем по указанному пути /usr/local/bin/docker-compose.

# curl -L https://github.com/docker/compose/releases/download/1.7.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

Делаем его исполняем.

# chmod +x /usr/local/bin/docker-compose

Проверяем версию docker-compose

# docker-compose --version
 docker-compose version 1.7.0, build 0d7bf73

Установка Zabbix и Grafana

Здесь я предполагаю, что вы самостоятельно установили MySQL для хранения данных на хост-машине.
И так, приступим! В начале создадим директорию, где будет хранить конфигурационный файл docker-compose.yml в котором мы опишем настройки запуска Docker Compose. Для этого создадим директорию в домашней папке текущего пользователя.

$ sudo mkdir /home/$USER/monitoring
$ cd /home/$USER/monitoring

Создадим файл docker-compose.yml

$ sudo touch docker-compose.yml

Добавляем в файл такое содержимое:

zabbix-db-storage:
  image: busybox:latest
  volumes:
    - /var/lib/mysql

zabbix-db:
  image: monitoringartist/zabbix-db-mariadb
  volumes:
    - /backups:/backups
    - /etc/localtime:/etc/localtime:ro
  volumes_from:
    - zabbix-db-storage
  environment:
    - MARIADB_USER=zabbix
    - MARIADB_PASS=my_password
    
zabbix-server:
  image: monitoringartist/zabbix-xxl:latest
  ports:
    - "80:80"
    - "10051:10051"
  volumes:
    - /etc/localtime:/etc/localtime:ro
  links:
    - zabbix-db:zabbix.db
  environment:
    - ZS_DBHost=zabbix.db
    - ZS_DBUser=zabbix
    - ZS_DBPassword=my_password
    
grafana-xxl:
  image: monitoringartist/grafana-xxl:latest
  ports:
    - "3000:3000"

Наконец, запускаем Docker Compose!

$ sudo docker-compose up -d

Если всё сделано правильно, вы увидите следующий вывод:

Creating monitoring_zabbix-db_1
Creating monitoring_zabbix-grafana_1
Creating monitoring_zabbix-server_1

Для доступа к Zabbix введите в браузера http://ip_адрес_сервера, для доступа к Grafana введите в браузера http://ip_адрес_сервера:3000

Profit!