Pengguna Virtuozzo dan OpenVZ biasanya bekerja dengan banyak mesin yang digunakan yang menjalankan perangkat lunak kami. Oleh karena itu, logis bagi mereka untuk meluncurkan pemantauan terpusat dari seluruh armada server tersebut. Dan hari ini kami akan memberi tahu Anda cara menggunakan layanan pemantauan bawaan dari Virtuozzo Hybrid Infrastructure berdasarkan Prometheus untuk ini.
VHS, Virtuozzo Storage. Storage, GUI ( OpenVZ, Virtuozzo Storage , ), .
( 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 . , , .