Загрузка данных


INFRA-SRV3:

    Для перехода в суперпользователя используем команду: sudo su -
    Установить Docker и Docker Compose можно следующим образом:

apt-get update && apt-get install -y docker-engine docker-compose-v2

    Включаем и добавляем в авторзагрузку службу docker:

systemctl enable --now docker.service 

    Создадим каталог для хранения файлов связанных с системой мониторинга:

mkdir monitoring && cd monitoring

     Создаём файл compose.yml и описываем стек контейнеров и параметры необходимые для запуска:

cat <<EOF > compose.yml
services:
  prometheus:
    image: prom/prometheus:v3.9.0
    restart: always
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheusdata:/prometheus

  grafana:
    image: grafana/grafana:main
    restart: always
    container_name: grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=P@ssw0rd
    volumes:
      - ./grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
      - grafanadata:/var/lib/grafana

volumes:
  grafanadata:
  prometheusdata:
EOF

     Создаём файл prometheus.yml и описываем настройки для Prometheus:

cat <<EOF > prometheus.yml
global:
 scrape_interval: 5s
 evaluation_interval: 5s
scrape_configs:
  - job_name: "node"
    static_configs:
      - targets:
        - infra-srv1.au-team.cloud:9100
        - infra-srv2.au-team.cloud:9100
        - infra-srv3.au-team.cloud:9100
        labels:
          target_type: production
      - targets:
          - k8s-srv1.au-team.cloud:9100
          - k8s-srv2.au-team.cloud:9100
          - k8s-srv3.au-team.cloud:9100
          - k8s-srv4.au-team.cloud:9100
          - k8s-srv5.au-team.cloud:9100
        labels:
          target_type: staging
EOF

     Создаём директорию для хранения данных grafana:

mkdir grafana

    Создаём файл grafana/datasources.yaml и описываем  настройки для Grafana:

cat <<EOF > grafana/datasources.yaml
apiVersion: 1

datasources:
  - name: Prometheus
    type: prometheus
    access: proxy
    url: http://prometheus:9090
    isDefault: true
    editable: true
EOF

    Запуск с помощью Docker Compose выглядит следующим образом:

docker compose up -d

         должно получиться следующее:

    Проверить что контейнеры запустились можно следующим образом:

 
ADM-PC:

    Чтобы не устанавливать вручную паке prometheus-node_exporter:
        так как у нас есть 2 инвентаря
        напишем простенький playbook, например: playbook3_prometheus-node_exporter.yml

cat <<EOF > playbook3_prometheus-node_exporter.yml
---
- name: Installing and launching prometheus-node_exporter
  hosts: all
  become: true

  tasks:
    - name: Install package prometheus-node_exporter
      community.general.apt_rpm:
        name: prometheus-node_exporter
        state: present
        update_cache: true
    
    - name: Started and enabled prometheus-node_exporter
      ansible.builtin.systemd:
        name: prometheus-node_exporter
        state: started
        enabled: true
EOF

    Запускаем данный playbook для двух окружений:

ansible-playbook -i inventories/staging/hosts playbook3_prometheus-node_exporter.yml

ansible-playbook -i inventories/production/hosts playbook3_prometheus-node_exporter.yml

        должно получиться следующее:

    Можно проверить доступность хостов по http://infra-srv3.au-team.cloud:9090/targets:

    Переходим по http://infra-srv3.au-team.cloud:3000
        и выполняем вход из-под пользователя: admin, с паролем: P@ssw0rd

    Импортируем Dashboard с идентификатором 1860 (NodeExporter Full):

    В результате должно появиться следующее:

    Доступность всех хостов: