-
Notifications
You must be signed in to change notification settings - Fork 0
Monitoring
Vladislav Kuznecov edited this page Sep 30, 2021
·
7 revisions
Для мониторинга используется Prometheus + Grafana
Установка Prometheus Node Exporter:
sudo useradd --no-create-home --shell /bin/false node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar -xvzf node_exporter-1.2.2.linux-amd64.tar.gz
sudo cp node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/
rm tar -xvzf node_exporter-1.2.2.linux-amd64.tar.gz
rm tar -xvzf node_exporter-1.2.2.linux-amd64
sudo ufw allow 9100/tcp
sudo mkdir /etc/node_exporter
Вот тут sudo vim /etc/node_exporter/web.yml
basic_auth_users:
dusic: bcryptedpassword
Вот тут: sudo vim /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
ExecStart=/usr/local/bin/node_exporter --web.config=/etc/node_exporter/web.yml
[Install]
WantedBy=default.target
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
wget https://github.com/martin-helmich/prometheus-nginxlog-exporter/releases/download/v1.9.0/prometheus-nginxlog-exporter_1.9.0_linux_amd64.debsudo apt install ./prometheus-nginxlog-exporter_1.9.0_linux_amd64.debrm prometheus-nginxlog-exporter_1.9.0_linux_amd64.debsudo chmod 644 /var/log/nginx/access.log- Вот тут:
sudo vim /etc/logrotate.d/nginxпоменять разрешения новых log файлов на 644 -
sudo systemctl status prometheus-nginxlog-exporter- проверяем экспортер -
sudo ufw allow from 0.0.0.0 to any port 4040 proto tcp- разрешаем серверу с Prometheus доступ к нужному порту (тут надо подставить нужный IP)
sudo useradd --no-create-home --shell /bin/false prometheuswget https://github.com/prometheus/prometheus/releases/download/v2.30.0/prometheus-2.30.0.linux-amd64.tar.gztar -xvzf prometheus-2.30.0.linux-amd64.tar.gzsudo cp prometheus-2.30.0.linux-amd64/prometheus /usr/local/bin/sudo cp prometheus-2.30.0.linux-amd64/promtool /usr/local/bin/sudo mkdir /etc/prometheussudo cp -r prometheus-2.30.0.linux-amd64/consoles/ /etc/prometheus/consolessudo cp -r prometheus-2.30.0.linux-amd64/console_libraries/ /etc/prometheus/console_librariessudo chown -R prometheus:prometheus /etc/prometheussudo mkdir /var/lib/prometheussudo chown prometheus:prometheus /var/lib/prometheusrm -rf prometheus-2.30.0.linux-amd64rm prometheus-2.30.0.linux-amd64.tar.gz
Вот тут sudo vim /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "client-canary"
basic_auth:
username: "dusic"
password: "overComplicatedPassword"
static_configs:
- targets: ["0.0.0.0:9100"] # Setup correct IP and port
# ...
- job_name: "backend-nginx"
static_configs:
- targets: ["0.0.0.0:4040"] # Setup correct IP and port
Вот тут sudo vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=default.target
Запуск демона:
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_8.1.5_amd64.deb
sudo dpkg -i grafana_8.1.5_amd64.deb
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo ufw allow 3000/tcp
Дополнить следующим образом:
# ...
[server]
domain = dusic.fizvlad.com
root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana/
serve_from_sub_path = true
# ...
Рестарт сервера: sudo systemctl restart grafana-server
Если Nginx настроен правильно, то настройка идёт через интерфейс на /grafana