Supervisión del servidor híbrido Virtuozzo con Prometheus

Los usuarios de Virtuozzo y OpenVZ suelen trabajar con muchas máquinas implementadas que ejecutan nuestro software. Por tanto, es lógico que pongan en marcha una monitorización centralizada de toda la flota de dichos servidores. Y hoy le diremos cómo utilizar los servicios de monitoreo integrados de Virtuozzo Hybrid Infrastructure basados ​​en Prometheus para esto.





Hay servicios similares disponibles en VHS, pero solo si usa una interfaz gráfica para administrar su clúster de Virtuozzo Storage. Si no tiene un clúster de almacenamiento, o no usa la GUI para administrarlo (o trabaja con OpenVZ, donde conectar Virtuozzo Storage es un escenario posible, pero raro), entonces debe recurrir a soluciones de terceros para vigilancia.





( OpenVZ ) : Linux , Virtuozzo Zabbix Prometheus.





Prometheus – , .





Prometheus - VHS node_exporter ( , ) libvirt_exporter ( , libvirt). , Virtuozzo .





, Prometheus Grafana, – Alertmanager.





Prometheus, Grafana Alertmanager , . Virtuozzo Hybrid Server, VHS. , Virtuozzo Linux 8; :





# prlctl create promct --vmtype=ct --ostemplate=vzlinux-8-x86_64
# prlctl set promct --cpu 2
# prlctl set promct --memsize 2G
      
      



IP , .





:





# timedatectl set-timezone 'Europe/Moscow'



 





firewall – 9090 - Prometheus, 9093 AlertManager 3000 Grafana. , Prometheus Alertmanager , .





# firewall-cmd --zone=public --permanent --add-port=9090/tcp
# firewall-cmd --zone=public --permanent --add-port=9093/tcp
# firewall-cmd --zone=public --permanent --add-port=3000/tcp
# firewall-cmd --reload
      
      



Prometheus & co.

Prometheus , Virtuozzo Linux 8, :





# yum install prometheus







(, , - - ), GitHub /opt ( ). , 2.21.0:





# cd /opt
# wget https://github.com/prometheus/prometheus/releases/download/v2.21.0/prometheus-2.21.0.linux-amd64.tar.gz
# tar -xzf prometheus*.tar.gz

      
      



- ( ) service- systemd, :





 





# cat /lib/systemd/system/prometheus.service

[Unit]

Description=Prometheus

Wants=network-online.target

After=network-online.target

[Service]

Type=simple

WorkingDirectory=/opt/prometheus-2.21.0.linux-amd64

Restart=on-failure

ExecStart=/opt/prometheus-2.21.0.linux-amd64/prometheus

[Install]

WantedBy=multi-user.target
      
      



Alertmanager - :





# yum install alertmanager







 ... , service-:





# wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz

# cd /opt

# tar -xzf alertmanager*.tar.gz

# cat /usr/lib/systemd/system/alertmanager.service

[Unit]

Description=Alertmanager

Wants=network-online.target

After=network-online.target

After=prometheus.service

[Service]

Type=simple

WorkingDirectory=/root/alertmanager-0.21.0.linux-amd64

Restart=on-failure

ExecStart=/root/alertmanager-0.21.0.linux-amd64/alertmanager --config.file=alertmanager.yml

[Install]

WantedBy=multi-user.target
      
      



Grafana rpm-, , , :





# yum install grafana







  :





 # yum install https://dl.grafana.com/oss/release/grafana-7.1.5-1.x86_64.rpm







Virtuozzo Hybrid Server

  VHS, , :





 # yum install node_exporter libvirt_exporter







Prometheus, - 9177 libvirt_exporter 9100 node_exporter. Prometheus, :





# firewall-cmd --permanent --zone=public --add-rich-rule='

    rule family="ipv4"

    source address="1.2.3.4/32"

    port protocol="tcp" port="9177" accept'

# firewall-cmd --permanent --zone=public --add-rich-rule='

    rule family="ipv4"

    source address="1.2.3.4/32"

    port protocol="tcp" port="9100" accept'

# firewall-cmd --reload


      
      



"1.2.3.4" Prometheus.





, :





# systemctl enable node_exporter

# systemctl enable libvirt-exporter

# systemctl start node_exporter

# systemctl start libvirt-exporter
      
      



- , .





Prometheus

Prometheus Yaml-. , — . Virtuozzo, VHS 7 vz-prometheus-cfg . VHS 7, Prometheus VzLinux 8 — :





# yum install vz-prometheus-cfg







/usr/share/vz-prometheus-cfg/, prometheus-example.yml.





prometheus.yml , Prometheus. , – *rules.yml *alerts.yml, /usr/share/vz-prometheus-cfg/ Prometheus. , .





vz-rules, (, , ) ( - , ).





, , target-. (, node_exporter 9100, libvirt - 9177):





# cat my-vz-libvirt.yml

- labels:

    group: my-vz-deployment

  targets:

  - my.node1:9177

  - my.node2:9177

 

# cat my-vz-node.yml

- labels:

    group: my-vz-deployment

  targets:

  - my.node1:9100

  - my.node2:9100

 
      
      



scrape_configs prometheus.yml:





scrape_configs:

  ...

  - job_name: node

    ...

    file_sd_configs:

      - files:

        - /root/prometheus-2.21.0.linux-amd64/targets/my-vz-node.yml

  - job_name: libvirt

    ...

    file_sd_configs:

      - files:

        - /root/prometheus-2.21.0.linux-amd64/targets/my-vz-libvirt.yml

 


      
      



: https://docs.virtuozzo.com/virtuozzo_hybrid_server_7_users_guide/advanced-tasks/monitoring-via-prometheus.html. , job_name — . — .





- :





# systemctl start prometheus

# systemctl start alertmanager

# systemctl start grafana-server
      
      







Grafana Alertmanager

Grafana - http://<->:3000. - - "admin" / "admin".





- "Prometheus" , Configuration -> Data Sources -> "Add data source",   "Prometheus" http://localhost:9090 .





json-, vz-prometheus-cfg - grafana_hn_dashboard.json grafana_ve_dashboard.json - . "Dashboards" -> "Manage" -> "Import", Prometheus.





, , – Prometheus - , .





, Alertmanager – , - “ Virtuozzo” . , , email /etc/alertmanager/alertmanager.yaml:





route:    receiver: 'email' 

  group_by: ['alertname', 'cluster']    group_wait: 30s    group_interval: 5m    repeat_interval: 3h   receivers:  - name: 'email'    email_configs:    - to: 'admin@myserver.com'      from: 'vz-alert@myserver.com'      smarthost: smtp.myserver.com:587
      
      



« » — .





, Prometheus. , Virtuozzo . , , .








All Articles