DEV Community

Enes Baytekin for Açıklab

Posted on

SysMonitor

SysMonitor, netex üzerinde izleme yapabilmek için geliştirilmiş bir araçtır.
Çalışması için iki farklı pakete ihtiyaç var:

  • sysmonitor
  • sysmonitor-worker

Bunlar server-client mantığı ile çalışır.
Sysmonitor bir makine'ye kurulur ve netex veritabanı ile haberleşir.
Worker ise asıl izlemeyi yaparak sysmonitor ile haberleşir.
Böylece izlenen veriler netex db'sinde tutulur.

Kurulum

Sysmonitor kullanabilmek için öncelikle bir netex ortamının bulunması gerekir.
Netex, sysmonitor ve sysmonitor-worker paketleri aynı makinede de olabilir veya farklı makinelerde de bulunabilir.

Sysmonitor Kurulumu

Bir makineye sysmonitor paketi kurulur. Environment değişkeni olarak netex db bilgileri verilir.

apt install ./sysmonitor-24-x64.deb
Enter fullscreen mode Exit fullscreen mode

/opt/sysmonitor/.env örneği:

DB_DRIVER=postgres
DB_HOST=127.0.0.1
DB_NAME=netex
DB_PASS=password
DB_PORT=5432
DB_USER=netex
Enter fullscreen mode Exit fullscreen mode

NOT: Netex veritabanı başka bir makinedeyse, sysmon'un buna erişebilmesi için netex db'sinin dışarıdan erişime açılması gerekir. pg_hba.conf ve postgresql.conf dosyaları kontrol edilebilir.

Kurulum sonrasında şu servislerin çalışıyor olması gerekir:

  • sysmonitor@admin
  • sysmonitor@client
  • sysmonitor@admintest

NOT: Sysmon api'sine istek atmak için 6520 portu kullanılır, eğer bu port açılmamışsa sysmonitor@admintest servisi başlatılmalıdır.

Port kontrol için:

ss -tlnp | grep 6520
Enter fullscreen mode Exit fullscreen mode

Servisi başlatmak için:

systemctl enable --now sysmonitor@admintest
Enter fullscreen mode Exit fullscreen mode

Sysmonitor Worker Kurulumu

Sensor'ler, worker'lar üzerinde çalıştığı için en az bir tane worker kurulup sysmon'a bağlanması gerekir.
Bir makineye sysmonitor-worker paketi kurulur. Environment değişkeni olarak sysmonitor makinesinin adresi verilir.

apt install ./sysmonitor-worker-setup-x64.deb
Enter fullscreen mode Exit fullscreen mode

Kurulum sırasında server adresi istendiğinde https://<sysmonitor-ip>:6521 şeklinde girilir.
Daha sonradan .env dosyası düzenlenerek de değiştirilebilir.

/opt/sysmonitor-worker/.env örneği:

SERVER_URL=https://127.0.0.1:6521
FETCH_INTERVAL=3600
Enter fullscreen mode Exit fullscreen mode

Nasıl çalışır?

Öncelikle bir template oluşturulur.
Bu template içinde, izlenilmesi istenen metrikler belirtilir.
Bir template içinde aynı türde birden fazla metrik izlenebilir.

Bu template'ı kullanan bir sensor oluşturulur.
Aynı template birden fazla sensor ile tekrar tekrar kullanılabilir.
Her sensor aynı zamanda bir varlığa bağlıdır ve bu varlığın o template'ta belirtilen metriklerini izler.

Sensor'ler worker'lar üzerinde çalışır.
İzlenen metrik değerleri sysmon'a gönderilir ve sysmon netex db'sine kaydeder.

Daha sonra bu metrikler db'den okunarak izlenebilir.

Birden fazla worker kurulabilir.
Her bir sensor için hangi worker üzerinde çalışacağı belirtilir.

Yani özetle;

  • Metrik, izlenecek değeri belirtir.
  • Template, hangi metriklerin izleneceğini belirten kuraldır.
  • Sensor, asıl izlemeyi yapandır.
  • Sysmonitor Worker, izlemenin nerede yapılacağıdır.
  • Sysmonitor, sensor ve netex db arasındaki bağlantıyı sağlayan backend server'dır.

                                        .---------.
.-----------.        .---------.        |         |
| Template1 |--------| Sensor1 |--------| Varlık1 |
|           |        '---------'        |         |
| -metrik1  |        .---------.        '---------'
| -metrik2  |--------| Sensor2 |----.
'-----------'        '---------'    |   .---------.
                                    '---|         |
.-----------.        .---------.        | Varlık2 |
| Template2 |--------| Sensor3 |--------|         |
|           |        '---------'        '---------'
| -metrik3  |
'-----------'
Enter fullscreen mode Exit fullscreen mode

Bu örnekte;

  • Varlık1'in metrik1 ve metrik2 değerleri
  • Varlık2'nin metrik1, metrik2 ve metrik3 değerleri

izlenir.

Top comments (0)