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