Sunucu ajanı ve kontrol noktası
Sunucularınızın CPU, RAM, disk ve ağ ölçümlerini toplayan ajanı ve monitörleri başka konumlardan kontrol eden kontrol noktasını kurun, güncelleyin ve kaldırın.
Bu sayfada
Bekci'nin programı başka sunucularda iki ayrı görevle çalışabilir. İkisi panelde ayrı kayıtlardır ve birbirinin ekranında görünmez:
| Sunucu ajanı | Kontrol noktası | |
|---|---|---|
| Ne yapar? | Kurulduğu sunucunun CPU, RAM, disk, ağ, sıcaklık ve Docker konteyner ölçümlerini dakikada bir gönderir | Kendisine atanan monitörleri kendi konumundan kontrol eder ve sonuçları gönderir |
| Panelde | Sunucular → Sunucu ekle | Ayarlar → Kontrol noktaları → Yeni kontrol noktası |
| Kurulum yolları | Docker, Linux (systemd), Windows | Docker |
| Desteklenen sistemler | Linux amd64 ve arm64, Windows amd64 | Linux amd64 ve arm64 |
Ajan veritabanı kullanmaz. Ana sunucuya (Bekci panelinize) ulaşamazsa sonuçları bekletir ve bağlantı gelince gönderir.
Başlamadan önce#
BASE_URLdoğru olmalı. Kurulum komutu, ajanın bağlanacağı adresiBASE_URL'den alır. Panelhttps://bekci.ornek.comadresindeyseBASE_URLde bu olmalı (nasıl ayarlanır).- HTTPS önerilir. Ajan varsayılan olarak şifrelenmemiş (
http://) adrese bağlanmaz; panelhttp://ise kurulum komutu bu izni (PROBE_ALLOW_INSECURE=1) kendisi ekler, ama token ağda şifresiz gider. - Ajanın kurulacağı sunucu, panelinizin adresine erişebilmeli (giden HTTPS bağlantısı yeterli; ajan için gelen port açmanız gerekmez).
Sunucu ajanını kurun#
- Panelde Sunucular sayfasında Sunucu ekle düğmesine basın.
- Sunucu adı alanına listede ve bildirimlerde görünecek bir ad yazın (ör. “Web sunucusu İstanbul”) ve Oluştur düğmesine basın.
- Kurulum yöntemi olarak Docker, Doğrudan (systemd) ya da Windows sekmesini seçin ve komutu kopyalayın.
- Komutu izlemek istediğiniz sunucuda aşağıdaki gibi çalıştırın.
Docker
Docker kurulu Linux sunucular için. Komut çok satırlıdır ve sh <<'UPTIME_KURULUM' satırıyla başlar. Terminale root olarak bağlanıp komutun tamamını yapıştırın. Root değilseniz komutun ilk satırını sudo sh <<'UPTIME_KURULUM' olarak değiştirin.
Komut şunları yapar:
/etc/uptime-agent.envdosyasını yalnızca root'un okuyabileceği izinle (600) oluşturur ve token'ı buraya yazar. Token hiçbir komut satırında (psçıktısında) görünmez.uptime-agentadlı bir konteyner başlatır. Konteyner sunucunun disklerini ve/proc,/sysbilgilerini salt okunur görür, tüm Linux yetkileri düşürülmüştür, bellek 256 MB ile sınırlıdır.- Programı bir kez indirir, komuttaki SHA-256 özetiyle doğrular ve
uptime-agent-binbiriminde saklar.
Linux (systemd)
Docker kullanmayan Linux sunucular için (Doğrudan (systemd) sekmesi). Terminale root olarak bağlanıp komutun tamamını yapıştırın; root değilseniz ilk satırı sudo sh <<'UPTIME_KURULUM' yapın.
Komut şunları yapar:
- Sunucunun mimarisine uygun programı (
x86_64ya daaarch64) indirir, SHA-256 ile doğrular ve/usr/local/bin/uptimeolarak kaydeder. - Token'ı
/etc/uptime-agent.envdosyasına yalnızca root'un okuyabileceği izinle yazar. uptime-agentadında bir systemd hizmeti (/etc/systemd/system/uptime-agent.service) oluşturur, açılışta başlayacak şekilde etkinleştirir ve başlatır.
Windows
Windows sunucular için (Windows amd64).
- Başlat menüsünde PowerShell'i arayın, sağ tıklayıp Yönetici olarak çalıştır'ı seçin.
- Paneldeki Windows sekmesinden kopyaladığınız tek satırlık komutu yapıştırıp Enter'a basın.
Komut şunları yapar:
- Programı indirir, SHA-256 ile doğrular ve
C:\Program Files\Uptime\uptime.exeolarak kurar. - Token'ı
C:\Program Files\Uptime\agent.envdosyasına yazar. Bu klasöre yalnızca SYSTEM ve Administrators erişebilir. uptime-agentadında, Windows açılınca otomatik başlayan ve hata olursa kendini yeniden başlatan bir hizmet kurar.
Windows'ta yük ortalaması yaklaşık bir değerdir (işlemci kuyruğundan hesaplanır); sıcaklık ve Docker konteynerleri toplanmaz.
Kontrol noktası kurun#
Kontrol noktası, monitörlerinizi başka bir şehirden ya da ağdan da kontrol eder. Böylece bir kesintinin yalnızca bir konumdan mı yoksa her yerden mi görüldüğünü anlarsınız.
- Ayarlar → Kontrol noktaları bölümünde Yeni kontrol noktası düğmesine basın.
- Konumu anlatan kısa bir ad verin (ör. “Frankfurt”) ve kaydedin.
- Gösterilen komutu, kontrol noktası olacak sunucuda (Docker kurulu olmalı) root olarak, tamamını yapıştırarak çalıştırın. Komut
/etc/uptime-probe.envdosyasını veuptime-probeadlı konteyneri oluşturur. - Kopyaladım, kapat ile pencereyi kapatın.
- Bir monitörün düzenleme sayfasında Konumlar bölümünden bu kontrol noktasını seçin ve Kesinti kuralını belirleyin: herhangi bir konum, konumların çoğunluğu ya da tüm konumlar çalışmıyorsa.
Kurulumun oluşturduğu dosyalar#
| Kurulum | Program | Token (ayar dosyası) | Hizmet / konteyner |
|---|---|---|---|
| Sunucu ajanı, Docker | uptime-agent-bin birimi | /etc/uptime-agent.env | uptime-agent konteyneri |
| Sunucu ajanı, systemd | /usr/local/bin/uptime | /etc/uptime-agent.env | uptime-agent hizmeti |
| Sunucu ajanı, Windows | C:\Program Files\Uptime\uptime.exe | C:\Program Files\Uptime\agent.env | uptime-agent hizmeti |
| Kontrol noktası, Docker | uptime-probe-bin birimi | /etc/uptime-probe.env | uptime-probe konteyneri |
Güncelleme#
Ajan kendini güncellemez: program bir kez indirilir, doğrulanır ve sonraki yeniden başlatmalarda aynı program kullanılır. Böylece panelinizin bulunduğu sunucu ele geçirilse bile sunucularınıza kendiliğinden yeni bir program inmez. Bekci'yi güncelledikten sonra ajanları da güncellemek için:
Panelden güncel kurulum komutunu alın. Token yalnızca bir kez gösterildiği için bu, token'ı yeniler (eski token hemen geçersiz olur):
- Sunucu ajanı: sunucunun sayfasında Kurulum komutu → Token’ı yenile ve komutu göster.
- Kontrol noktası: Ayarlar → Kontrol noktaları listesinde satırın menüsünden Token’ı yenile.
Docker kurulumlarında önce eskisini kaldırın:
terminaldocker rm -f uptime-agent; docker volume rm uptime-agent-bin # sunucu ajanı docker rm -f uptime-probe; docker volume rm uptime-probe-bin # kontrol noktasıYeni komutu çalıştırın. systemd ve Windows kurulumlarında eskisini kaldırmanız gerekmez; komut programı ve hizmeti yeniler.
Kaldırma#
Önce panelden sunucuyu ya da kontrol noktasını silin (token geçersiz olur). Sonra ajanın kurulu olduğu sunucuda:
Docker — sunucu ajanı
docker rm -f uptime-agent
docker volume rm uptime-agent-bin
rm -f /etc/uptime-agent.envDocker — kontrol noktası
docker rm -f uptime-probe
docker volume rm uptime-probe-bin
rm -f /etc/uptime-probe.envLinux (systemd)
systemctl disable --now uptime-agent
rm -f /etc/systemd/system/uptime-agent.service /usr/local/bin/uptime /etc/uptime-agent.env
systemctl daemon-reloadWindows
Yönetici olarak açılmış PowerShell'de:
& "$env:ProgramFiles\Uptime\uptime.exe" service uninstall
Remove-Item -Recurse -Force "$env:ProgramFiles\Uptime"İlk satır hizmeti durdurup siler, ayar dosyasını (token) ve Olay Günlüğü kaynağını kaldırır; ikinci satır programı ve günlükleri siler.
IP kilidi#
Yeni ajanlarda IP'ye kilitle seçeneği varsayılan olarak açıktır: ajanın ilk bağlandığı IP adresi kaydedilir (IPv4'te tam adres, IPv6'da /64 blok) ve bundan sonra başka bir adresten gelen istekler reddedilir. Token çalınsa bile başka bir makineden kullanılamaz.
Sunucunun IP adresi değişirse (ör. sunucuyu taşıdınız) kilidi sıfırlayın; bir sonraki bağlantı yeni adresi kaydeder:
- Sunucu ajanı: sunucunun sayfasında Ayarlar → Kilidi sıfırla.
- Kontrol noktası: Ayarlar → Kontrol noktaları listesinde satırın menüsünden Düzenle → Kilidi sıfırla.
Kilidi aynı yerden tamamen kapatabilirsiniz (IP'ye kilitle anahtarı). Token'ın sızdığından şüpheleniyorsanız token'ı yenileyip kurulum komutunu yeniden çalıştırın (güncelleme adımları).
Sorun giderme#
Günlükler: Docker'da docker logs uptime-agent (kontrol noktası için uptime-probe), systemd'de journalctl -u uptime-agent, Windows'ta C:\Program Files\Uptime\agent.log.
| Günlükte ya da panelde gördüğünüz | Nedeni ve çözümü |
|---|---|
ana sunucu isteği reddetti: ajan devre dışı veya başka bir IP'ye kilitli (durum 403) | Sunucunun IP'si değişti ya da ajan panelde devre dışı. IP kilidini sıfırlayın ya da ajanı yeniden etkinleştirin. |
ana sunucu token'ı reddetti (durum 401) | Token geçersiz (sunucu silindi ya da token yenilendi). Panelden yeni komut alıp çalıştırın. |
Program özeti uyuşmuyor: kurulum komutunu panelden yenileyin | Komut eski bir sürümden kalma; Bekci güncellenmiş. Panelden güncel komutu alın; Docker'da önce konteyneri ve birimi silin (güncelleme). |
| Panelde “Ajan host metriklerini okuyamıyor” | Ajan Docker'da, sunucunun /proc ve /sys bağlamaları olmadan çalışıyor. Komutu panelden olduğu gibi, eksiksiz kullanın. |
PROBE_SERVER https olmalı; şifrelenmemiş http için PROBE_ALLOW_INSECURE=1 gerekir | Panel http:// adresinde. Paneli HTTPS arkasına alın ya da ayar dosyasına PROBE_ALLOW_INSECURE=1 ekleyin. |
ana sunucuya ulaşılamıyor, tekrar denenecek | Ajan panelin adresine erişemiyor. BASE_URL'i, DNS'i ve ajanın sunucusundan dışarı çıkan bağlantıları kontrol edin (ör. curl -sI https://bekci.ornek.com/healthz). |
| Panelde “Docker bulunamadı veya ajan Docker soketine erişemiyor” | Konteyner bilgisi toplanmaz; Docker yoksa bu normaldir. Docker varsa komuttaki /var/run/docker.sock bağlamasının yerinde olduğundan emin olun. |
Bu sayfada eksik ya da hatalı bir şey mi var? GitHub’da bildirin ya da yazın: [email protected]