Membuat cek uptime publik

Dokumen ini menjelaskan cara membuat pemeriksaan uptime publik. Pemeriksaan uptime publik dapat mengeluarkan permintaan dari beberapa lokasi di seluruh dunia ke URL atau resource yang tersedia secara publik untuk melihat apakah resource tersebut merespons. Google Cloud Untuk mengetahui informasi tentang cara membuat pemeriksaan uptime untuk jaringan pribadi, lihat Membuat pemeriksaan uptime pribadi.

Cek uptime publik dapat menentukan ketersediaan resource yang dipantau berikut:

Untuk mengetahui link ke informasi tentang cara mengelola dan memantau cek uptime, lihat bagian Langkah berikutnya dalam dokumen ini.

Fitur ini hanya didukung untuk Google Cloud project. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mendukung aplikasi.

Tentang cek uptime

Untuk HTTP dan HTTPS, semua pengalihan URL diikuti dan respons akhir yang diterima oleh pemeriksaan uptime digunakan untuk mengevaluasi kriteria keberhasilan. Untuk pemeriksaan HTTPS, waktu habis masa berlaku sertifikat SSL dihitung berdasarkan sertifikat server yang diterima dalam respons akhir.

Agar pemeriksaan waktu aktif berhasil, kondisi berikut harus dipenuhi:

  • Status HTTP harus cocok dengan kriteria yang Anda tentukan.
  • Data respons tidak memiliki konten yang diperlukan atau konten yang diperlukan ada.

Pemeriksaan uptime tidak memuat aset halaman atau menjalankan JavaScript, dan konfigurasi default pemeriksaan uptime tidak menyertakan autentikasi.

Sebelum memulai

Selesaikan langkah-langkah berikut di project Google Cloud yang akan menyimpan pemeriksaan waktu aktif:

  1. Untuk mendapatkan izin yang diperlukan untuk membuat pemeriksaan uptime, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

    • Editor Pemantauan (roles/monitoring.editor) - Google Cloud pengguna konsol
    • Monitoring Uptime Check Configurations Editor (roles/monitoring.uptimeCheckConfigEditor) - Pengguna API
    • Monitoring AlertPolicy Editor (roles/monitoring.alertPolicyEditor) - Pengguna API
    • Monitoring NotificationChannel Editor (roles/monitoring.notificationChannelEditor) - Pengguna API

    Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

  2. Pastikan resource yang ingin Anda periksa memiliki endpoint publik atau berada di balik firewall yang dapat dikonfigurasi.

    Untuk semua konfigurasi lainnya, Anda harus membuat cek uptime pribadi. Untuk mengetahui informasi selengkapnya, lihat Membuat cek uptime pribadi.

  3. Jika resource Anda berada di balik firewall, konfigurasikan firewall tersebut untuk mengizinkan traffic masuk dari alamat IP server pemeriksaan uptime. Untuk informasi selengkapnya, lihat Mencantumkan alamat IP server cek uptime.

  4. Konfigurasi saluran notifikasi yang ingin Anda gunakan untuk menerima notifikasi. Sebaiknya Anda membuat beberapa jenis saluran notifikasi. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola saluran notifikasi.

  5. Identifikasi minimal tiga pemeriksa untuk cek uptime Anda. Region uptime-check USA mencakup region USA_OREGON, USA_IOWA, dan USA_VIRGINIA. Setiap region USA_* memiliki satu pemeriksa, dan USA mencakup ketiganya. Region pemeriksaan uptime lainnya, EUROPE, SOUTH_AMERICA, dan ASIA_PACIFIC, masing-masing memiliki satu pemeriksa.

    Jika Anda memilih Global saat menggunakan konsol Google Cloud , atau memilih REGION_UNSPECIFIED saat menggunakan API, maka cek uptime akan dikeluarkan dari semua region cek uptime.

  6. Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      Terraform

      Untuk menggunakan contoh Terraform di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .

      C#

      Untuk menggunakan contoh .NET di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .

      Go

      Untuk menggunakan contoh Go di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .

      Java

      Untuk menggunakan contoh Java di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .

      Node.js

      Untuk menggunakan contoh Node.js di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .

      PHP

      Untuk menggunakan contoh PHP di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .

      Python

      Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .

      Ruby

      Untuk menggunakan contoh Ruby di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .

      REST

      Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .

      Membuat cek uptime

      Bagian ini menjelaskan cara membuat dan mengonfigurasi pemeriksaan waktu aktif.

      Untuk membuat cek uptime bagi load balancer eksternal yang telah mengonfigurasi setidaknya satu port TCP atau HTTP/s, Anda dapat mengikuti petunjuk berikut. Cara lainnya adalah dengan membuka halaman Detail layanan untuk layanan tersebut, lalu mengklik Buat pemeriksaan uptime. Saat Anda memulai dari halaman Service details, kolom khusus layanan akan terisi otomatis.

      Konsol

      Untuk membuat cek uptime menggunakan konsol Google Cloud , lakukan hal berikut:

      1. Di konsol Google Cloud , buka halaman  Pemeriksaan uptime:

        Buka Cek uptime

        Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

      2. Di toolbar konsol Google Cloud , pilih Google Cloud project Anda. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mendukung aplikasi.
      3. Klik Buat Cek Uptime.

        Buat dialog cek uptime.

      4. Tentukan target cek uptime:

        1. Pilih protokol. Anda dapat memilih HTTP, HTTPS, atau TCP.

        2. Pilih salah satu jenis resource berikut:

          • URL: Alamat IPv4 atau nama host apa pun. Jalur dan port dimasukkan secara terpisah.
          • Layanan LoadBalancer Kubernetes: Layanan Kubernetes jenis LoadBalancer.
          • Instance: Instance Compute Engine atau AWS EC2.
          • App Engine: Aplikasi (modul) App Engine.
          • Elastic Load Balancer: Load balancer AWS.
        3. Masukkan kolom khusus protokol:

          • Untuk pemeriksaan TCP, masukkan port.

          • Untuk pemeriksaan HTTP dan HTTPS, Anda dapat memasukkan jalur dalam host atau resource Anda. Semua pemeriksaan waktu beroperasi yang menggunakan protokol ini mengirim permintaan ke http://target/path. Dalam ekspresi ini, untuk resource URL, target adalah nama host atau alamat IP. Untuk resource App Engine, target adalah nama host yang berasal dari nama layanan. Untuk resource instance dan load balancer, target adalah alamat IP yang berasal dari nama yang Anda berikan untuk resource atau grup resource.

            Jika Anda mengosongkan kolom path atau jika Anda menyetel nilai ke /, maka permintaan akan dikirim ke http://target/.

            Misalnya, untuk mengeluarkan pemeriksaan uptime ke resource URL example.com/tester, tetapkan kolom Nama host ke example.com dan kolom Jalur ke /tester.

            Misalkan Anda telah men-deploy server ke App Engine dengan dispatcher yang mendukung / dan /hello. Untuk mengeluarkan pemeriksaan waktu aktif ke handler '/', biarkan kolom Path kosong. Untuk mengeluarkan pemeriksaan waktu aktif ke handler /hello, tetapkan nilai kolom Path ke /hello.

        4. Masukkan kolom khusus resource:

          • Untuk resource URL, masukkan nama host di kolom Hostname. Misalnya, masukkan example.com.

          • Untuk resource App Engine, masukkan nama layanan di kolom Service.

          • Untuk resource Elastic Load Balancer dan Instance, lengkapi kolom Berlaku untuk sebagai berikut:

            • Untuk mengeluarkan pemeriksaan uptime ke satu instance atau load balancer, pilih Tunggal, lalu gunakan menu untuk memilih instance atau load balancer tertentu.
            • Untuk mengeluarkan pemeriksaan waktu aktif ke grup Pemantauan, pilih Grup, lalu gunakan menu untuk memilih nama grup.
        5. Opsional: Untuk menetapkan seberapa sering pemeriksaan waktu aktif dijalankan, gunakan kolom Frekuensi pemeriksaan.

        6. Opsional: Untuk memilih wilayah pemeriksa, atau mengonfigurasi sertifikat SSL, autentikasi, header, dan port untuk pemeriksaan HTTP dan HTTPS, klik Opsi target lainnya:

          • Wilayah: Pilih wilayah tempat pemeriksaan uptime akan menerima permintaan. Pemeriksaan uptime harus memiliki minimal tiga pemeriksa. Ada satu pemeriksa di semua wilayah kecuali Amerika Serikat, yang memiliki tiga pemeriksa. Setelan default, Global, mencakup semua wilayah.
          • Ping ICMP: Konfigurasi pemeriksaan uptime untuk mengirim hingga tiga ping. Untuk mengetahui informasi selengkapnya, lihat Menggunakan ping ICMP.
          • Metode Permintaan: Untuk pemeriksaan HTTP, pilih metode permintaan.
          • Isi: Untuk pemeriksaan HTTP POST, masukkan isi yang dienkode ke URL; Anda harus melakukan encoding sendiri. Untuk semua pemeriksaan lainnya, biarkan kolom ini kosong.
          • Header host: Isi kolom ini untuk memeriksa host virtual. Kolom ini tidak tersedia untuk pemeriksaan TCP.
          • Port: Tentukan nomor port.
          • Header Kustom: Masukkan header kustom, dan lindungi dengan enkripsi jika diinginkan. Enkripsi menyembunyikan nilai header dalam formulir. Gunakan enkripsi untuk header yang terkait dengan autentikasi yang tidak ingin Anda perlihatkan kepada orang lain.
          • Autentikasi: Nilai ini dikirim sebagai header Otorisasi. Kolom ini tidak tersedia untuk pemeriksaan TCP.

            Pilih dari opsi berikut:

            • Autentikasi Dasar: Masukkan satu nama pengguna dan sandi. Sandi selalu tersembunyi dalam formulir.
            • Autentikasi Agen Layanan: Jika diaktifkan, token identitas akan dibuat untuk agen layanan pemantauan. Opsi ini hanya tersedia untuk pemeriksaan HTTPS.
          • Validasi Sertifikat SSL: Jika Anda memilih HTTPS untuk resource URL, secara default, layanan akan mencoba terhubung melalui HTTPS dan memvalidasi sertifikat SSL. Pemeriksaan waktu aktif gagal jika URL memiliki sertifikat yang tidak valid. Alasan sertifikat tidak valid meliputi hal berikut:

            • Masa berlaku sertifikat telah habis
            • Sertifikat yang ditandatangani sendiri
            • Sertifikat dengan ketidakcocokan nama domain
            • Sertifikat yang menggunakan ekstensi Akses Informasi Otoritas (AIA).

            Untuk memaksa pemeriksaan waktu aktif HTTPS memvalidasi sertifikat SSL, pilih Validasi sertifikat SSL.

            Untuk menonaktifkan validasi sertifikat SSL, hapus centang pada opsi Validasi sertifikat SSL.

            Jika Anda memiliki Sertifikat SSL dengan Ekstensi AIA, maka Anda harus menonaktifkan validasi sertifikat SSL. Jenis sertifikat ini tidak didukung dan gagal dalam urutan validasi. Biasanya, pesan errornya adalah "Responded with SSL handshake Error in 10000 ms".

            Anda dapat menggunakan metrik monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires untuk membuat kebijakan pemberitahuan yang memberi tahu Anda sebelum masa berlaku sertifikat Anda berakhir. Untuk mengetahui informasi selengkapnya, lihat Contoh kebijakan: Kebijakan cek uptime.

            Pilih kotak centang Validasi sertifikat SSL.

      5. Klik Lanjutkan dan konfigurasi persyaratan respons. Semua setelan di bagian ini memiliki nilai default:

        • Untuk mengubah periode waktu tunggu pemeriksaan waktu aktif, gunakan kolom Waktu Tunggu Respons. Pemeriksaan uptime gagal jika tidak ada respons yang diterima dari lebih dari satu lokasi dalam periode ini.

        • Untuk mengonfigurasi pemeriksaan waktu aktif agar melakukan pencocokan konten, pastikan label tombolnya adalah Pencocokan konten diaktifkan:

          • Pilih Jenis Pencocokan Konten Respons dari menu opsi. Kolom ini menentukan cara konten respons dibandingkan dengan data yang ditampilkan. Misalnya, anggaplah konten respons adalah abcd dan jenis pencocokan konten adalah Berisi. Pemeriksaan waktu aktif berhasil hanya jika data respons berisi abcd. Untuk mengetahui informasi selengkapnya, lihat Memvalidasi data respons.
          • Masukkan Konten respons. Konten respons harus berupa string yang tidak lebih dari 1024 byte. Di API, kolom ini adalah objek ContentMatcher.
        • Untuk mencegah entri log dibuat karena cek uptime, hapus centang Log kegagalan pemeriksaan.

        • Untuk pemeriksaan uptime HTTP, konfigurasikan kode respons yang dapat diterima. Secara default, pemeriksaan uptime HTTP menandai setiap respons 2xx sebagai respons yang berhasil.

      6. Klik Lanjutkan dan konfigurasi notifikasi.

        Agar diberi tahu saat cek uptime gagal, buat kebijakan pemberitahuan dan konfigurasi saluran notifikasi untuk kebijakan tersebut:

        1. Opsional: Perbarui nama kebijakan pemberitahuan.
        2. Opsional: Di kolom Durasi, pilih durasi kegagalan pemeriksaan uptime sebelum notifikasi dikirim. Secara default, notifikasi dikirim saat setidaknya dua region melaporkan kegagalan pemeriksaan uptime selama minimal satu menit.
        3. Di kotak berlabel Saluran notifikasi, klik Menu, pilih saluran yang akan ditambahkan, lalu klik Oke.

          Di menu, saluran notifikasi dikelompokkan menurut abjad untuk setiap jenis saluran.

        Jika Anda tidak ingin membuat kebijakan pemberitahuan, pastikan bahwa teks tombol aktif/nonaktif adalah Jangan buat pemberitahuan.

      7. Klik Lanjutkan dan selesaikan pemeriksaan uptime Anda:

        1. Masukkan judul deskriptif untuk cek uptime.

        2. Opsional: Untuk menambahkan label yang ditentukan pengguna ke pemeriksaan uptime, lakukan hal berikut:

          1. Klik Tampilkan label pengguna.
          2. Di kolom Key, masukkan nama untuk label. Nama label harus diawali dengan huruf kecil, dan dapat berisi huruf kecil, angka, garis bawah, dan tanda pisah. Misalnya, masukkan severity.
          3. Di kolom Nilai, masukkan nilai untuk label Anda. Nilai label dapat berisi huruf kecil, angka, garis bawah, dan tanda hubung. Misalnya, masukkan critical.
          4. Untuk setiap label tambahan, klik Tambahkan label pengguna, lalu masukkan kunci dan nilai label.
        3. Untuk memverifikasi konfigurasi cek uptime, klik Uji. Jika hasilnya tidak sesuai dengan yang Anda harapkan, lihat Kegagalan pemeriksaan, perbaiki konfigurasi Anda, lalu ulangi langkah verifikasi.

        4. Klik Buat. Jika Anda memilih Buat dan kolom wajib diisi tidak diisi, pesan error akan ditampilkan.

      gcloud

      Untuk membuat pemeriksaan uptime, jalankan perintah gcloud monitoring uptime create:

      gcloud monitoring uptime create DISPLAY_NAME REQUIRED_FLAGS OPTIONAL_FLAGS --project=PROJECT_ID
      

      Sebelum menjalankan perintah sebelumnya, ganti perintah berikut:

      • PROJECT_ID: ID project. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mendukung aplikasi.

      • DISPLAY_NAME: Nama untuk pemeriksaan uptime Anda.

      • REQUIRED_FLAGS: Konfigurasi untuk menentukan resource yang diperiksa oleh pemeriksaan uptime. Misalnya, perintah berikut akan membuat pemeriksaan uptime yang menguji URL EXAMPLE.com untuk project tertentu:

        gcloud monitoring uptime create DISPLAY_NAME \
        --resource-labels=host=EXAMPLE.com,project_id=PROJECT_ID \
        --resource-type=uptime-url
        

        Perintah sebelumnya menentukan nilai untuk setiap label yang diperlukan oleh jenis resource uptime-url.

      • OPTIONAL_FLAGS: Konfigurasi tanda ini untuk mengganti nilai default. Misalnya, Anda harus menetapkan tanda --protocol saat protokolnya bukan http.

      Terraform

      Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi penyedia Terraform.

      Untuk membuat cek uptime dan kebijakan pemberitahuan untuk memantau cek tersebut, lakukan langkah berikut:

      1. Instal dan konfigurasi Terraform untuk project Anda. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mendukung aplikasi.
      2. Edit file konfigurasi Terraform Anda dan tambahkan resource google_monitoring_uptime_check_config, lalu terapkan file konfigurasi.

        Contoh berikut mengilustrasikan konfigurasi yang memeriksa URL publik:

        resource "google_monitoring_uptime_check_config" "example" {
            display_name = "example"
            timeout      = "60s"
        
            http_check {
                port = "80"
                request_method = "GET"
            }
        
            monitored_resource {
                type = "uptime_url"
                labels = {
                    project_id = "PROJECT_ID"
                    host="EXAMPLE.com"
                }
            }
        
            checker_type = "STATIC_IP_CHECKERS"
        }
        

        Pada ekspresi sebelumnya:

        • PROJECT_ID adalah ID project Anda. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mendukung aplikasi.
        • EXAMPLE.com adalah URL Host.
      3. Opsional: Buat saluran notifikasi dan kebijakan pemberitahuan:

        Langkah-langkah berikut menggunakan konsol Google Cloud untuk membuat saluran notifikasi dan kebijakan pemberitahuan. Pendekatan ini memastikan bahwa kebijakan pemberitahuan hanya memantau data yang dihasilkan oleh cek uptime Anda.

        1. Untuk membuat saluran notifikasi, lakukan hal berikut:

          1. Di konsol Google Cloud , buka halaman  Pemberitahuan:

            Buka Alerting

            Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

          2. Di toolbar konsol Google Cloud , pilih Google Cloud project Anda. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mendukung aplikasi.
          3. Pilih Kelola saluran notifikasi.
          4. Buka jenis saluran yang ingin Anda tambahkan, klik Tambahkan, lalu selesaikan dialog.
        2. Untuk membuat kebijakan pemberitahuan, lakukan langkah berikut:

          1. Di konsol Google Cloud , buka halaman  Pemeriksaan uptime:

            Buka Cek uptime

            Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

          2. Di toolbar konsol Google Cloud , pilih Google Cloud project Anda. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mendukung aplikasi.
          3. Temukan cek uptime Anda, pilih Lainnya, lalu pilih Tambahkan kebijakan pemberitahuan.
          4. Dalam dialog, buka bagian Notifikasi dan nama, luaskan Saluran Notifikasi, lalu buat pilihan Anda.
          5. Beri nama kebijakan pemberitahuan, lalu klik Buat kebijakan.

        Anda dapat membuat kebijakan pemberitahuan dengan menambahkan resource google_monitoring_alert_policy ke file konfigurasi dan menerapkan konfigurasi baru.

      C#

      Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

      public static object CreateUptimeCheck(string projectId, string hostName,
          string displayName)
      {
          // Define a new config.
          var config = new UptimeCheckConfig()
          {
              DisplayName = displayName,
              MonitoredResource = new MonitoredResource()
              {
                  Type = "uptime_url",
                  Labels = { { "host", hostName } }
              },
              HttpCheck = new UptimeCheckConfig.Types.HttpCheck()
              {
                  Path = "/",
                  Port = 80,
              },
              Timeout = TimeSpan.FromSeconds(10).ToDuration(),
              Period = TimeSpan.FromMinutes(5).ToDuration()
          };
          // Create a client.
          var client = UptimeCheckServiceClient.Create();
          ProjectName projectName = new ProjectName(projectId);
          // Create the config.
          var newConfig = client.CreateUptimeCheckConfig(
              projectName,
              config,
              CallSettings.FromExpiration(
                  Expiration.FromTimeout(
                      TimeSpan.FromMinutes(2))));
          Console.WriteLine(newConfig.Name);
          return 0;
      }
      

      Java

      Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

      private static void createUptimeCheck(
          String projectId, String displayName, String hostName, String pathName) throws IOException {
        CreateUptimeCheckConfigRequest request =
            CreateUptimeCheckConfigRequest.newBuilder()
                .setParent(ProjectName.format(projectId))
                .setUptimeCheckConfig(
                    UptimeCheckConfig.newBuilder()
                        .setDisplayName(displayName)
                        .setMonitoredResource(
                            MonitoredResource.newBuilder()
                                .setType("uptime_url")
                                .putLabels("host", hostName))
                        .setHttpCheck(HttpCheck.newBuilder().setPath(pathName).setPort(80))
                        .setTimeout(Duration.newBuilder().setSeconds(10))
                        .setPeriod(Duration.newBuilder().setSeconds(300)))
                .build();
        try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
          UptimeCheckConfig config = client.createUptimeCheckConfig(request);
          System.out.println("Uptime check created: " + config.getName());
        } catch (Exception e) {
          usage("Exception creating uptime check: " + e.toString());
          throw e;
        }
      }

      Go

      Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

      
      // createGet creates an example uptime check on a GET request.
      func createGet(w io.Writer, projectID string) (*monitoringpb.UptimeCheckConfig, error) {
      	ctx := context.Background()
      	client, err := monitoring.NewUptimeCheckClient(ctx)
      	if err != nil {
      		return nil, fmt.Errorf("NewUptimeCheckClient: %w", err)
      	}
      	defer client.Close()
      	req := &monitoringpb.CreateUptimeCheckConfigRequest{
      		Parent: "projects/" + projectID,
      		UptimeCheckConfig: &monitoringpb.UptimeCheckConfig{
      			DisplayName: "new GET uptime check",
      			Resource: &monitoringpb.UptimeCheckConfig_MonitoredResource{
      				MonitoredResource: &monitoredres.MonitoredResource{
      					Type: "uptime_url",
      					Labels: map[string]string{
      						"host": "example.com",
      					},
      				},
      			},
      			CheckRequestType: &monitoringpb.UptimeCheckConfig_HttpCheck_{
      				HttpCheck: &monitoringpb.UptimeCheckConfig_HttpCheck{
      					RequestMethod: monitoringpb.UptimeCheckConfig_HttpCheck_GET,
      					Path:          "/",
      					Port:          80,
      				},
      			},
      			Timeout: &duration.Duration{Seconds: 10},
      			Period:  &duration.Duration{Seconds: 300},
      		},
      	}
      	config, err := client.CreateUptimeCheckConfig(ctx, req)
      	if err != nil {
      		return nil, fmt.Errorf("CreateUptimeCheckConfig GET: %w", err)
      	}
      	fmt.Fprintf(w, "Successfully created GET uptime check %q\n", config.GetDisplayName())
      	return config, nil
      }
      
      // createPost creates an example uptime check on a POST request.
      func createPost(w io.Writer, projectID string) (*monitoringpb.UptimeCheckConfig, error) {
      	ctx := context.Background()
      	client, err := monitoring.NewUptimeCheckClient(ctx)
      	if err != nil {
      		return nil, fmt.Errorf("NewUptimeCheckClient: %w", err)
      	}
      	defer client.Close()
      	req := &monitoringpb.CreateUptimeCheckConfigRequest{
      		Parent: "projects/" + projectID,
      		UptimeCheckConfig: &monitoringpb.UptimeCheckConfig{
      			DisplayName: "new POST uptime check",
      			Resource: &monitoringpb.UptimeCheckConfig_MonitoredResource{
      				MonitoredResource: &monitoredres.MonitoredResource{
      					Type: "uptime_url",
      					Labels: map[string]string{
      						"host": "example.com",
      					},
      				},
      			},
      			CheckRequestType: &monitoringpb.UptimeCheckConfig_HttpCheck_{
      				HttpCheck: &monitoringpb.UptimeCheckConfig_HttpCheck{
      					RequestMethod: monitoringpb.UptimeCheckConfig_HttpCheck_POST,
      					ContentType:   monitoringpb.UptimeCheckConfig_HttpCheck_URL_ENCODED,
      					Path:          "/",
      					Port:          80,
      					Body:          []byte(base64.URLEncoding.EncodeToString([]byte("key: value"))),
      				},
      			},
      			Timeout: &duration.Duration{Seconds: 10},
      			Period:  &duration.Duration{Seconds: 300},
      		},
      	}
      	config, err := client.CreateUptimeCheckConfig(ctx, req)
      	if err != nil {
      		return nil, fmt.Errorf("CreateUptimeCheckConfig POST: %w", err)
      	}
      	fmt.Fprintf(w, "Successfully created POST uptime check %q\n", config.GetDisplayName())
      	return config, nil
      }
      

      Node.js

      Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

      // Imports the Google Cloud client library
      const monitoring = require('@google-cloud/monitoring');
      
      // Creates a client
      const client = new monitoring.UptimeCheckServiceClient();
      
      /**
       * TODO(developer): Uncomment and edit the following lines of code.
       */
      // const projectId = 'YOUR_PROJECT_ID';
      // const hostname = 'mydomain.com';
      
      const request = {
        // i.e. parent: 'projects/my-project-id'
        parent: client.projectPath(projectId),
        uptimeCheckConfig: {
          displayName: 'My Uptime Check',
          monitoredResource: {
            // See the Uptime Check docs for supported MonitoredResource types
            type: 'uptime_url',
            labels: {
              host: hostname,
            },
          },
          httpCheck: {
            path: '/',
            port: 80,
          },
          timeout: {
            seconds: 10,
          },
          period: {
            seconds: 300,
          },
        },
      };
      
      // Creates an uptime check config for a GCE instance
      const [uptimeCheckConfig] = await client.createUptimeCheckConfig(request);
      console.log('Uptime check created:');
      console.log(`ID: ${uptimeCheckConfig.name}`);
      console.log(`Display Name: ${uptimeCheckConfig.displayName}`);
      console.log('Resource: %j', uptimeCheckConfig.monitoredResource);
      console.log('Period: %j', uptimeCheckConfig.period);
      console.log('Timeout: %j', uptimeCheckConfig.timeout);
      console.log(`Check type: ${uptimeCheckConfig.check_request_type}`);
      console.log(
        'Check: %j',
        uptimeCheckConfig.httpCheck || uptimeCheckConfig.tcpCheck
      );
      console.log(
        `Content matchers: ${uptimeCheckConfig.contentMatchers
          .map(matcher => matcher.content)
          .join(', ')}`
      );
      console.log(`Regions: ${uptimeCheckConfig.selectedRegions.join(', ')}`);
      

      PHP

      Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

      use Google\Api\MonitoredResource;
      use Google\Cloud\Monitoring\V3\Client\UptimeCheckServiceClient;
      use Google\Cloud\Monitoring\V3\CreateUptimeCheckConfigRequest;
      use Google\Cloud\Monitoring\V3\UptimeCheckConfig;
      
      /**
       * Example:
       * ```
       * create_uptime_check($projectId, 'myproject.appspot.com', 'Test Uptime Check!');
       * ```
       *
       * @param string $projectId Your project ID
       * @param string $hostName
       * @param string $displayName
       */
      function create_uptime_check($projectId, $hostName = 'example.com', $displayName = 'New uptime check')
      {
          $projectName = 'projects/' . $projectId;
          $uptimeCheckClient = new UptimeCheckServiceClient([
              'projectId' => $projectId,
          ]);
      
          $monitoredResource = new MonitoredResource();
          $monitoredResource->setType('uptime_url');
          $monitoredResource->setLabels(['host' => $hostName]);
      
          $uptimeCheckConfig = new UptimeCheckConfig();
          $uptimeCheckConfig->setDisplayName($displayName);
          $uptimeCheckConfig->setMonitoredResource($monitoredResource);
          $createUptimeCheckConfigRequest = (new CreateUptimeCheckConfigRequest())
              ->setParent($projectName)
              ->setUptimeCheckConfig($uptimeCheckConfig);
      
          $uptimeCheckConfig = $uptimeCheckClient->createUptimeCheckConfig($createUptimeCheckConfigRequest);
      
          printf('Created an uptime check: %s' . PHP_EOL, $uptimeCheckConfig->getName());
      }

      Python

      Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

      def create_uptime_check_config_get(
          project_id: str, host_name: str = None, display_name: str = None
      ) -> uptime.UptimeCheckConfig:
          """Creates a new uptime check configuration
      
          Args:
              project_id: Google Cloud project id where the uptime check is created
              host_name: An example label's value for the "host" label
              display_name: A human friendly name of the configuration
      
          Returns:
              A structure that describes a new created uptime check
          """
          config = monitoring_v3.UptimeCheckConfig()
          config.display_name = display_name or "New GET uptime check"
          config.monitored_resource = {
              "type": "uptime_url",
              "labels": {"host": host_name or "example.com"},
          }
          config.http_check = {
              "request_method": monitoring_v3.UptimeCheckConfig.HttpCheck.RequestMethod.GET,
              "path": "/",
              "port": 80,
          }
          config.timeout = {"seconds": 10}
          config.period = {"seconds": 300}
      
          client = monitoring_v3.UptimeCheckServiceClient()
          new_config = client.create_uptime_check_config(
              request={"parent": project_id, "uptime_check_config": config}
          )
          pprint.pprint(new_config)
          return new_config
      
      
      def create_uptime_check_config_post(
          project_id: str, host_name: str = None, display_name: str = None
      ) -> uptime.UptimeCheckConfig:
          """Creates a new uptime check configuration
      
          Args:
              project_id: Google Cloud project id where the uptime check is created
              host_name: An example label's value for the "host" label
              display_name: A human friendly name of the configuration
      
          Returns:
              A structure that describes a new created uptime check
          """
          config = monitoring_v3.UptimeCheckConfig()
          config.display_name = display_name or "New POST uptime check"
          config.monitored_resource = {
              "type": "uptime_url",
              "labels": {"host": host_name or "example.com"},
          }
          config.http_check = {
              "request_method": monitoring_v3.UptimeCheckConfig.HttpCheck.RequestMethod.POST,
              "content_type": monitoring_v3.UptimeCheckConfig.HttpCheck.ContentType.URL_ENCODED,
              "body": "foo=bar".encode("utf-8"),
              "path": "/",
              "port": 80,
          }
          config.timeout = {"seconds": 10}
          config.period = {"seconds": 300}
      
          client = monitoring_v3.UptimeCheckServiceClient()
          new_config = client.create_uptime_check_config(
              request={"parent": project_id, "uptime_check_config": config}
          )
          pprint.pprint(new_config)
          return new_config
      
      

      Ruby

      Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

      gem "google-cloud-monitoring"
      require "google/cloud/monitoring"
      
      def create_uptime_check_config project_id: nil, host_name: nil, display_name: nil
        client = Google::Cloud::Monitoring.uptime_check_service
        project_name = client.project_path project: project_id
        config = {
          display_name:       display_name.nil? ? "New uptime check" : display_name,
          monitored_resource: {
            type:   "uptime_url",
            labels: { "host" => host_name.nil? ? "example.com" : host_name }
          },
          http_check:         { path: "/", port: 80 },
          timeout:            { seconds: 10 },
          period:             { seconds: 300 }
        }
        new_config = client.create_uptime_check_config \
          parent:              project_name,
          uptime_check_config: config
        puts new_config.name
        new_config
      end

      REST

      Untuk membuat pemeriksaan uptime, panggil metode projects.uptimeCheckConfigs.create. Tetapkan parameter metode sebagai berikut:

      • parent: Wajib diisi. Project tempat cek uptime akan dibuat. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mendukung aplikasi. Kolom ini memiliki format berikut:

        projects/PROJECT_ID
        
      • Isi permintaan harus berisi objek UptimeCheckConfig untuk pemeriksaan uptime baru. Halaman ini memberikan informasi tentang beberapa kolom. Untuk dokumentasi lengkap tentang objek ini dan kolomnya, lihat UptimeCheckConfig:

        • Biarkan kolom name objek konfigurasi kosong. Sistem menetapkan kolom ini saat membuat objek konfigurasi respons.

        • Jika Anda mengonfigurasi pemeriksaan HTTP atau HTTPS, Anda harus mengisi kolom HttpCheck dari objek UptimeCheckConfig. Dalam objek ini, tetapkan kolom requestMethod sebagai GET atau POST. Jika kolom ini dihilangkan atau disetel ke METHOD_UNSPECIFIED, permintaan GET akan dikeluarkan.

          Jika Anda mengonfigurasi permintaan POST, selesaikan kolom contentType, customContentType opsional, dan body.

      Metode create menampilkan objek UptimeCheckConfig untuk konfigurasi baru.

      Jika konfigurasi waktu aktif yang dibuat tidak berfungsi seperti yang diharapkan, lihat bagian Pemeriksaan kegagalan di halaman ini.

      Mungkin ada penundaan hingga 5 menit sebelum hasil pemeriksaan uptime mulai mengalir ke Monitoring. Selama waktu tersebut, dasbor cek uptime melaporkan status sebagai "tidak ada data yang tersedia".

      Menggunakan ping ICMP

      Untuk membantu Anda memecahkan masalah kegagalan cek uptime publik, Anda dapat mengonfigurasi cek uptime untuk mengirim hingga 3 ping ICMP selama pemeriksaan. Ping dapat membantu Anda membedakan antara kegagalan yang disebabkan, misalnya, oleh masalah konektivitas jaringan dan oleh waktu tunggu di aplikasi Anda.

      Secara default, pemeriksaan waktu beroperasi tidak mengirimkan ping. Setiap ping menambahkan beberapa latensi ke pemeriksaan uptime. Pemeriksaan uptime pribadi tidak dapat mengirim ping.

      Jika cek uptime publik gagal, hasil ping akan ditulis ke log Cloud Logging. Jika ping gagal, kolom berikut akan ditambahkan ke kolom httpRequest dalam entri log:

      • rtt_usec: waktu pulang pergi untuk setiap permintaan ping yang tidak berhasil.
      • unreachable_count: jumlah permintaan ping yang menampilkan kode status ICMP_DEST_UNREACH.
      • no_answer_count: jumlah permintaan ping yang waktu tunggunya habis dan tidak menampilkan respons.

      Hasil ping untuk pemeriksaan uptime yang berhasil tidak dicatat.

      Mengonfigurasi ping

      Setiap konfigurasi pemeriksaan uptime mencakup objek HttpCheck atau objek TcpCheck. Kedua objek ini menyertakan kolom pingConfig. Gunakan kolom ini untuk menentukan jumlah ping ICMP yang akan disertakan dengan setiap pemeriksaan, hingga 3. Secara default, tidak ada ping yang dikirim.

      Untuk mengonfigurasi ping, lakukan salah satu hal berikut:

      • Saat menggunakan konsol Google Cloud , luaskan Opsi penargetan lainnya dan masukkan nilai di kolom Ping ICMP.

      • Saat menggunakan Cloud Monitoring API, gunakan objek PingConfig, yang memiliki struktur berikut:

        {
          "pingsCount": integer
        }
        

        Untuk mengetahui informasi selengkapnya tentang penggunaan Monitoring API untuk konfigurasi pemeriksaan uptime, lihat Membuat pemeriksaan uptime: API atau Mengedit pemeriksaan uptime: API.

      Memverifikasi cek uptime

      Saat membuat cek uptime di konsol Google Cloud , Anda dapat menguji konfigurasi sebelum menyimpannya.

      Pemeriksaan yang berhasil

      Pemeriksaan waktu aktif berhasil jika kondisi berikut terpenuhi:

      • Status HTTP cocok dengan kriteria yang Anda pilih.
      • Respons tidak memiliki konten yang diperlukan atau penelusuran respons untuk konten yang diperlukan berhasil.

      Pemeriksaan gagal

      Berikut adalah beberapa kemungkinan penyebab kegagalan pemeriksaan waktu aktif:

      • Error Koneksi - Ditolak: Jika Anda menggunakan jenis koneksi HTTP default, periksa apakah Anda telah menginstal server web yang merespons permintaan HTTP. Error koneksi dapat terjadi pada instance baru jika Anda belum menginstal server web; lihat Panduan memulai Compute Engine. Jika Anda 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 Forbidden: Layanan menampilkan kode error ke pemeriksa uptime. Misalnya, konfigurasi server web Apache default menampilkan kode ini di Amazon Linux, tetapi menampilkan kode 200 (Berhasil) di beberapa versi Linux lainnya. Lihat tutorial LAMP untuk Amazon Linux atau dokumentasi server web Anda.
      • 404 Tidak ditemukan: Jalur mungkin salah.
      • 408 Waktu tunggu permintaan habis, atau tidak ada respons: Nomor port mungkin salah, layanan mungkin tidak berjalan, layanan mungkin tidak dapat diakses, atau waktu tunggu mungkin terlalu rendah. Pastikan firewall Anda mengizinkan traffic dari server uptime; lihat Mencantumkan alamat IP server cek uptime. Batas waktu ditentukan sebagai bagian dari opsi Validasi Respons.

        Waktu tunggu permintaan mungkin terjadi karena kemacetan jaringan. Misalnya, karena kemacetan jaringan sementara, Anda mungkin melihat bahwa satu pemeriksa gagal, tetapi semua pemeriksa lainnya berhasil. Kegagalan satu pemeriksa tidak akan menyebabkan notifikasi jika kebijakan pemberitahuan Anda menggunakan konfigurasi default.

      Jika cek uptime Anda dikonfigurasi untuk mengirim ping, hasil ping untuk cek uptime yang gagal akan ditulis ke Cloud Logging. Untuk mengetahui informasi selengkapnya, lihat Menggunakan ping ICMP.

      Langkah berikutnya