Bu konuda, özel Webhook'larla ilgili sık sorulan bazı soruların yanıtları yer almaktadır.
Uyarı şablonunu nasıl yapılandırırım?
Uyarı bildirimlerini özel bir Webhook kullanarak göndermek istiyorsanız, uyarı şablonunuzdaki içeriğin geçerli bir JSON biçiminde olacak şekilde yapılandırmanızı öneririz. Bu sayede işleme sonrası elde edilen sonuç da geçerli bir JSON biçiminde olur.
Aşağıdaki uyarı mesajı için bir uyarı şablonu yapılandırmak istediğinizi varsayalım. Uyarı mesajında, alert.annotations.message alanının değeri çift tırnak (") içerir. {{ alert.annotations.message }} alanına doğrudan başvurursanız, işleme sonrası sonuç geçersiz bir JSON biçiminde olur ve uyarı bildirimleri gönderilemez.
Özel karakterlerden kaynaklanan geçersiz JSON biçimini önlemek için uyarı şablonlarında alanlara başvururken quote(value) yerleşik işlevini kullanmanız gerekir.
-
Örnek uyarı mesajı
{ "project": "test-alert", "region": "cn-hangzhou", "labels": { "service": "signin", "env": "prod" }, "annotations": { "message": "user \"xxx\" signin failed, error is: userNotFound" } } -
Örnek uyarı şablonu
{ "project": "{{ alert.project }}", "service": "{{ alert.labels.service }}", "message": {{ alert.annotations.message | quote }} } -
İşleme sonrası örnek sonuç
{ "project": "test-alert", "service": "signin", "message": "user \"xxx\" signin failed, error is: userNotFound" }
Ağ nasıl seçilir?
Simple Log Service uyarı sistemi, Webhook tabanlı uyarı bildirimlerini yalnızca İnternet üzerinden gönderir. Dahili bir sistem kullanıyorsanız ve bu sistem için İnternet erişimini etkinleştirmek istemiyorsanız bir İnternet proxy'si kullanabilirsiniz. Aşağıdaki şekil ağ mimarisini göstermektedir.
Erişim izinleri nasıl doğrulanır?
Erişim izinlerini doğrulamak için bir IP adresi izin listesi veya bir HTTP üst bilgisi yapılandırabilirsiniz.
Webhook'unuz için bir IP adresi izin listesi yapılandırın ve 120.76.47.88 ile 119.23.150.175 IP adreslerini izin listesine ekleyin.
-
Bir HTTP üst bilgisi yapılandırın.
Özel bir belirteç kullanın. Request Header parametresini
Authorization: Bearer tokenolarak ayarlayabilirsiniz. token ifadesini kendi özel belirtecinizle değiştirin.Temel kimlik doğrulama kullanın. Request Header parametresini
Authorization: Basic $(base64_encode(username:password))olarak ayarlayabilirsiniz. username ve password ifadelerini gerçek kullanıcı adınız ve parolanızla değiştirin.
Örneğin, Webhook'unuz NGINX ters proxy kullanıyorsa erişim izinlerini doğrulamak için NGINX'te temel kimlik doğrulamayı yapılandırabilirsiniz.
-
NGINX'te temel kimlik doğrulamayı yapılandırın.
-
Parola dosyasına bir kullanıcı ekleyin.
Önemliconf/passwd dosyası yoksa bir parola dosyası oluşturmanız gerekir.
Örnek olarak admin kullanıcı adı ve foobar parolası kullanılmıştır.
htpasswd -b conf/passwd admin foobar -
Temel kimlik doğrulamayı etkinleştirmek için NGINX'te auth_basic ve auth_basic_user_file parametrelerini yapılandırın.
location / { auth_basic on; auth_basic_user_file conf/passwd; root html; index index.html index.htm; } NGINX'i yeniden başlatın.
-
-
Bir eylem ilkesinde özel bir Webhook yapılandırın.
echo -n admin:foobar | base64komutuYWRtaW46Zm9vYmFydeğerini döndürür. Bu nedenle, özel bir Webhook yapılandırırken Request Header parametresiniAuthorization: Basic YWRtaW46Zm9vYmFyolarak ayarlayabilirsiniz. Daha fazla bilgi için bkz. Webhook-Custom.