Perkiraan waktu penyelesaian: 2 jam
Pemilik komponen yang dapat dioperasikan: TS
Dokumen ini berisi petunjuk untuk mengonfigurasi webhook Alertmanager ServiceNow dan memungkinkan Anda membuat pemberitahuan di instance sistem tiket ServiceNow yang aktif.
31.1.1. Sebelum memulai
Sebelum menyiapkan webhook ServiceNow, lakukan langkah-langkah berikut:
- Buat secret
midserver-secretsecara manual. - Ikuti langkah-langkah dalam runbook TS-R0012 untuk menyiapkan secret dengan benar.
Pastikan
yqtelah diinstal di sistem.root@bootstrapper:~# yq --version yq (https://github.com/mikefarah/yq/) version v4.40.4Untuk mendapatkan izin yang diperlukan untuk mengakses objek di namespace
obs-systemdan mengelola aplikasi ServiceNow, minta Admin Keamanan Anda untuk memberi Anda peran berikut:- Debugger Observabilitas (
observability-admin-debuggeruntuk cluster admin root danobservability-system-debuggeruntuk cluster admin org dan sistem) - Grafana Viewer (
grafana-viewer) - Admin ServiceNow (
system-service-now-admin)
Untuk mengetahui informasi selengkapnya tentang peran ini, lihat Peran operator infrastruktur.
- Debugger Observabilitas (
31.1.2. Menyiapkan webhook
Ikuti langkah-langkah berikut untuk mengonfigurasi webhook ServiceNow Alertmanager:
Anda dapat mengonfigurasi webhook ServiceNow di organisasi.
Jika Anda ingin mengonfigurasi webhook ServiceNow di cluster sistem untuk organisasi, minta Operator Infrastruktur (IO) Anda untuk menjalankan runbook OPA-R0005 dengan informasi berikut:
- Nilai untuk variabel lingkungan
IO_GROUPadalah grup pengguna tempat pengguna Anda berada. - Nilai untuk variabel lingkungan
CONSTRAINT_NAMEadalahrestrict-system-project-namespace-resources.
- Nilai untuk variabel lingkungan
Buat akun layanan ServiceNow untuk membuat insiden berdasarkan pemberitahuan dari organisasi:
Buka URL antarmuka web ServiceNow:
https://support.gdchservices.GDC_URL/navpage.doGanti
GDC_URLdengan URL organisasi Anda di Google Distributed Cloud (GDC) air-gapped.Selalu gunakan
gdchservicessebagai nama organisasi IT Operations Center Anda.Pilih Semua > Administrasi Pengguna > Pengguna.
Klik New.
Di jendela baru, masukkan nilai berikut:
- Di kolom ID Pengguna, masukkan
SVC_ALERT_ORG. - Di kolom Nama depan, masukkan
SVC_ALERT_ORG. - Centang kotak Akses layanan web saja.
Ganti
ORGdengan nama organisasi Anda. Saat melakukan langkah ini di cluster admin root, gunakan nilairootuntuk namaORG.- Di kolom ID Pengguna, masukkan
Klik Kirim.
Data pengguna baru akan muncul dalam daftar akun ServiceNow.
Tambahkan peran
itilke akun layanan:Buka data pengguna dari daftar.
Klik tab Peran, lalu klik tombol Edit....
Pilih peran
itildari menu Koleksi.Klik tombol Tambahkan () untuk memindahkan peran ke menu Daftar Peran.
Klik Simpan.
Tetapkan sandi akun layanan ServiceNow:
Buka data pengguna dari daftar.
Klik Setel Sandi, lalu Buat.
Salin sandi yang ditampilkan oleh jendela dan simpan di tempat yang aman.
Klik Simpan Sandi, lalu tutup jendela.
Buka antarmuka command line.
Tetapkan variabel lingkungan berikut:
export ORG=ORGANIZATION export SERVICENOW_INSTANCE_URL=SERVICENOW_INSTANCE_URL export SERVICENOW_USERNAME=SERVICENOW_USERNAME export SERVICENOW_PASSWORD=SERVICENOW_PASSWORD export SERVICENOW_AUTORESOLVE=SERVICENOW_AUTORESOLVE export SERVICENOW_AUTORESOLVE_REOPEN_DURATION=SERVICENOW_AUTORESOLVE_REOPEN_DURATIONGanti kode berikut:
ORGANIZATION: nama organisasi AndaSERVICENOW_INSTANCE_URL: URL antarmuka web ServiceNow, misalnya,https://support.gdchservices.GDC_URL.SERVICENOW_USERNAME: nama pengguna akun layanan ServiceNowSERVICENOW_PASSWORD: sandi akun layanan ServiceNowSERVICENOW_AUTORESOLVE: 'true' jika Anda ingin menyelesaikan insiden ServiceNow secara otomatis setelah pemberitahuan yang sesuai berhenti dipicu, atau 'false' jika tidakSERVICENOW_AUTORESOLVE_REOPEN_DURATION: durasi di mana insiden ServiceNow yang telah diselesaikan dapat dibuka kembali jika pemberitahuan yang sama diaktifkan lagi. Contoh: '5m', '30s', '24h', dll.
Jalankan perintah berikut:
cat << EOF > ~/mon-alertmanager-servicenow-webhook-subcomponentoverride.yaml apiVersion: lcm.private.gdc.goog/v1 kind: SubcomponentOverride metadata: name: mon-alertmanager-servicenow-webhook spec: subComponentRef: "mon-alertmanager-servicenow-webhook" backend: operableParameters: servicenowCredentials: instanceName: ${SERVICENOW_INSTANCE_URL:?} username: ${SERVICENOW_USERNAME:?} password: ${SERVICENOW_PASSWORD:?} serviceNowSettings: autoResolve: ${SERVICENOW_AUTORESOLVE:?} autoResolveReopenDuration: ${SERVICENOW_AUTORESOLVE_REOPEN_DURATION:?} EOF cat << EOF > ~/meta-alertmanager-servicenow-webhook-subcomponentoverride.yaml apiVersion: lcm.private.gdc.goog/v1 kind: SubcomponentOverride metadata: name: meta-alertmanager-servicenow-webhook spec: subComponentRef: "mon-meta-monitoring" backend: operableParameters: servicenowCredentials: instanceName: ${SERVICENOW_INSTANCE_URL:?} username: ${SERVICENOW_USERNAME:?} password: ${SERVICENOW_PASSWORD:?} serviceNowSettings: autoResolve: ${SERVICENOW_AUTORESOLVE:?} autoResolveReopenDuration: ${SERVICENOW_AUTORESOLVE_REOPEN_DURATION:?} EOF cat << EOF > ~/ts-networking-subcomponentoverride.yaml apiVersion: lcm.private.gdc.goog/v1 kind: SubcomponentOverride metadata: name: ts-networking spec: subComponentRef: "ts-networking" backend: operableParameters: serviceNowEndpoint: ${SERVICENOW_INSTANCE_URL:?} EOFLakukan langkah-langkah berikut untuk mengonfigurasi webhook ServiceNow di cluster:
Cluster admin root
Tetapkan variabel lingkungan berikut:
export ROOT_KUBECONFIG=PATH_TO_ROOT_ADMIN_KUBECONFIGGanti kode berikut:
PATH_TO_ROOT_ADMIN_KUBECONFIG: jalur file kubeconfig untuk cluster admin root
Temukan deployment webhook:
kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" get deployment mon-alertmanager-servicenow-webhook-backend -n mon-systemOutput harus menampilkan status
READYdan terlihat seperti contoh berikut:NAME READY UP-TO-DATE AVAILABLE AGE mon-alertmanager-servicenow-webhook-backend 1/1 1 1 8hPeriksa apakah file YAML
configmapada:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" get configmap/mon-alertmanager-servicenow-webhook-backend -n mon-systemOutput harus terlihat seperti contoh berikut:
NAME DATA AGE mon-alertmanager-servicenow-webhookbackend 1 8hPeriksa apakah file YAML
Secretada:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" get secret/mon-alertmanager-servicenow-webhook-backend -n mon-systemOutput harus terlihat seperti contoh berikut:
NAME TYPE DATA AGE mon-alertmanager-servicenow-webhook-backend Opaque 2 8hKonfigurasi file YAML
configmap:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" apply -n root -f ~/mon-alertmanager-servicenow-webhook-subcomponentoverride.yamlOutput yang diharapkan:
subcomponentoverride.lcm.private.gdc.goog/mon-alertmanager-servicenow-webhook createdMengonfigurasi jaringan:
kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" apply -n root -f ~/ts-networking-subcomponentoverride.yamlOutput yang diharapkan:
subcomponentoverride.lcm.private.gdc.goog/ts-networking createdMulai ulang deployment webhook:
kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" rollout restart deployment/mon-alertmanager-servicenow-webhook-backend -n mon-systemOutput memverifikasi keberhasilan seperti yang terlihat dalam contoh berikut:
deployment.apps/mon-alertmanager-servicenow-webhook-backend restartedMulai ulang deployment webhook stack pemantauan sekunder:
kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" rollout restart deployment/meta-alertmanager-servicenow-webhook -n obs-systemOutput memverifikasi keberhasilan seperti yang terlihat dalam contoh berikut:
deployment.apps/alertmanager-servicenow-webhook restartedPeriksa log deployment
alertmanager-servicenow-webhookuntuk memvalidasi konfigurasi:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" logs deployment/mon-alertmanager-servicenow-webhook-backend -n mon-systemJika log berisi string
listening on: :9877, berarti konfigurasi telah selesai. Jika tidak, minta bantuan pemecahan masalah.Temukan deployment webhook:
kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" get deployment meta-alertmanager-servicenow-webhook -n mon-systemOutput harus menampilkan status
READYdan terlihat seperti contoh berikut:NAME READY UP-TO-DATE AVAILABLE AGE meta-alertmanager-servicenow-webhook 1/1 1 1 8hPeriksa apakah file YAML
configmapada:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" get configmap/meta-alertmanager-servicenow-webhook -n mon-systemOutput harus terlihat seperti contoh berikut:
NAME DATA AGE meta-alertmanager-servicenow-webhook 1 8hPeriksa apakah file YAML
Secretada:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" get secret/meta-alertmanager-servicenow-webhook -n mon-systemOutput harus terlihat seperti contoh berikut:
NAME TYPE DATA AGE meta-alertmanager-servicenow-webhook Opaque 2 8hKonfigurasi file YAML
configmap:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" apply -n ${ORG:?} -f ~/meta-alertmanager-servicenow-webhook-subcomponentoverride.yamlOutput yang diharapkan:
subcomponentoverride.lcm.private.gdc.goog/meta-alertmanager-servicenow-webhook createdMulai ulang deployment webhook:
kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" rollout restart deployment/meta-alertmanager-servicenow-webhook -n mon-systemOutput memverifikasi keberhasilan seperti yang terlihat dalam contoh berikut:
deployment.apps/meta-alertmanager-servicenow-webhook restartedMulai ulang deployment webhook stack pemantauan sekunder:
kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" rollout restart deployment/meta-alertmanager-servicenow-webhook -n obs-systemOutput memverifikasi keberhasilan seperti yang terlihat dalam contoh berikut:
deployment.apps/meta-alertmanager-servicenow-webhook restartedPeriksa log deployment
meta-alertmanager-servicenow-webhookuntuk memvalidasi konfigurasi:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" logs deployment/meta-alertmanager-servicenow-webhook -n mon-systemJika log berisi string
listening on: :9877, berarti konfigurasi telah selesai. Jika tidak, minta bantuan pemecahan masalah.
Cluster Org Infra
Tetapkan variabel lingkungan berikut:
export ROOT_KUBECONFIG=PATH_TO_ROOT_KUBECONFIG export INFRA_KUBECONFIG=PATH_TO_INFRA_KUBECONFIGGanti kode berikut:
PATH_TO_ROOT_ADMIN_KUBECONFIG: jalur file kubeconfig untuk cluster admin rootPATH_TO_INFRA_KUBECONFIG: jalur file kubeconfig untuk cluster infrastruktur
Temukan deployment webhook:
kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" get deployment mon-alertmanager-servicenow-webhook-backend -n mon-systemOutput harus menampilkan status
READYdan terlihat seperti contoh berikut:NAME READY UP-TO-DATE AVAILABLE AGE mon-alertmanager-servicenow-webhook-backend 1/1 1 1 8hPeriksa apakah file YAML
configmapada:kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" get configmap/mon-alertmanager-servicenow-webhook-backend -n mon-systemOutput harus terlihat seperti contoh berikut:
NAME DATA AGE mon-alertmanager-servicenow-webhookbackend 1 8hPeriksa apakah file YAML
Secretada:kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" get secret/mon-alertmanager-servicenow-webhook-backend -n mon-systemOutput harus terlihat seperti contoh berikut:
NAME TYPE DATA AGE mon-alertmanager-servicenow-webhook-backend Opaque 2 8hKonfigurasi file YAML
configmap:kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" apply -n ${ORG:?} -f ~/mon-alertmanager-servicenow-webhook-subcomponentoverride.yamlOutput yang diharapkan:
subcomponentoverride.lcm.private.gdc.goog/mon-alertmanager-servicenow-webhook createdMengonfigurasi jaringan:
kubectl --kubeconfig "${ROOT_KUBECONFIG:?}" apply -n ${ORG:?} -f ~/ts-networking-subcomponentoverride.yamlOutput yang diharapkan:
subcomponentoverride.lcm.private.gdc.goog/ts-networking createdMulai ulang deployment webhook:
kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" rollout restart deployment/mon-alertmanager-servicenow-webhook-backend -n mon-systemOutput memverifikasi keberhasilan seperti yang terlihat dalam contoh berikut:
deployment.apps/mon-alertmanager-servicenow-webhook-backend restartedMulai ulang deployment webhook stack pemantauan sekunder:
kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" rollout restart deployment/meta-alertmanager-servicenow-webhook -n obs-systemOutput memverifikasi keberhasilan seperti yang terlihat dalam contoh berikut:
deployment.apps/alertmanager-servicenow-webhook restartedPeriksa log deployment
alertmanager-servicenow-webhookuntuk memvalidasi konfigurasi:kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" logs deployment/mon-alertmanager-servicenow-webhook-backend -n mon-systemJika log berisi string
listening on: :9877, berarti konfigurasi telah selesai. Jika tidak, minta bantuan pemecahan masalah.Temukan deployment webhook:
kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" get deployment meta-alertmanager-servicenow-webhook -n mon-systemOutput harus menampilkan status
READYdan terlihat seperti contoh berikut:NAME READY UP-TO-DATE AVAILABLE AGE meta-alertmanager-servicenow-webhook 1/1 1 1 8hPeriksa apakah file YAML
configmapada:kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" get configmap/meta-alertmanager-servicenow-webhook -n mon-systemOutput harus terlihat seperti contoh berikut:
NAME DATA AGE meta-alertmanager-servicenow-webhook 1 8hPeriksa apakah file YAML
Secretada:kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" get secret/meta-alertmanager-servicenow-webhook -n mon-systemOutput harus terlihat seperti contoh berikut:
NAME TYPE DATA AGE meta-alertmanager-servicenow-webhook Opaque 2 8hKonfigurasi file YAML
configmap:kubectl --kubeconfig "${ROOT_ADMIN_KUBECONFIG:?}" apply -n ${ORG:?} -f ~/meta-alertmanager-servicenow-webhook-subcomponentoverride.yamlOutput yang diharapkan:
subcomponentoverride.lcm.private.gdc.goog/meta-alertmanager-servicenow-webhook createdMulai ulang deployment webhook:
kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" rollout restart deployment/meta-alertmanager-servicenow-webhook -n mon-systemOutput memverifikasi keberhasilan seperti yang terlihat dalam contoh berikut:
deployment.apps/meta-alertmanager-servicenow-webhook restartedMulai ulang deployment webhook stack pemantauan sekunder:
kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" rollout restart deployment/meta-alertmanager-servicenow-webhook -n obs-systemOutput memverifikasi keberhasilan seperti yang terlihat dalam contoh berikut:
deployment.apps/meta-alertmanager-servicenow-webhook restartedPeriksa log deployment
meta-alertmanager-servicenow-webhookuntuk memvalidasi konfigurasi:kubectl --kubeconfig "${INFRA_KUBECONFIG:?}" logs deployment/meta-alertmanager-servicenow-webhook -n mon-systemJika log berisi string
listening on: :9877, berarti konfigurasi telah selesai. Jika tidak, minta bantuan pemecahan masalah.
31.1.3. Verifikasi konfigurasi
Ikuti langkah-langkah berikut untuk memverifikasi bahwa konfigurasi berhasil:
Buka URL antarmuka web ServiceNow:
https://support.gdchservices.GDC_URL/navpage.doGanti
GDC_URLdengan URL organisasi Anda di Google Distributed Cloud (GDC) air-gapped.Buka halaman Service Desk > Incidents.
Periksa apakah ada insiden dengan deskripsi singkat
IgnoreThisAlwaysFiringAlertuntuk setiap organisasi di semesta GDC.Pastikan kolom berikut diisi dalam insiden:
- Angka
- Prioritas
- Penelepon
- Kode komponen
- ID Zona
- Status insiden
- ID Organisasi
- ID Zona
- Deskripsi singkat
- Deskripsi (harus berisi sidik jari)