Netdata ile linux serverınızın durumuna canlı olarak ayrıntılı bir şekilde bakabilirsiniz. Basit ve kullanışlı bir program. Ayrıca docker desteğide var. Container'ların ne kadar internet,ram,cpu kullandığına bakabilirsiniz.
Tek bir kod ile kurulabiliyor fakat güvenli şekilde uzaktan erişim için bazı işlemler yapmamız gerekiyor. Bunun için 2 yol anlatacam.
Netdata kurmak için aşağıdaki kodu çalıştırmamız yeterli.
bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh)
Firewall ile sadece kendi ip adresimize izin vererek
Netdata varsayılan olarak 19999 portunda çalışıyor. Bu porta sadece kendi ipmiz üzerinden bağlantılara izin vererek güvenliği sağlıyacaz. Bunun için çalışan bir firewall olması gerekiyor aksi halde herkes bu adrese ulaşabilir.
UFW ile izin vermek için;
ufw allow from ipadresin to any port 19999
Iptables ile izin vermek için;
iptables -A INPUT -p tcp -s ipadresin --dport 19999 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Bu şekilde ip adresiniz ile bağlanabilirsiniz fakat static ip adresiniz yoksa ip adresiniz her değiştiğinde bunu tekrar yapmanız gerekir. Bunun yerine /docker-ile-openvpn-socks-ve-http-proxy-kurulumu/ bu konuda anlattığım şekilde vpn veya proxy ile bağlanarak yapabilirsiniz. Docker farklı bir network arayüzü kullandığı için bu ip adreslerine izin vermeniz gerekiyor. Bu ip adresleri değişmediği için bu işlemleri tekrar tekrar yapmanıza gerek yok.
Docker varsayılan olarak 172.17.0.0/16 ip adresi aralığını kullandığı için bu ip adresine izin vermemiz gerekiyor.
UFW ile izin vermek için;
ufw allow from 172.17.0.0/16 to any port 19999
Iptables ile izin vermek için;
iptables -A INPUT -p tcp -s 172.17.0.0/16 --dport 19999 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Bunları yaptıktan ve sunucuya vpn veya proxy ile bağlandıktan sonra serverip:19999 adresine girerek görüntüleyebilirsiniz.
Nginx ile reverse-proxy yaparak görüntüleme
Nginx ile proxy yaparak ve /nginx-siteye-sifre-ile-giris-ekleme/ burada anlattığım gibi kullanıcı adı ve şifre ekleyerek güvenli bir şekilde bağlanabiliriz.
Nginx için örnek ayarlar;
server {
listen 80;
server_name test.ekremparlak.com;
location / {
proxy_pass http://127.0.0.1:19999;
auth_basic "Restricted";
auth_basic_user_file /config/nginx/.sifreler;
}
}
Sunucuda aktif bir firewall yoksa Netdata'yı sadece localhost üzerinden çalıştırmamız gerekiyor. Bu sayede port ile uzaktan erişimi kapatmış olacaz.
/opt/netdata/netdata-configs/netdata.conf dosyasını düzenleyerek
[web]
bind to = 127.0.0.1
ekliyoruz.
systemctl restart netdata
komutuyla da netdata servisini yeniden başlatıyoruz. Bunları yaptıktan sonra Netdata sadece localhost üzerinden dinleyecek ve nginx ile'de dışarıya açılacak.