Penyembuhan diri dengan apigee-monit

Apigee Edge untuk Private Cloud mencakup apigee-monit, sebuah alat berbasis open source utilitas Monit. apigee-monit secara berkala layanan Edge polling; jika layanan tidak tersedia, apigee-monit akan mencoba memulai ulang layanan.

Untuk menggunakan apigee-monit, Anda harus menginstal secara manual. Ini bukan bagian dari penginstalan standar.

Secara default, apigee-monit memeriksa status layanan Edge setiap 60 detik.

Mulai cepat

Bagian ini menunjukkan cara menyiapkan dan menjalankan apigee-monit dengan cepat.

Jika Anda menggunakan Amazon Linux atau Oracle-Linux-7.X, pertama-tama install monit melalui Fedora. Jika tidak, lewati langkah ini.

sudo yum install -y https://kojipkgs.fedoraproject.org/packages/monit/5.25.1/1.el6/x86_64/monit-5.25.1-1.el6.x86_64.rpm

Untuk menginstal apigee-monit, lakukan langkah-langkah berikut:

  Instal apigee-monit
/opt/apigee/apigee-service/bin/apigee-service apigee-monit install
/opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

Tindakan ini akan menginstal apigee-monit dan mulai memantau semua komponen pada node secara default.

  Menghentikan pemantauan komponen
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
  Memulai komponen pemantauan
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all
  Mendapatkan informasi status ringkasan
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
  Lihat file log apigee-monit
cat /opt/apigee/var/log/apigee-monit/apigee-monit.log

Setiap topik ini dan topik lainnya dijelaskan secara mendetail di bagian selanjutnya.

Tentang apigee-monit

apigee-monit membantu memastikan bahwa semua komponen pada node tetap aktif dan berjalan. Hal ini dilakukan dengan menyediakan berbagai layanan, termasuk:

  • Memulai ulang layanan yang gagal
  • Menampilkan informasi ringkasan
  • Status pemantauan logging
  • Mengirim notifikasi
  • Memantau layanan non-Edge

Apigee merekomendasikan Anda agar memantau apigee-monit untuk memastikannya sudah berjalan. Untuk informasi selengkapnya, lihat Memantau apigee-monit.

arsitektur apigee-monit

Selama penginstalan dan konfigurasi Apigee Edge untuk Private Cloud, Anda dapat menginstal instance terpisah sebesar apigee-monit di setiap node dalam cluster Anda. Instance apigee-monit yang terpisah ini beroperasi secara independen dari satu lainnya: tidak mengomunikasikan status komponennya ke {i>node<i} lain, juga tidak mengkomunikasikan kegagalan utilitas pemantauan itu sendiri ke layanan pusat mana pun.

Gambar berikut menampilkan arsitektur apigee-monit dalam cluster 5 node:

Arsitektur
  Monit Apigee di cluster 5 node
Gambar 1: Instance apigee-monit terpisah berjalan secara terpisah pada setiap node dalam cluster

Konfigurasi komponen

apigee-monit menggunakan konfigurasi komponen untuk menentukan komponen mana yang akan dipantau, dan komponen yang harus diperiksa, dan tindakan yang harus diambil jika terjadi kegagalan.

Secara default, apigee-monit memantau semua komponen Edge pada node menggunakan komponen yang telah ditentukan sebelumnya konfigurasi standar. Untuk melihat setelan default, Anda dapat melihat konfigurasi komponen apigee-monit . Anda tidak dapat mengubah konfigurasi komponen default.

apigee-monit memeriksa berbagai aspek komponen, bergantung pada komponen mana yang diperiksa. Tujuan tabel berikut mencantumkan apa saja yang diperiksa apigee-monit untuk setiap komponen dan menampilkan lokasi komponen tersebut konfigurasi untuk setiap komponen. Perhatikan bahwa beberapa komponen ditentukan dalam satu konfigurasi yang dikonfigurasi orang lain dengan sendirinya.

Komponen Lokasi konfigurasi Hal yang dipantau
Server Pengelolaan /opt/apigee/edge-management-server/monit/default.conf Pemeriksaan apigee-monit:
  • Port yang ditentukan terbuka dan menerima permintaan
  • Protokol yang ditentukan didukung
  • Status respons

Selain itu, untuk komponen ini apigee-monit:

  • Memerlukan beberapa kegagalan dalam sejumlah siklus tertentu sebelum mengambil tindakan
  • Menetapkan jalur permintaan kustom
Pemroses Pesan /opt/apigee/edge-message-processor/monit/default.conf
Server Postgres /opt/apigee/edge-postgres-server/monit/default.conf
Server Qpid /opt/apigee/edge-qpid-server/monit/default.conf
Router /opt/apigee/edge-router/monit/default.conf
Cassandra
UI Edge
OpenLDAP
Postgres
Qpid
Penjaga Kebun Binatang
/opt/apigee/data/apigee-monit/monit.conf Pemeriksaan apigee-monit:
  • Layanan sedang berjalan

Contoh berikut menunjukkan konfigurasi komponen default untuk edge-router komponen:

check host edge-router with address localhost
  restart program = "/opt/apigee/apigee-service/bin/apigee-service edge-router monitrestart"
  if failed host 10.1.1.0 port 8081 and protocol http
    and request "/v1/servers/self/uuid"
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

  if failed port 15999 and protocol http
    and request "/v1/servers/self"
    and status < 600
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

Contoh berikut menunjukkan konfigurasi default untuk UI Klasik (edge-ui) komponen:

check process edge-ui
 with pidfile /opt/apigee/var/run/edge-ui/edge-ui.pid
 start program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui start" with timeout 55 seconds
 stop program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui stop"

Ini berlaku untuk UI Klasik, bukan UI Edge baru yang nama komponennya edge-management-ui.

Anda tidak dapat mengubah konfigurasi komponen default untuk komponen Apigee Edge untuk Private Cloud apa pun. Anda bisa, Namun, tambahkan konfigurasi komponen Anda sendiri untuk layanan eksternal, seperti endpoint target atau layanan httpd. Untuk informasi selengkapnya, lihat Konfigurasi komponen Non-Apigee.

Secara default, apigee-monit memantau semua komponen pada node yang menjalankannya. Anda dapat mengaktifkan atau menonaktifkannya untuk semua komponen atau masing-masing komponen. Untuk informasi selengkapnya, lihat:

Menginstal apigee-monit

apigee-monit tidak diinstal secara default; Anda dapat menginstalnya secara manual setelah mengupgrade atau menginstal Apigee Edge versi 4.19.01 atau yang lebih baru untuk Private Cloud.

Bagian ini menjelaskan cara menginstal apigee-monit.

Untuk informasi tentang meng-uninstal apigee-monit, lihat Uninstal apigee-monit.

Menginstal apigee-monit

Bagian ini menjelaskan cara menginstal apigee-monit.

Untuk menginstal apigee-monit:

  1. Instal apigee-monit dengan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit install
  2. Konfigurasikan apigee-monit dengan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
  3. Mulai apigee-monit dengan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit start
  4. Ulangi prosedur ini pada setiap node dalam cluster Anda.

Menghentikan dan mulai memantau komponen

Jika layanan berhenti karena alasan apa pun, apigee-monit akan mencoba memulai ulang layanan.

Hal ini dapat menyebabkan masalah jika Anda ingin sengaja menghentikan komponen. Sebagai contoh, Anda mungkin ingin menghentikan suatu komponen ketika Anda perlu mencadangkan atau meningkatkannya. Jika apigee-monit memulai ulang layanan selama pencadangan atau upgrade, prosedur pemeliharaan Anda dapat terganggu, yang mungkin menyebabkannya gagal.

Bagian berikut menunjukkan opsi untuk menghentikan pemantauan komponen.

Menghentikan komponen dan membatalkan pemantauannya

Untuk menghentikan komponen dan membatalkan pemantauannya, jalankan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop-component -c component_name
component_name dapat berupa salah satu dari yang berikut:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (Database PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (SSO Edge)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (Server Pengelolaan)
  • edge-management-ui (UI Edge baru)
  • edge-message-processor (Pemroses Pesan)
  • edge-postgres-server (Server Postgres)
  • edge-qpid-server (Server Qpid)
  • edge-router (Router Tepi)
  • edge-ui (UI Klasik)

Perhatikan bahwa "semua" bukan opsi yang valid untuk stop-component. Anda dapat menghentikan dan hanya berhenti memantau satu komponen dalam satu waktu dengan stop-component.

Untuk memulai ulang komponen dan melanjutkan pemantauan, jalankan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start-component -c component_name

Perhatikan bahwa "semua" bukan opsi yang valid untuk start-component.

Untuk mendapatkan petunjuk cara menghentikan dan membatalkan pemantauan semua komponen, lihat Menghentikan semua komponen dan berhenti memantaunya.

Membatalkan pemantauan komponen (tetapi jangan menghentikannya)

Untuk membatalkan pemantauan komponen (tetapi tidak menghentikannya), jalankan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
component_name dapat berupa salah satu dari yang berikut:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (Database PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (SSO Edge)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (Server Pengelolaan)
  • edge-management-ui (UI Edge baru)
  • edge-message-processor (Pemroses Pesan)
  • edge-postgres-server (Server Postgres)
  • edge-qpid-server (Server Qpid)
  • edge-router (Router Tepi)
  • edge-ui (UI Klasik)

Untuk melanjutkan pemantauan komponen, jalankan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name

Berhenti memantau semua komponen (tetapi jangan hentikan)

Untuk berhenti memantau semua komponen (tetapi tidak menghentikannya), jalankan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

Untuk melanjutkan pemantauan semua komponen, jalankan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

Menghentikan semua komponen dan berhenti memantaunya

Untuk menghentikan semua komponen dan berhenti memantaunya, jalankan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
/opt/apigee/apigee-service/bin/apigee-all stop

Untuk memulai ulang semua komponen dan melanjutkan pemantauan, jalankan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-all start
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

Untuk berhenti memantau semua komponen, Anda juga dapat menonaktifkan apigee-monit, seperti yang dijelaskan di Menghentikan, memulai, dan menonaktifkan apigee-monit.

Menghentikan, memulai, dan menonaktifkan apigee-monit

Seperti layanan lainnya, Anda dapat menghentikan dan memulai apigee-monit menggunakan apigee-service perintah. Selain itu, apigee-monit mendukung perintah unmonitor, yang memungkinkan Anda menghentikan sementara komponen pemantauan.

Menghentikan apigee-monit

Untuk menghentikan apigee-monit, gunakan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop

Memulai apigee-monit

Untuk memulai apigee-monit, gunakan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

Menonaktifkan apigee-monit

Anda dapat menangguhkan pemantauan semua komponen pada node menggunakan perintah berikut:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

Atau, Anda dapat menonaktifkan apigee-monit secara permanen dengan meng-uninstal-nya dari node, seperti yang dijelaskan di Uninstal apigee-monit.

Meng-uninstal apigee-monit

Untuk meng-uninstal apigee-monit:

    conf_monit_httpd_port Port daemon httpd. apigee-monit menggunakan httpd untuk dasbornya dan untuk mengaktifkan laporan/ringkasan. Nilai defaultnya adalah 2812. conf_monit_httpd_allow Batasan pada permintaan ke daemon httpd. apigee-monit penggunaan httpd untuk menjalankan aplikasi dasbornya dan mengaktifkan laporan/ringkasan. Nilai ini harus arahkan ke localhost (host tempat httpd berjalan.

    Untuk mewajibkan permintaan menyertakan nama pengguna dan sandi, gunakan sintaksis berikut:

    conf_monit_httpd_allow=allow username:"password"\nallow 127.0.0.1

    Saat menambahkan nama pengguna dan sandi, masukkan "\n" di antara setiap batasan. Larangan masukkan newline aktual atau enter dalam nilai.

    conf_monit_monit_datadir Direktori tempat detail peristiwa disimpan. conf_monit_monit_delay_time Jumlah waktu tunggu apigee-monit setelah pertama kali dimuat ke memori sebelum yang dijalankan. Hal ini hanya memengaruhi apigee-monit pada pemeriksaan proses pertama. conf_monit_monit_logdir Lokasi file log apigee-monit. conf_monit_monit_retry_time Frekuensi saat apigee-monit mencoba memeriksa setiap proses; nilai defaultnya adalah 60 detik. conf_monit_monit_rundir Lokasi file PID dan status, yang digunakan apigee-monit untuk memeriksa proses.

    Untuk menyesuaikan setelan kontrol apigee-monit default:

    1. Edit file berikut:
      /opt/apigee/customer/application/monit.properties

      Jika file tidak ada, buat dan setel pemilik ke "apigee" pengguna:

      chown apigee:apigee /opt/apigee/customer/application/monit.properties

      Perhatikan bahwa jika file sudah ada, mungkin ada properti konfigurasi tambahan yang ditentukan di dalamnya melebihi apa yang tercantum dalam tabel di atas. Anda tidak boleh mengubah properti selain yang tercantum di atas.

    2. Tetapkan atau ganti nilai properti dengan nilai baru.

      Misalnya, untuk mengubah lokasi file log ke /tmp, tambahkan atau edit properti berikut:

      conf_monit_monit_logdir=/tmp/apigee-monit.log
    3. Simpan perubahan pada file monit.properties.
    4. Muat ulang apigee-monit dengan perintah berikut:
      /opt/apigee/apigee-service/bin/apigee-service apigee-monit reload

      Jika apigee-monit tidak dimulai ulang, periksa file log untuk menemukan error seperti yang dijelaskan di Mengakses file log apigee-monit.

    5. Ulangi prosedur ini untuk setiap node dalam cluster Anda.

    Perhatikan bahwa ini hanya untuk komponen non-Edge. Anda tidak dapat menyesuaikan konfigurasi komponen untuk komponen Edge.

    Mengakses file log apigee-monit

    apigee-monit mencatat semua aktivitas, termasuk peristiwa, mulai ulang, perubahan konfigurasi, dan notifikasi di log .

    Lokasi default file log adalah:

    /opt/apigee/var/log/apigee-monit/apigee-monit.log

    Anda dapat mengubah lokasi default dengan menyesuaikan kontrol apigee-monit setelan.

    Entri file log memiliki bentuk berikut:

    'edge-message-processor' trying to restart
    [UTC Dec 14 16:20:42] info     : 'edge-message-processor' trying to restart
    'edge-message-processor' restart: '/opt/apigee/apigee-service/bin/apigee-service edge-message-processor monitrestart'

    Anda tidak dapat menyesuaikan format entri file log apigee-monit.

    Lihat status gabungan dengan apigee-monit

    apigee-monit mencakup perintah berikut yang memberi Anda informasi status gabungan tentang komponen pada node:

    Perintah Penggunaan
    report
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    summary
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    Setiap perintah ini dijelaskan secara lebih mendetail di bagian selanjutnya.

    laporan

    Perintah report memberi Anda ringkasan yang diakumulasikan tentang jumlah komponen yang aktif, error, sedang diinisialisasi, atau saat ini tidak terpantau pada node. Tujuan contoh berikut memanggil perintah report:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report

    Contoh berikut menunjukkan output report pada AIO (all-in-one) konfigurasi:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    up:            11 (100.0%)
    down:           0 (0.0%)
    initialising:   0 (0.0%)
    unmonitored:    1 (8.3%)
    total:         12 services

    Dalam contoh ini, 11 dari 12 layanan dilaporkan oleh apigee-monit sebagai aktif. Satu layanan tidak yang sedang dipantau.

    Anda mungkin mendapatkan error Connection refused saat pertama kali menjalankan perintah report. Dalam hal ini, tunggu selama durasi conf_monit_monit_delay_time, lalu coba lagi.

    ringkasan

    Perintah summary mencantumkan setiap komponen dan memberikan statusnya. Hal berikut contoh memanggil perintah summary:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    Contoh berikut menunjukkan output summary pada AIO (all-in-one) konfigurasi:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
    Monit 5.25.1 uptime: 4h 20m
     Service Name                     Status                      Type
     host_name                        OK                          System
     apigee-zookeeper                 OK                          Process
     apigee-cassandra                 OK                          Process
     apigee-openldap                  OK                          Process
     apigee-qpidd                     OK                          Process
     apigee-postgresql                OK                          Process
     edge-ui                          OK                          Process
     edge-qpid-server                 OK                          Remote Host
     edge-postgres-server             OK                          Remote Host
     edge-management-server           OK                          Remote Host
     edge-router                      OK                          Remote Host
     edge-message-processor           OK                          Remote Host

    Jika Anda mendapatkan error Connection refused saat pertama kali menjalankan summary, coba tunggu durasi conf_monit_monit_delay_time, lalu coba lagi.

    Memantau apigee-monit

    Praktik terbaiknya adalah memeriksa secara rutin bahwa apigee-monit berjalan di setiap node.

    Untuk memastikan apigee-monit berjalan, gunakan perintah berikut:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

    Apigee merekomendasikan agar Anda mengeluarkan perintah ini secara berkala pada setiap node yang menjalankan apigee-monit. Salah satu cara untuk melakukannya adalah dengan utilitas seperti cron yang menjalankan tugas terjadwal di interval yang telah ditentukan.

    Untuk menggunakan cron guna memantau apigee-monit:

    1. Tambahkan dukungan cron dengan menyalin apigee-monit.cron ke direktori /etc/cron.d, seperti yang ditunjukkan contoh berikut:
      cp /opt/apigee/apigee-monit/cron/apigee-monit.cron /etc/cron.d/
    2. Buka file apigee-monit.cron untuk mengeditnya.

      File apigee-monit.cron menentukan tugas cron yang akan dieksekusi serta frekuensi untuk menjalankan tugas tersebut. Contoh berikut menunjukkan fungsi nilai-nilai:

      # Cron entry to check if monit process is running. If not start it
      */2 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

      File ini menggunakan sintaks berikut, dengan lima bidang pertama menentukan waktu apigee-monit menjalankan tindakannya:

      min hour day_of_month month day_of_week task_to_execute

      Misalnya, waktu eksekusi default adalah */2 * * * *, yang menginstruksikan cron untuk memeriksa proses apigee-monit setiap 2 menit.

      Anda tidak dapat menjalankan tugas cron lebih dari sekali per menit.

      Untuk informasi selengkapnya tentang penggunaan cron, lihat dokumentasi OS server Anda atau halaman.

    3. Ubah setelan cron agar sesuai dengan kebijakan organisasi Anda. Misalnya, untuk ubah frekuensi eksekusi menjadi setiap 5 menit, setel definisi tugas menjadi berikut:
      */5 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
    4. Simpan file apigee-monit.cron.
    5. Ulangi prosedur ini untuk setiap node dalam cluster Anda.

    Jika cron tidak mulai menonton apigee-monit, pastikan:

    • Ada baris kosong setelah definisi tugas cron.
    • Hanya ada satu tugas cron yang ditentukan dalam file. (Baris yang dikomentari tidak count.)

    Jika ingin menghentikan atau menonaktifkan apigee-monit untuk sementara, Anda harus menonaktifkan tugas cron ini, juga, jika tidak, cron akan memulai ulang apigee-monit.

    Untuk menonaktifkan cron, lakukan salah satu hal berikut:

    • Hapus file /etc/cron.d/apigee-monit.cron:
      sudo rm /etc/cron.d/apigee-monit.cron

      Anda harus menyalinnya ulang jika Anda ingin mengaktifkan kembali cron untuk menonton apigee-monit.

      ATAU

    • Mengedit file /etc/cron.d/apigee-monit.cron dan menjadikan tugas sebagai komentar dengan menambahkan "#" ke awal baris; misalnya:
      # 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit