Pythontr

husonet | Tarih: 29.01.2023

Grafana Kurulumu ve Sunucuların Monitör Edilmesi

Grafana ile sunucularınızı ve Nginx Loglarınızı çok rahat bir şekilde takip edebilirsiniz.

Grafana'nın yetenekleri oldukça fazla ve görselliği ile yeterince beyenilen ve bir çok veriyi tek bir noktadan takip etmemizi sağlayan açık kaynak kodlu bir uygulamadır. Kurulum için debian işletim sistemi tercih edeceğim.



Grafana Kurulumu

Arayüz ve pluginlerin yönetim için gerekli olan Grafana.


su -
mkdir grafana
cd grafana
wget https://dl.grafana.com/oss/release/grafana_9.3.6_amd64.deb
dpkg -i grafana_9.3.6_amd64.deb
systemctl status grafana-server.service


Grafana Konfig Dosyası
vim /etc/grafana/grafana.ini
[server]
protocol = http
http_addr = 127.0.0.1
http_port = 3000
domain = 127.0.0.1
root_url = http://127.0.0.1:3000

[security]
admin_user = admin
admin_password = admin
secret_key = xxxxx


Prometheus Kurulumu

Anlık akışları grafana için köprü kurmasına yardımcı olacak.


su -
mkdir grafana/prometheus
cd grafana/prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.42.0-rc.0/prometheus-2.42.0-rc.0.linux-amd64.tar.gz
tar xzvf prometheus-2.42.0-rc.0.linux-amd64.tar.gz
cd prometheus-2.42.0-rc.0.linux-amd64/


Prometheus Konfig Dosyası
vim prometheus.yml
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

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: node
static_configs:
- targets: ['localhost:9100']


Çalıştırmak İçin
./prometheus --config.file=prometheus.yml


Servis dosyasını oluşturlalım.
vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/root/Download/grafana/prometheus/prometheus-2.42.0-rc.0.linux-amd64/prometheus --config.file=/root/Download/grafana/prometheus/prometheus-2.42.0-rc.0.linux-amd64/prometheus.yml

Restart=always

[Install]
WantedBy=multi-user.target

systemctl status prometheus.service


Node Exporter Kurulumu

Sunucumuzun bilgilerini izlememizi sağlayacak CPU, MEM vb...


su -
mkdir grafana/node_exporter
cd grafana/node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.5.0.linux-amd64.tar.gz
cd node_exporter-1.5.0.linux-amd64/
./node_exporter


Servisimiz kuralım
vim /etc/systemd/system/node-exporter.service
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/root/Download/grafana/node_exporter/node_exporter-1.5.0.linux-amd64/node_exporter

Restart=always

[Install]
WantedBy=multi-user.target


Nginx ve benzeri logların monitöring edilmesi gerekli olan servisler LOKI, PROMTAIL


Promtail Kurulumu
su -
mkdir grafana/promtail
cd grafana/promtail
wget https://github.com/grafana/loki/releases/download/v2.7.2/promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip


Promtail Config Dosyası
vim promtail-config.yml
server:
http_listen_port: 9080
grpc_listen_port: 0

positions:
filename: /tmp/positions.yaml

clients:
- url: http://127.0.0.1:3100/loki/api/v1/push

scrape_configs:

- job_name: local
static_configs:
- targets:
- 127.0.0.1
labels:
job: varlogs
__path__: /var/log/nginx/*log


Çalıştırmak İçin
./promtail-linux-amd64 -config.file=promtail-config.yml


Servis dosyası
vim /etc/systemd/system/promtail.service
[Unit]
Description=Promtail Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/root/Download/grafana/promtail/promtail-linux-amd64 --config.file=/root/Download/grafana/promtail/promtail-config.yml

Restart=always

[Install]
WantedBy=multi-user.target

systemctl start promtail
systemctl enable promtail


Loki Kurulumu
su -
mkdir grafana/loki
cd grafana/loki
curl -O -L "https://github.com/grafana/loki/releases/download/v2.7.2/loki-linux-amd64.zip"
unzip "loki-linux-amd64.zip"
chmod a+x "loki-linux-amd64"
cd loki-linux-amd64


Loki Config Doyası
vim loki-config.yml
auth_enabled: false

server:
http_listen_port: 3100
grpc_listen_port: 9096

common:
path_prefix: /tmp/loki
storage:
filesystem:
chunks_directory: /tmp/loki/chunks
rules_directory: /tmp/loki/rules
replication_factor: 1
ring:
instance_addr: 127.0.0.1
kvstore:
store: inmemory

schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h

ruler:
alertmanager_url: http://localhost:9093

Şimdi çalıştırabiliriz.


./loki-linux-amd64 -config.file=loki-config.yml


Loki Servis dosyası
vim /etc/systemd/system/loki.service
[Unit]
Description=Loki Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/root/Download/grafana/loki-linux-amd64 --config.file=/root/Download/grafana/loki-config.yml

Restart=always

[Install]
WantedBy=multi-user.target


systemctl start loki

Sertifika sürelerini takip etmek isteyebiliriz.
su -
mkdir grafana/node-cert-exporter
cd grafana/node-cert-exporter
wget https://github.com/amimof/node-cert-exporter/releases/latest/download/node-cert-exporter-linux-amd64
chmod u+x node-cert-exporter-linux-amd64
./node-cert-exporter-linux-amd64 --include-glob /etc/letsencrypt/live/*/*.pem


Servise çevirelim.
vim /etc/systemd/system/node-cert-exporter.service
[Unit]
Description=Node-Cert Exporter
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/root/Download/grafana/node-cert-exporter/node-cert-exporter-linux-amd64 --include-glob /etc/letsencrypt/live/*/*.pem

Restart=always

[Install]
WantedBy=multi-user.target


Servisimizi aktif edelim.
systemctl start node-cert-exporter
systemctl enable node-cert-exporter