Memecahkan masalah monitor sintetis dan cek uptime

Dokumen ini memberikan informasi yang dapat Anda gunakan untuk membantu memecahkan masalah kegagalan dengan cek uptime dan monitor sintetis:

Anda telah menerima notifikasi dan ingin men-debug kegagalan

  1. Untuk menentukan kapan kegagalan terjadi, lihat halaman Detail waktu beroperasi:

    1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Uptime checks:

      Buka Cek uptime

    2. Cari dan pilih cek uptime.

      Diagram Lulus pemeriksaan menampilkan histori pemeriksaan. Untuk mengidentifikasi kapan cek uptime pertama kali gagal, Anda mungkin perlu mengubah rentang waktu untuk diagram. Pemilih rentang waktu terletak di toolbar halaman Detail waktu beroperasi.

  2. Untuk mendapatkan informasi selengkapnya tentang kegagalan tersebut, lihat log Anda:

    1. Di panel navigasi, pilih Logging, lalu pilih Logs Explorer.

    2. Untuk melihat log yang ditulis oleh resource waktu beroperasi, di menu Resource type, pilih Uptime check URL. Anda juga dapat menyalin kueri berikut ke editor kueri, lalu mengklik Run query:

      resource.type="uptime_url"
      

      Anda mungkin perlu memperbarui rentang waktu log ditampilkan. Pemilih rentang waktu ada di toolbar halaman Logs Explorer.

    3. Untuk memverifikasi bahwa layanan Anda menerima permintaan dari server cek uptime, salin kueri berikut ke editor kueri, lalu klik Jalankan kueri:

      "GoogleStackdriverMonitoring-UptimeChecks"
      

      Kolom protoPayload.ip berisi salah satu alamat yang digunakan oleh server cek uptime. Untuk mengetahui informasi tentang cara menampilkan semua alamat IP, lihat Mencantumkan alamat IP.

Anda tidak diberi tahu bahwa cek uptime gagal

Anda mengonfigurasi cek uptime dan sedang melihat halaman Detail uptime untuk cek tersebut. Anda melihat bahwa grafik Lulus pemeriksaan menunjukkan bahwa setidaknya satu pemeriksa gagal. Namun, Anda tidak menerima notifikasi.

Secara default, kebijakan pemberitahuan dikonfigurasi untuk membuat insiden dan mengirim notifikasi saat Pemeriksa di setidaknya dua region gagal menerima respons terhadap cek uptime. Kegagalan ini harus terjadi secara bersamaan.

Anda dapat mengedit kondisi kebijakan pemberitahuan sehingga Anda akan diberi tahu saat satu region gagal menerima respons. Namun, sebaiknya Anda menggunakan konfigurasi default, yang mengurangi jumlah notifikasi yang mungkin Anda terima karena kegagalan sementara.

Untuk melihat atau mengedit kebijakan pemberitahuan, lakukan hal berikut:

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Alerting:

    Buka Alerting

  2. Klik See all policies di panel Policies.
  3. Temukan kebijakan yang ingin Anda lihat atau edit, lalu klik nama kebijakan tersebut.

    Anda dapat melihat dan mengedit kebijakan dari halaman Detail kebijakan.

Cek uptime publik Anda gagal

Anda mengonfigurasi cek uptime publik, tetapi Anda akan menerima error saat melakukan langkah verifikasi.

Berikut adalah beberapa kemungkinan penyebab kegagalan cek uptime:

  • Error Koneksi - Ditolak: Jika Anda menggunakan jenis koneksi HTTP default, pastikan Anda telah menginstal server web yang merespons permintaan HTTP. Error koneksi dapat terjadi pada instance baru jika Anda belum menginstal server web. Baca Panduan Memulai untuk Compute Engine. Jika menggunakan jenis koneksi HTTPS, Anda mungkin harus melakukan langkah-langkah konfigurasi tambahan. Untuk masalah firewall, lihat Mencantumkan alamat IP server cek uptime.
  • Nama atau layanan tidak ditemukan: Nama host mungkin salah.
  • 403 Dilarang: Layanan menampilkan kode error ke pemeriksa waktu beroperasi. Misalnya, konfigurasi server web Apache default menampilkan kode ini pada Amazon Linux, tetapi menampilkan kode 200 (Success) pada beberapa versi Linux lainnya. Lihat tutorial LAMP untuk Amazon Linux atau dokumentasi server web Anda.
  • 404 Not found: Jalur mungkin salah.
  • Waktu tunggu permintaan 408, atau tidak ada respons: Nomor port mungkin salah, layanan mungkin tidak berjalan, layanan mungkin tidak dapat diakses, atau waktu tunggu mungkin terlalu rendah. Periksa apakah firewall Anda mengizinkan traffic dari server waktu beroperasi; lihat Mencantumkan alamat IP server cek uptime. Batas waktu tunggu ditentukan sebagai bagian dari opsi Validasi Respons.

Untuk membantu memecahkan masalah cek uptime publik yang gagal, Anda dapat mengonfigurasi cek uptime untuk mengirim hingga 3 ping ICMP selama pemeriksaan. Ping dapat membantu Anda membedakan kegagalan yang disebabkan, misalnya, karena masalah konektivitas jaringan dan waktu tunggu dalam aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat Menggunakan ping ICMP.

Memecahkan masalah cek uptime pribadi

Bagian ini menjelaskan beberapa error yang mungkin Anda alami saat menggunakan cek uptime pribadi dan memberikan informasi untuk menyelesaikannya.

Pembuatan cek uptime gagal

Setelan project Google Cloud Anda mungkin mencegah modifikasi peran yang ditetapkan ke akun layanan yang digunakan oleh cek uptime untuk mengelola interaksi dengan layanan Direktori Layanan. Dalam situasi ini, pembuatan cek uptime gagal.

Bagian ini menjelaskan cara memberikan peran yang diperlukan akun layanan:

Konsol Google Cloud

Saat Anda menggunakan konsol Google Cloud untuk membuat cek uptime pribadi, konsol Google Cloud akan mengeluarkan perintah untuk memberikan peran Direktori Layanan ke akun layanan.

Untuk mengetahui informasi tentang cara memberikan peran ke akun layanan, lihat Mengizinkan akun layanan.

API: Project pencakupan

Saat pertama kali Anda membuat cek uptime pribadi untuk layanan Direktori Layanan dan resource pribadi dalam satu project Google Cloud, permintaan mungkin berhasil atau gagal. Hasilnya bergantung pada apakah Anda telah menonaktifkan pemberian peran otomatis untuk akun layanan di project Anda:

  • Pembuatan cek uptime pertama akan berhasil jika project Anda mengizinkan pemberian peran otomatis untuk akun layanan. Akun layanan dibuat untuk Anda dan diberi peran yang diperlukan.

  • Pembuatan cek uptime pertama akan gagal jika project Anda tidak mengizinkan pemberian peran otomatis untuk akun layanan. Akun layanan dibuat, tetapi tidak ada peran yang diberikan.

Jika pembuatan cek uptime gagal, lakukan hal berikut:

  1. Izinkan akun layanan.
  2. Tunggu beberapa menit agar izin diterapkan.
  3. Coba buat lagi cek uptime pribadi.

API: Project yang dipantau

Saat pertama kali membuat cek uptime pribadi yang menargetkan layanan Direktori Layanan dalam project yang dipantau atau resource pribadi di project Google Cloud yang berbeda, permintaan tersebut akan gagal dan menyebabkan pembuatan akun layanan Monitoring.

Cara pemberian otorisasi ke akun layanan bergantung pada jumlah project Google Cloud yang Anda gunakan dan hubungannya. Anda mungkin memiliki hingga empat proyek yang terlibat:

  • Project tempat Anda menentukan cek uptime pribadi.
  • Project yang dipantau tempat Anda mengonfigurasi layanan Direktori Layanan.
  • Project tempat Anda mengonfigurasi jaringan VPC.
  • Project tempat resource jaringan seperti VM atau load balancer dikonfigurasi. Project ini tidak memiliki peran dalam otorisasi akun layanan yang dibahas di sini.

Jika pembuatan cek uptime pertama gagal, lakukan hal berikut:

  1. Izinkan akun layanan.
  2. Tunggu beberapa menit agar izin diterapkan.
  3. Coba buat lagi cek uptime pribadi.

Akses ditolak

Cek uptime Anda gagal dengan hasil VPC_ACCESS_DENIED. Hasil ini berarti bahwa beberapa aspek konfigurasi jaringan atau otorisasi akun layanan Anda tidak benar.

Periksa otorisasi akun layanan Anda untuk menggunakan project pencakupan atau project yang dipantau seperti yang dijelaskan dalam Membuat cek uptime gagal.

Untuk mengetahui informasi selengkapnya tentang cara mengakses jaringan pribadi, lihat Mengonfigurasi project jaringan.

Hasil tidak wajar dari cek uptime pribadi

Anda memiliki layanan Direktori Layanan dengan beberapa VM, dan konfigurasi layanan Anda berisi beberapa endpoint. Saat Anda mematikan salah satu VM, cek uptime Anda masih menunjukkan keberhasilan.

Jika konfigurasi layanan Anda berisi beberapa endpoint, salah satunya akan dipilih secara acak. Jika VM yang terkait dengan endpoint yang dipilih sedang berjalan, pemeriksaan waktu beroperasi akan berhasil meskipun salah satu VM sedang tidak aktif.

Header default

Cek uptime Anda menampilkan error atau hasil yang tidak terduga. Hal ini mungkin terjadi jika Anda telah mengganti nilai header default.

Saat permintaan dikirim untuk cek uptime pribadi ke endpoint target, permintaan tersebut mencakup header dan nilai berikut:

Header Nilai
HTTP_USER_AGENT GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)
HTTP_CONNECTION keep-alive
HTTP_HOST IP endpoint Direktori Layanan
HTTP_ACCEPT_ENCODING gzip, deflate, br
CONTENT_LENGTH Dihitung dari data postingan waktu beroperasi

Jika Anda mencoba mengganti nilai ini, hal berikut mungkin akan terjadi:

  • Cek uptime melaporkan error
  • Nilai penggantian dihapus dan diganti dengan nilai dalam tabel

Tidak ada data yang terlihat

Anda tidak akan melihat data apa pun di dasbor cek uptime saat cek uptime Anda berada di project Google Cloud yang berbeda dengan layanan Direktori Layanan.

Pastikan project Google Cloud yang berisi cek uptime memantau project Google Cloud yang berisi layanan Direktori Layanan.

Untuk mengetahui informasi selengkapnya tentang cara menampilkan daftar project yang dipantau dan menambahkan project tambahan, lihat Mengonfigurasi cakupan metrik untuk beberapa project.

Memecahkan masalah monitor sintetis

Bagian ini memberikan informasi yang dapat digunakan untuk membantu Anda memecahkan masalah monitor sintetis.

Pesan error setelah mengaktifkan API

Anda membuka alur pembuatan untuk monitor sintetis dan diminta untuk mengaktifkan setidaknya satu API. Setelah Anda mengaktifkan API, pesan yang mirip dengan yang berikut akan ditampilkan:

An error occurred during fetching available regions: Cloud Functions API has
not been used in project PROJECT_ID before or it is disabled.

Pesan error merekomendasikan agar Anda memverifikasi bahwa API sudah aktif, lalu menyarankan agar Anda menunggu dan mencoba lagi tindakan tersebut.

Untuk memastikan API sudah diaktifkan, buka halaman APIs & Services untuk project Anda:

Buka API & Layanan

Setelah memastikan API sudah diaktifkan, Anda dapat melanjutkan alur pembuatan. Kondisi ini otomatis di-resolve setelah pengaktifan API diterapkan melalui backend.

Permintaan HTTP keluar tidak dilacak

Anda mengonfigurasi monitor sintetis guna mengumpulkan data trace untuk permintaan HTTP output. Data trace Anda hanya menampilkan satu span, mirip dengan screenshot berikut:

Cloud Trace hanya menampilkan satu trace.

Untuk mengatasi situasi ini, pastikan akun layanan Anda telah diberi peran Agen Cloud Trace (roles/cloudtrace.agent). Peran Editor (roles/editor) juga memadai.

Untuk melihat peran yang diberikan ke akun layanan Anda, lakukan hal berikut:

  1. Pada panel navigasi Konsol Google Cloud, pilih IAM:

    Buka IAM

  2. Pilih Sertakan pemberian peran yang disediakan Google.
  3. Jika akun layanan yang digunakan oleh monitor sintetis tidak tercantum, atau jika belum diberi peran yang menyertakan izin dalam peran Agen Cloud Trace (roles/cloudtrace.agent), berikan peran ini ke akun layanan Anda.

    Jika Anda tidak tahu nama akun layanan, pilih Service Accounts di menu navigasi.

Status dalam proses

Halaman Synthetic monitor mencantumkan monitor sintetis dengan status In progress. Status In progress berarti monitor sintetis baru saja dibuat dan tidak ada data untuk ditampilkan, atau fungsi gagal di-deploy.

Untuk menentukan apakah fungsi gagal di-deploy, coba langkah berikut:

  • Pastikan nama Cloud Function Anda tidak berisi garis bawah. Jika ada garis bawah, hapus garis bawah tersebut dan deploy ulang Cloud Function.

  • Buka halaman Detail monitor sintetis untuk monitor sintetis.

    Jika Anda melihat pesan berikut, hapus monitor sintetis.

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    Pesan error menunjukkan bahwa fungsi telah dihapus sehingga monitor sintetis tidak dapat menjalankan fungsi.

  • Buka halaman Cloud Functions untuk fungsi tersebut. Untuk membuka halaman ini dari halaman Detail monitor sintetis, klik Code, lalu klik nama fungsi.

    Jika Anda melihat pesan yang mirip dengan pesan berikut, berarti fungsi gagal di-deploy.

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    Untuk mengatasi kegagalan ini, tinjau kode fungsi dan perbaiki error yang mencegah fungsi di-build atau di-deploy.

Saat Anda membuat monitor sintetis, mungkin perlu waktu beberapa menit hingga fungsi di-deploy dan dijalankan.

Status peringatan

Monitor sintetis mencantumkan monitor sintetis dengan status Warning. Status Warning berarti hasil eksekusi tidak konsisten. Hal ini mungkin menunjukkan masalah desain pada pengujian Anda, atau mungkin menunjukkan bahwa apa yang sedang diuji memiliki perilaku yang tidak konsisten.

Status gagal

Monitor sintetis mencantumkan monitor sintetis dengan status Failing. Untuk mendapatkan informasi selengkapnya tentang alasan kegagalan, lihat histori eksekusi terbaru.

  • Jika pesan error Request failed with status code 429 ditampilkan, target permintaan HTTP akan menolak perintah tersebut. Untuk mengatasi kegagalan ini, Anda harus mengubah target monitor sintetis.

    Endpoint https://www.google.com menolak permintaan yang dibuat oleh monitor sintetis.

Penghapusan gagal untuk monitor sintetis

Anda menggunakan Cloud Monitoring API untuk menghapus monitor sintetis, tetapi panggilan API gagal dengan respons yang serupa dengan berikut ini:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again."
      }
    ]
  }
}

Untuk mengatasi kegagalan, hapus kebijakan pemberitahuan yang memantau hasil monitor sintetis, lalu hapus monitor sintetis.

Tidak dapat mengedit konfigurasi pemeriksa link yang rusak

Anda membuat pemeriksa link rusak menggunakan Konsol Google Cloud, dan ingin mengubah elemen HTML yang diuji, atau ingin mengubah waktu tunggu URI, percobaan ulang, tunggu pemilih, dan opsi per link. Namun, saat Anda mengedit pemeriksa link yang rusak, Konsol Google Cloud tidak akan menampilkan kolom konfigurasi.

Untuk mengatasi kegagalan ini, lakukan hal berikut:

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Synthetic Monitoring:

    Buka Pemantauan sintetis

  2. Temukan monitor sintetis yang ingin Anda edit, klik Opsi lainnya, lalu pilih Edit.
  3. Klik Edit fungsi.
  4. Edit objek options dalam file index.js, lalu klik Apply function.

    Guna mengetahui informasi tentang kolom dan sintaksis untuk objek ini, lihat broken-links-ok/index.js.

  5. Klik Save.