Prometheus в Docker

Рассмотрим легковесный мониторинг Prometheus + Grafana на Docker контейнерах. У меня появилась необходимость мониторинга своих виртуальных машин расположенных на домашнем сервере Начнем с создания docker-compose.yml файла. В нем будет перечислены все необходимые контейнеры: Prometheus - система агрегации метрик Grafana - визуализатор данных, к ней будет подлюкчен наш Prometheus-сервер Node-exporter - контейнер считывающий данные с хост-системы и передающий в Prometheus Alertmanager - менеджер уведомлений, для оповещения о возникновении проблем и их решений Docker Compose version: '3' services: prometheus: container_name: prometheus hostname: prometheus image: prom/prometheus restart: unless-stopped user: root volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml - ./prometheus/alert_rules.yml:/etc/prometheus/alert_rules.yml - ./prometheus/prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.retention=200h' ports: - 9090:9090 grafana: container_name: grafana hostname: grafana image: grafana/grafana restart: unless-stopped user: root volumes: - ./grafana/grafana_datasources.yml:/etc/grafana/provisioning/datasources/all.yaml - ./grafana/grafana_config.ini:/etc/grafana/config.ini - ./grafana/grafana_data:/var/lib/grafana ports: - 3000:3000 node-exporter: image: prom/node-exporter container_name: node-exporter restart: unless-stopped volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - '--collector.filesystem.ignored-mount-points' - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)" #ports: #- 9100:9100 alertmanager: image: prom/alertmanager container_name: alertmanager restart: unless-stopped volumes: - ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml - ./alertmanager/templates:/etc/alertmanager/templates command: --config.file=/etc/alertmanager/alertmanager.yml --log.level=debug #ports: #- 9093:9093 Рассмотрим каждый контейнер и начнем с самого Prometheus ...

15/01/2024 · vikngr

Основы Kubernetes

Как устроен Kubernetes Написав статью о создании локального кластера, пришла мысль о том, что стоит описать как пользоваться k8s, как он работает, из чего состоит Kubernetes (далее k8s) предназначен для контейнезированных приложений, так же предназначен и для: Автоматизации развертывания Автоматизации масштабирования Автоматизации управления Но крутить k8s все же придется. Без основ знаний Docker-контейнеризации разбираться с k8s, смысла его изучать нет. Лучше перед тем как приступить к работе с k8s, хорошо-бы знать основы докера. Почему надо знать Docker? k8s - аркестрирует докер контейнеры, и сам докер является основной, на котором строится k8s ...

20/06/2023 · vikngr

Kubernetes локальный кластер на Ubuntu 22.04 LTS

k8s - хорошая шутка, но технологию очень сильно привязывают к облакам, например AWS и т.д. Но что делать, если у тебя есть свои мощности, и хочется поработать с k8s на своих машинах, или же просто поднять кластер на виртуалках, чтобы поучиться им пользоваться. Я задумался, о том, что хочу поднять свой кластер, чтобы просто поучиться работать с “кубером”, на своей работе мы его не используем (да такие организации есть), но потрогать технологию хочется, особенно когда о ней много пишут, говорят, показывают) ...

27/05/2023 · vikngr

iRedMail бэкап и восстановление

Завершим разговор на тему почты, а точнее iRedMail Автоматический бэкап Для начала, стоит уточнить. Что iRedMail после установки, создает задание в crontab, которое бэкапит необходимые базы данных для восстановления. Посмотреть скрипт, который используется для создания резервных копий, можно набрав команду crontab -e И найти в файле crontab’а комментарий # iRedMail: Backup PostgreSQL databases on 03:01 AM 1 3 * * * /bin/bash /var/vmail/backup/backup_pgsql.sh Получается каждую ночь в 03:01, у нас выполняется данный скрипт который бэкапи базы данных. Если посмотреть на сам скрипт, можно установить ротацию самостоятельно, найти, куда складываются резервные копии и т.д. ...

28/04/2023 · vikngr

Скачивание файлов (curl, wget)

Решил собрать часто используемые команды по загрузке файлов, которыми часто приходится пользоваться. Скачивание файлов под своим именем curl -O https://site.com/file.tar.gz wget https://site.com/file.tar.gz Скачать и сохранить с заданным именем curl -o file1.tar.gz https://site.com/file.tar.gz wget -O file2.tar.gz https://site.com/file.tar.gz Если добавить ключ -s - это silent режим, для сокрытия служебной информации А вот -k - игнорирует ошибки проверки TLS, если сертификат был самоподписанный или просроченный И у wget, и у curl есть одинаковая опция по ограничению скорости загрузки через ключ --limit-rate 10M. Суффиксы k, M, G обозначают килобайты, мегабайты, гигабайты. ...

02/04/2023 · vikngr

Увеличение размеров виртуальных дисков

Работая с виртуальными машинами приходится периодически увеличивать размер диска, когда места становится слишком мало. Сейчас широко используются разметки дисков с помощью дополнительного слоя абстракции LVM. Рекомендую использовать именно его, при разворачивании новой виртуалки, с LVM жизнь становится проще, так же можно и шифровать данные при необходимости. Рассмотрим 3 варианта увеличения размеров диска Диск с разметкой без LVM Разметка с LVM Разметка с LVM + LUKS (dm-crypt) - это когда данные на диске зашифрованы с помощью пароля Со всеми тремя случаями мне приходилось сталкиваться на практике, и обычно потребность увеличения пространства встает тогда, когда мониторинг предупреждает, что место на диске уже заканчивается. ...

02/04/2023 · vikngr

Работа с дисками и разделами в системах Linux

Администрируя Unix системы, приходится работать с дисками (физическими или виртуальными) и их разделами. Я хочу описать список программ, которые позволяют получить необходимую информацию для работы, думаю данная заметка будет полезна новичкам и просто интересующимся. hwinfo - данной программой можно получить максимальную информацию о физических носителях. Например, ID, букву диска (Device file) в системе, вендор, модель, объем носителя, количество байт, может так же показать принадлежность носителя к рейд массиву и т.д. Чтобы, отфильтровать информацию только о дисках нужно ввести ...

31/03/2023 · vikngr

iRedMail установка и настройка

Полноценный почтовый сервер с iRedMail на Ubuntu 22.04 В связи с тем, что Яндекс прекращает поддержку бесплатных почтовых серверов на своих мощностях, системные администраторы сталкиваются с проблемой поднятия своего почтового сервера. Я лично столкнулся с этим и мне пришлось поднимать несколько почтовых серверов для рассылки писем клиентам и отдельную почту для корпоративного использования. Учитывая, что в инете была разная информация В место того, чтобы поднимать каждый компонент почтового сервиса по отдельности, было решено воспользоваться скриптом iRedMail. Который включает в себя: ...

14/03/2023 · vikngr

Отключение автообновления deb-пакетов в Ubuntu

Не так давно у меня произошло неконтролируемое обновление пакетов на Ubuntu сервере, что привело к падению одного из сервисов. Казалось бы, автообновление - это хорошо. Но иногда требуется контролировать некоторые узлы чуть более пристально Чтобы отключить автообновление, достаточно отредактировать файл /etc/apt/apt.conf.d/20auto-upgrades И увидим две строчки APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; Далее просто меняем значения с 1, на 0 и радуемся жизни А вот в файле /etc/apt/apt.conf.d/50unattended-upgrades Здесь можно выборочно закомментировать (добавив знак // перед строкой) определённые источники обновлений в секции: Unattended-Upgrade::Allowed-Origins ...

06/03/2023 · vikngr

Восстановление файлов в Linux

Рассмотрим такую ситуацию. У вас имеется файл, который был удален, его требуется восстановить. Есть вариант, восстановить файл когда он удерживается каким-либо процессом. Для примера создаем скрипт, который будет работать в фоне и удалим этот скрипт, чтобы попробовать его восстановить. #!/bin/bash sleep 30000 exit Дадим права на исполнение и запустим его chmod a+x script.sh && ./script.sh Теперь удаляем rm -f ./script.sh Теперь попробуем найти данный файл в процессах. Его можно найти через htop или вот такой командой lsof -c script.sh ...

03/02/2023 · vikngr