Пост

Установка и настройка MinIO с интеграцией Prometheus

Приветcтвую 👋!

Пошаговая история установки и настройки MinIO:

1
sudo apt update && sudo apt upgrade
1
sudo reboot

Установка MinIO:

1
sudo wget https://dl.min.io/server/minio/release/linux-ppc64le/minio_20240713014615.0.0_ppc64el.deb
1
sudo dpkg -i minio_20231223071911.0.0_ppc64el.deb
1
sudo mkdir /data/minio
1
sudo chmod 777 /data/minio

Открываем порты:

1
sudo iptables -A INPUT -p tcp --dport 9001 -j ACCEPT
1
sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
1
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Создаём сервис MinIO:

1
sudo nano /usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
Type=notify
WorkingDirectory=/usr/local
User=minio-user
Group=minio-user
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Переменная MINIO_VOLUMES не установлена в /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

1
sudo systemctl start minio.service
1
sudo systemctl status minio.service

Конфигурируем MinIO:

1
sudo nano /etc/default/minio

Пример содержимого:

MINIO_VOLUMES="http://10.10.10.5{1...4}:9000/data/minio"
MINIO_OPTS="--console-address :9001"
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=Passw0rd
MINIO_SERVER_URL="http://10.10.10.51:9000"       # WEB console minio
MINIO_PROMETHEUS_URL="http://10.10.10.46:9090"     # ссылка на Prometeus server
MINIO_PROMETHEUS_JOB_ID='Aliasminio-job'              # уникальный job id

Добавление Prometheus метрик:

1
mc alias set Aliasminio http://10.10.10.51:9000 minioadmin Passw0rd

Создаём алиас для MC клиента.

1
mc admin prometheus generate Aliasminio

Генерируем job для Prometheus.

Добавляем job в Prometheus:

1
sudo nano /opt/prometheus/prometheus/prometheus.yml

Добавляем job, не забываем уникальный job_name.

Перезапускаем контейнер Prometheus:

1
sudo docker ps | grep prometheus
1
sudo docker restart prometheus

Проверяем метрики на Prometheus Time Series Collection and Processing Server.

Работа с MinIO agent:

# скачиваем агента

1
wget https://dl.min.io/client/mc/release/linux-amd64/mc

# делаем его исполняемым

1
chmod +x $HOME/minio-binaries/mc  

# экспортируем путь

1
export PATH=$PATH:$HOME/minio-binaries/ 

# если нужно смотрим мануал

1
mc --help

Прописываем alias:

1
minio-binaries/mc alias set miniobackuppg28 http://10.10.10.20:9310 minioadmin Password

Копирование данных:

1
mc cp --recursive /data4/backup/localhost2024-08-08-daily/ miniobackuppg28/miniobackup-pg-prod28/localhost2024-08-08-daily/
1
mc cp --recursive /data4/backup/localhost2024-07-02-daily/ miniobackuppg28/miniobackup-pg-prod28/localhost2024-07-02-daily/

Вот такой не хитрый мануал… выручал не раз!