Ayrı Postanalytics Modülü Kurulumu¶
Wallarm'ın istek işleme sürecinde, istatistiksel istek analizine yönelik postanalytics aşaması da dahil olmak üzere iki aşama yer alır. Postanalytics bellek yoğun bir işlemdir, bu nedenle optimize edilmiş performans için ayrı bir sunucuda gerçekleştirilmesi gerekebilir. Bu makale, postanalytics modülünün ayrı bir sunucuya nasıl kurulacağını açıklar.
Genel Bakış¶
Wallarm düğümündeki istek işleme süreci iki aşamadan oluşur:
-
NGINX-Wallarm modülündeki temel işleme; bu aşama bellek açısından yoğun değildir ve sunucu gereksinimlerini değiştirmeden ön uç sunucularında çalıştırılabilir.
-
İşlenen isteklerin istatistiksel analizi, bellek yoğun olan postanalytics modülünde yapılır.
Aşağıdaki şemalar, modül etkileşimini aynı sunucuda ve farklı sunucularda kurulum senaryolarıyla göstermektedir.
Gereksinimler¶
-
Access to the account with the Administrator role in Wallarm Console for the US Cloud or EU Cloud
-
Executing all commands as a superuser (e.g.
root
) -
Access to
https://meganode.wallarm.com
to download all-in-one Wallarm installer. Ensure the access is not blocked by a firewall -
Access to
https://us1.api.wallarm.com
if working with US Wallarm Cloud or tohttps://api.wallarm.com
if working with EU Wallarm Cloud. If access can be configured only via the proxy server, then use the instructions -
Installed text editor vim, nano, or any other. In the commands in this article, vim is used
Adım 1: all-in-one Wallarm Kurulum Paketini İndirin¶
Tüm bileşenleri içeren Wallarm kurulum betiğini indirmek için aşağıdaki komutu çalıştırın:
Adım 2: Wallarm Token'ını Hazırlayın¶
Düğüm kurulumunu gerçekleştirmek için uygun tipteki bir Wallarm token'ına ihtiyacınız vardır. Bir token hazırlamak için:
Adım 3: all-in-one Wallarm Kurulum Paketini Çalıştırarak Postanalytics'i Kurun¶
Postanalytics'i all-in-one kurulum betiği ile ayrı olarak kurmak için şu komutu kullanın:
# x86_64 sürümünü kullanıyorsanız:
sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-5.3.0.x86_64-glibc.sh postanalytics
# ARM64 sürümünü kullanıyorsanız:
sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-5.3.0.aarch64-glibc.sh postanalytics
WALLARM_LABELS
değişkeni, düğümün eklenmesi gereken grubu belirler (Wallarm Console arayüzünde düğümlerin mantıksal gruplandırması için kullanılır).
Adım 4: Postanalytics Modülünü Yapılandırın¶
Kaynaklar ve Bellek¶
Tarantool'un ne kadar bellek kullanacağını değiştirmek için, /opt/wallarm/env.list
dosyasında SLAB_ALLOC_ARENA
ayarını arayın. Bu ayar varsayılan olarak 1 GB kullanacak şekilde belirlenmiştir. Bu değeri değiştirmek gerekiyorsa, Tarantool'un ihtiyaç duyduğu bellek miktarına göre ayarlayabilirsiniz. Ne kadar bellek ayarlanacağına ilişkin yardım için önerilerimize bakın.
Tahsis edilen belleği değiştirmek için:
-
/opt/wallarm/env.list
dosyasını düzenlemek üzere açın: -
SLAB_ALLOC_ARENA
özniteliğini bellek boyutuna eşleyin. Değer tam sayı veya ondalık (ondalık ayırıcı olarak nokta.
) olabilir. Örneğin:
Host ve Port¶
Varsayılan olarak, postanalytics modülü host'un tüm IPv4 adreslerinden (0.0.0.0) port 3313 üzerinden bağlantıları kabul edecek şekilde ayarlanmıştır. Değişiklik yapılmadığı sürece varsayılan yapılandırmanın kullanılması önerilir.
Ancak, varsayılan yapılandırmada değişiklik yapmanız gerekiyorsa:
-
/opt/wallarm/env.list
dosyasını düzenlemek üzere açın: -
İhtiyaca göre
HOST
vePORT
değerlerini güncelleyin. Henüz tanımlı değilse,PORT
değişkenini aşağıdaki gibi tanımlayın: -
/opt/wallarm/etc/wallarm/node.yaml
dosyasını düzenlemek üzere açın: -
tarantool
parametreleri için yenihost
veport
değerlerini aşağıdaki şekilde girin:
Adım 5: Postanalytics Modülü için Gelen Bağlantılara İzin Verin¶
Postanalytics modülü varsayılan olarak port 3313'ü kullanır, ancak bazı bulut platformları bu port üzerindeki gelen bağlantıları engelleyebilir.
NGINX-Wallarm modülünün Tarantool örneğine bağlanabilmesi için, port 3313 veya sizin belirlediğiniz özel port üzerinden gelen bağlantılara izin verin.
Adım 6: Wallarm Servislerini Yeniden Başlatın¶
Gerekli değişiklikleri yaptıktan sonra, postanalytics modülünün bulunduğu makinadaki Wallarm servislerini güncellemelerin uygulanabilmesi için yeniden başlatın:
Adım 7: Ayrı Bir Sunucuda NGINX-Wallarm Modülünü Kurun¶
Postanalytics modülü ayrı bir sunucuda kurulduktan sonra:
-
NGINX-Wallarm modülünü, ilgili kılavuzu takip ederek farklı bir sunucuya kurun.
-
Farklı bir sunucuda NGINX-Wallarm modülü kurulum betiğini çalıştırırken, örneğin
filtering
seçeneğini de ekleyin:# x86_64 sürümünü kullanıyorsanız: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-5.3.0.x86_64-glibc.sh filtering # ARM64 sürümünü kullanıyorsanız: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-5.3.0.aarch64-glibc.sh filtering
WALLARM_LABELS
değişkeni, düğümün eklenmesi gereken grubu belirler (Wallarm Console arayüzünde düğümlerin mantıksal gruplandırması için kullanılır).
Adım 8: NGINX-Wallarm Modülünü Postanalytics Modülüne Bağlayın¶
NGINX-Wallarm modülünün bulunduğu makinede, NGINX yapılandırma dosyasında, postanalytics modülü sunucu adresini belirtin:
upstream wallarm_tarantool {
server <ip1>:3313 max_fails=0 fail_timeout=0 max_conns=1;
server <ip2>:3313 max_fails=0 fail_timeout=0 max_conns=1;
keepalive 2;
}
# omitted
wallarm_tarantool_upstream wallarm_tarantool;
-
Her upstream Tarantool sunucusu için
max_conns
değeri, aşırı bağlantı oluşumunu önlemek amacıyla belirtilmelidir. -
keepalive
değeri, Tarantool sunucuları sayısından düşük olmamalıdır.
Yapılandırma dosyası değiştirildikten sonra, NGINX/NGINX Plus'ın NGINX-Wallarm modülünün bulunduğu sunucuda yeniden başlatıldığından emin olun:
Adım 9: NGINX‑Wallarm ve Ayrı Postanalytics Modüllerinin Etkileşimini Kontrol Edin¶
NGINX‑Wallarm ve ayrı postanalytics modüllerinin etkileşimini kontrol etmek için, korunan uygulamanın adresine test saldırı isteği gönderebilirsiniz:
Eğer NGINX‑Wallarm ve ayrı postanalytics modülleri doğru şekilde yapılandırıldıysa, saldırı Wallarm Cloud'a yüklenecek ve Wallarm Console'daki Attacks bölümünde görüntülenecektir:
Saldırı Cloud'a yüklenmediyse, lütfen servislerin çalışmasında herhangi bir hata olmadığından emin olun:
-
Postanalytics modül loglarını analiz edin:
Eğer
SystemError binary: failed to bind: Cannot assign requested address
kaydı varsa, belirtilen adres ve port üzerinden sunucunun bağlantıları kabul ettiğinden emin olun. -
NGINX‑Wallarm modülünün bulunduğu sunucuda, NGINX loglarını analiz edin:
Eğer
[error] wallarm: <address> connect() failed
kaydı varsa, NGINX‑Wallarm modülü yapılandırma dosyalarında ayrı postanalytics modülünün adresinin doğru girildiğinden ve ayrı postanalytics sunucusunun belirtilen adres ve port üzerinden bağlantıları kabul ettiğinden emin olun. -
NGINX‑Wallarm modülünün bulunduğu sunucuda, işlenen isteklerin istatistiklerini aşağıdaki komutla alın ve
tnt_errors
değerinin 0 olduğundan emin olun:İstatistik servisi tarafından döndürülen tüm parametrelerin açıklaması →
Postanalytics Modülünün Korunması¶
Kurulmuş postanalytics modülünü koruyun
Yeni kurulan Wallarm postanalytics modülünü bir güvenlik duvarı ile korumanızı şiddetle tavsiye ederiz. Aksi halde, aşağıdaki riskler ortaya çıkabilir:
- İşlenen istekler hakkında bilgi sızdırılması
- Rastgele Lua kodlarının ve işletim sistemi komutlarının çalıştırılması
NGINX-Wallarm modülü ile aynı sunucuda postanalytics modülünü dağıtıyorsanız, böyle bir risk söz konusu değildir. Çünkü postanalytics modülü 3313
portunu dinleyecektir.
Ayrı kurulmuş postanalytics modülü için uygulanması gereken güvenlik duvarı ayarları şunlardır:
- Postanalytics modülünün Wallarm API sunucuları ile etkileşimde bulunabilmesi için HTTPS trafiğine izin verin:
us1.api.wallarm.com
– US Wallarm Cloud API sunucusuapi.wallarm.com
– EU Wallarm Cloud API sunucusu
- Sadece Wallarm filtering düğümlerinin IP adreslerinden gelen bağlantılara izin vererek
3313
Tarantool portuna TCP ve UDP protokolleri üzerinden erişimi kısıtlayın.