X-Pack Watcher, belirli koşullar karşılandığında Alibaba Cloud Elasticsearch örneğinizde eylemleri tetiklemenizi sağlar. Örneğin, logs dizininizde bir hata günlüğü göründüğünde otomatik olarak DingTalk mesajı gönderen bir watch (izleyici) yapılandırabilirsiniz.
Özelliklere genel bakış
X-Pack Watcher dört ana bileşenden oluşur: Watch işleminin ne sıklıkla çalışacağını tanımlayan tetikleyici, kümeden veri alan giriş, verilerin uyarı eşiğini karşılayıp karşılamadığını değerlendiren koşul ve koşul karşılandığında Webhook bildirimi gönderme gibi eylemleri gerçekleştiren aksiyonlar.
Ön koşullar
-
Bir Alibaba Cloud Elasticsearch örneği oluşturdunuz. Daha fazla bilgi için bkz. Alibaba Cloud Elasticsearch örneği oluşturma.
NotEski ağ mimarisi için X-Pack Watcher yalnızca tek kullanılabilirlik alanlı Elasticsearch örneklerini destekler. Çoklu kullanılabilirlik alanlı örnekler desteklenmez.
Yeni ağ mimarisi için ağ kısıtlamalarını aşmak amacıyla örnek için PrivateLink bağlantısı yapılandırmanız gerekir. Daha fazla bilgi için bkz. Örnek için PrivateLink bağlantısı yapılandırma.
Ağ mimarileri hakkında daha fazla bilgi için bkz. [[Bildirim] Ağ mimarisi ayarlaması](t2521816.xdita#).
Elasticsearch örneğiniz için X-Pack Watcher özelliğini etkinleştirdiniz. Daha fazla bilgi için bkz. YML parametrelerini yapılandırma.
-
Sanal özel cloud (VPC) içinde bir ECS örneği oluşturdunuz. Daha fazla bilgi için bkz. Özel ayarları kullanarak örnek oluşturma.
NotAlibaba Cloud Elasticsearch'teki X-Pack Watcher doğrudan genel internete erişemez. VPC içindeki örneğinizin özel uç noktası üzerinden iletişim kurar. Bu nedenle, VPC'nizdeki ECS örneğinin esnek IP adresi (EIP) atayarak veya kaynak ağ adresi çevirisi (SNAT) yapılandırarak genel internet erişimine sahip olması gerekir. Daha fazla bilgi için bkz. EIP ilişkilendirme veya SNAT yapılandırma.
Yordam
Adım 1: DingTalk botu oluşturma ve yapılandırma
Uyarıları almak için bir DingTalk grubu oluşturun.
Grubun sağ üst köşesindeki
simgesine tıklayın. Group Settings panelinde Bot seçeneğine tıklayın.Robot Management iletişim kutusunda Add Robot seçeneğine tıklayın, Custom öğesini seçin ve ardından Add düğmesine tıklayın.
-
Bir Robot Name girin, Custom Keywords seçeneğini belirleyin ve ardından anahtar kelimelerinizi girin.
ÖnemliAnahtar kelimeler, yapılandırdığınız uyarı mesajında yer almalıdır.
I have read and agree to the "Custom Robot Service and Disclaimer Terms" seçeneğini işaretleyin ve Complete düğmesine tıklayın.
-
Webhook yanında Copy düğmesine tıklayarak botun Webhook URL'sini kopyalayın.
Webhook URL'sini güvende tutun. Bu URL'yi harici web sitelerinde paylaşmak güvenlik riski oluşturur.
Adım 2: NGINX proxy ve ECS güvenlik grubunu yapılandırma
-
ECS örneğinizde NGINX proxy sunucusunu yapılandırın.
X-Pack Watcher, uyarıları ECS örneğinizdeki NGINX proxy sunucusuna gönderir; bu sunucu uyarıları DingTalk veya WeCom'a iletir.
-
ECS örneğine NGINX yükleyin.
-
nginx.conf dosyasını yapılandırın.
nginx.conf dosyasındaki
serverbölümünü aşağıdaki yapılandırmayla değiştirin.server { listen 8080;# Listener port server_name localhost;# Domain name index index.html index.htm index.php; root /usr/local/webserver/nginx/html;# Site directory location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; # access_log off; } location / { proxy_pass <Webhook URL>; } location ~ .*\.(js|css)?$ { expires 15d; # access_log off; } access_log off; }<Webhook URL> ifadesini 1. Adımda kopyaladığınız DingTalk botunun Webhook URL'si ile değiştirin.
-
Yapılandırma dosyasını yeniden yükleyin ve NGINX'i yeniden başlatın.
/usr/local/webserver/nginx/sbin/nginx -s reload # Reload the configuration file /usr/local/webserver/nginx/sbin/nginx -s reopen # Restart NGINX
-
-
ECS güvenlik grubunu yapılandırın.
Alibaba Cloud Elasticsearch örneğinizden ECS örneğindeki NGINX proxy sunucusuna gelen trafiğe izin verin.
Alibaba Cloud ECS konsolu üzerinde oturum açın.
Sol gezinme bölmesinde yolunu izleyin.
Cluster sayfasında hedef örneğin adına tıklayın.
Security Group sekmesine tıklayın.
Security Groups sekmesinde hedef güvenlik grubunun adına tıklayın.
Inbound sekmesinde Add Rule seçeneğine tıklayın.
-
Parametreleri yapılandırın.
Parametre
Açıklama
Action
Permitted seçeneğini belirleyin.
Priority
Varsayılan değeri koruyun.
Protocol
Custom TCP seçeneğini belirleyin.
Access Source
Alibaba Cloud Elasticsearch örneğinizdeki tüm düğümlerin IP adreslerini girin.
NotDüğüm IP adreslerini almak için bkz. Temel düğüm bilgilerini görüntüleme.
Destination
NGINX'in dinlemek üzere yapılandırıldığı bağlantı noktasını girin. Bu konuda örnek olarak 8080 bağlantı noktası kullanılmıştır.
Description
Kural için bir açıklama girin.
OK seçeneğine tıklayın.
Adım 3: Watcher uyarısını yapılandırma
-
Elasticsearch kümenizin Kibana konsolunda oturum açın.
Talimatlar için bkz. Kibana konsolunda oturum açma.
NotBuradaki örnekler Elasticsearch V6.7.0 sürümünü kullanmaktadır. İşlemler diğer sürümlerde biraz farklılık gösterebilir.
Sol gezinme menüsünde yolunu izleyin.
-
Console alanında bir watch oluşturmak için aşağıdaki komutu çalıştırın.
Aşağıdaki örnek
log_error_watchadlı bir watch oluşturur. Her 10 saniyede birlogsdizinini sorgular veerroriçeren günlükleri arar. Eşleşen günlük sayısı 0 değerinden büyükse bir uyarı tetiklenir.PUT _xpack/watcher/watch/log_error_watch { "trigger": { "schedule": { "interval": "10s" } }, "input": { "search": { "request": { "indices": ["logs"], "body": { "query": { "match": { "message": "error" } } } } } }, "condition": { "compare": { "ctx.payload.hits.total": { "gt": 0 } } }, "actions" : { "test_issue" : { "webhook" : { "method" : "POST", "url" : "http://<yourAddress>:8080", "body" : "{\"msgtype\": \"text\", \"text\": { \"content\": \"An error log has appeared. Please handle it as soon as possible.\"}}" } } } }Tablo 1. Temel parametreler
Parametre
Ağ türü
Yapılandırma
urlYeni ağ mimarisi
Bu parametreyi uç nokta alan adına ayarlayın. Uç nokta alan adını almak için bkz. Alibaba Cloud Elasticsearch örneği için PrivateLink bağlantısı yapılandırma.
Eski ağ mimarisi
Bu parametreyi aşağıdaki adreslerden birine ayarlayın:
NGINX proxy sunucusunun IP adresi: İstekler aynı VPC'deki NGINX proxy sunucusu üzerinden genel internete iletilir.
DingTalk botunun Webhook URL'si.
bodyYeni ağ mimarisi
Eski ağ mimarisi
Bu parametreyi DingTalk botunun güvenlik ayarlarına göre yapılandırın.
Örneğin, 1. Adım: DingTalk botu oluşturma ve yapılandırma bölümünde Security Settings değerini Custom Keywords olarak ayarlarsanız ve error özel anahtar kelimesini eklerseniz DingTalk botu yalnızca body içindeki content alanı error içerdiğinde uyarı mesajlarını iletir.
NotKomutu çalıştırdığınızda
No handler found for uri [/_xpack/watcher/watch/log_error_watch_2] and method [PUT]hatasını görürseniz Alibaba Cloud Elasticsearch örneğiniz için X-Pack Watcher etkinleştirilmemiş demektir. Özelliği etkinleştirip komutu tekrar çalıştırmanız gerekir. Daha fazla bilgi için bkz. YML parametrelerini yapılandırma.
Adım 4: Uyarıyı doğrulama
Yapılandırma tamamlandıktan sonra, 3. Adım kısmındaki uyarı koşulu karşılandığında DingTalk grubunuz An error log has appeared. Please handle it as soon as possible. benzeri bir mesaj alır.
Watch işlemine artık ihtiyacınız yoksa aşağıdaki komutu çalıştırarak bunu silebilirsiniz.
DELETE _xpack/watcher/watch/log_error_watch