[ English | 日本語 | Deutsch | Indonesia ]

Pemantauan

Ada dua jenis pemantauan: mengawasi masalah dan mengamati tren penggunaan. Yang pertama memastikan bahwa semua layanan aktif dan berjalan, menciptakan cloud fungsional. Yang terakhir melibatkan pemantauan penggunaan sumber daya dari waktu ke waktu untuk membuat keputusan berdasarkan informasi tentang potensi kemacetan dan peningkatan.

Pemantauan Proses

Jenis dasar pemantauan peringatan adalah dengan hanya memeriksa dan melihat apakah proses yang diperlukan sedang berjalan. Sebagai contoh, pastikan bahwa layanan nova-api berjalan pada pengontrol cloud:

# ps aux | grep nova-api
nova 12786 0.0 0.0 37952 1312 ? Ss Feb11 0:00 su -s /bin/sh -c exec nova-api
--config-file=/etc/nova/nova.conf nova
nova 12787 0.0 0.1 135764 57400 ? S Feb11 0:01 /usr/bin/python
 /usr/bin/nova-api --config-file=/etc/nova/nova.conf
nova 12792 0.0 0.0 96052 22856 ? S Feb11 0:01 /usr/bin/python
/usr/bin/nova-api --config-file=/etc/nova/nova.conf
nova 12793 0.0 0.3 290688 115516 ? S Feb11 1:23 /usr/bin/python
/usr/bin/nova-api --config-file=/etc/nova/nova.conf
nova 12794 0.0 0.2 248636 77068 ? S Feb11 0:04 /usr/bin/python
/usr/bin/nova-api --config-file=/etc/nova/nova.conf
root 24121 0.0 0.0 11688 912 pts/5 S+ 13:07 0:00 grep nova-api

Proses OpenStack yang harus dipantau tergantung pada konfigurasi lingkungan tertentu, tetapi dapat mencakup:

Compute service (nova)

  • nova-api

  • nova-scheduler

  • nova-conductor

  • nova-novncproxy

  • nova-compute

Block Storage service (cinder)

  • cinder-volume

  • cinder-api

  • cinder-scheduler

Networking service (neutron)

  • neutron-server

  • neutron-openvswitch-agent

  • neutron-dhcp-agent

  • neutron-l3-agent

  • neutron-metadata-agent

Image service (glance)

  • glance-api

  • glance-registry

Identity service (keystone)

Proses keystone dijalankan dalam Apache sebagai aplikasi WSGI.

Peringatan Sumberdaya

Peringatan sumber daya memberikan pemberitahuan ketika satu atau beberapa sumber daya sangat rendah. Sementara ambang pemantauan harus disesuaikan dengan lingkungan OpenStack spesifik Anda, pemantauan penggunaan sumber daya sama sekali tidak khusus untuk OpenStack — semua jenis peringatan umum akan berfungsi dengan baik.

Beberapa sumber daya yang ingin Anda pantau meliputi:

  • Disk usage

  • Server load

  • Memory usage

  • Network I/O

  • Available vCPUs

Layanan Telemetry

Layanan Telemetry (:term: ceilometer) mengumpulkan data pengukuran dan peristiwa yang berkaitan dengan layanan OpenStack. Data yang dikumpulkan oleh layanan Telemetry dapat digunakan untuk penagihan. Bergantung pada konfigurasi penempatan, data yang dikumpulkan dapat diakses oleh pengguna berdasarkan konfigurasi penempatan. Anda dapat membaca lebih lanjut tentang modul di Ceilometer Administrator Guide <https://docs.openstack.org/ceilometer/latest/admin/index.html> _ atau di Ceilometer Contributor Guide.

Sumber Daya Tertentu OpenStack

Sumber daya seperti memori, disk, dan CPU adalah sumber daya generik yang dimiliki semua server (bahkan server non-OpenStack) dan penting bagi kesehatan server secara keseluruhan. Ketika berhadapan dengan OpenStack secara khusus, sumber daya ini penting untuk alasan kedua: memastikan bahwa cukup tersedia untuk meluncurkan instance. Ada beberapa cara Anda dapat melihat penggunaan sumber daya OpenStack. Yang pertama adalah melalui perintah openstack:

# openstack usage list

Perintah ini menampilkan daftar berapa banyak instance yang telah dijalankan penyewa dan beberapa statistik penggunaan ringan tentang instance gabungan. Perintah ini berguna untuk tinjauan umum cepat cloud Anda, tetapi tidak terlalu banyak detail.

Selanjutnya, database nova berisi tiga tabel yang menyimpan informasi penggunaan.

nova.quotas dan nova.quota_usages tabel menyimpan informasi kuota. Jika kuota penyewa berbeda dari pengaturan kuota default, kuota disimpan dalam tabel nova.quotas. Sebagai contoh:

mysql> select project_id, resource, hard_limit from quotas;
+----------------------------------+-----------------------------+------------+
| project_id                       | resource                    | hard_limit |
+----------------------------------+-----------------------------+------------+
| 628df59f091142399e0689a2696f5baa | metadata_items              | 128        |
| 628df59f091142399e0689a2696f5baa | injected_file_content_bytes | 10240      |
| 628df59f091142399e0689a2696f5baa | injected_files              | 5          |
| 628df59f091142399e0689a2696f5baa | gigabytes                   | 1000       |
| 628df59f091142399e0689a2696f5baa | ram                         | 51200      |
| 628df59f091142399e0689a2696f5baa | floating_ips                | 10         |
| 628df59f091142399e0689a2696f5baa | instances                   | 10         |
| 628df59f091142399e0689a2696f5baa | volumes                     | 10         |
| 628df59f091142399e0689a2696f5baa | cores                       | 20         |
+----------------------------------+-----------------------------+------------+

Tabel nova.quota_usages melacak berapa banyak sumber daya yang digunakan penyewa saat ini:

mysql> select project_id, resource, in_use from quota_usages where project_id like '628%';
+----------------------------------+--------------+--------+
| project_id                       | resource     | in_use |
+----------------------------------+--------------+--------+
| 628df59f091142399e0689a2696f5baa | instances    | 1      |
| 628df59f091142399e0689a2696f5baa | ram          | 512    |
| 628df59f091142399e0689a2696f5baa | cores        | 1      |
| 628df59f091142399e0689a2696f5baa | floating_ips | 1      |
| 628df59f091142399e0689a2696f5baa | volumes      | 2      |
| 628df59f091142399e0689a2696f5baa | gigabytes    | 12     |
| 628df59f091142399e0689a2696f5baa | images       | 1      |
+----------------------------------+--------------+--------+

Dengan membandingkan batas keras penyewa dengan penggunaan sumber daya mereka saat ini, Anda dapat melihat persentase penggunaannya. Misalnya, jika penyewa ini menggunakan 1 IP mengambang dari 10, maka mereka menggunakan 10 persen kuota IP mengambang mereka. Daripada melakukan perhitungan secara manual, Anda dapat menggunakan SQL atau bahasa scripting pilihan Anda dan membuat laporan yang diformat:

+----------------------------------+------------+-------------+---------------+
| some_tenant                                                                 |
+-----------------------------------+------------+------------+---------------+
| Resource                          | Used       | Limit      |               |
+-----------------------------------+------------+------------+---------------+
| cores                             | 1          | 20         |           5 % |
| floating_ips                      | 1          | 10         |          10 % |
| gigabytes                         | 12         | 1000       |           1 % |
| images                            | 1          | 4          |          25 % |
| injected_file_content_bytes       | 0          | 10240      |           0 % |
| injected_file_path_bytes          | 0          | 255        |           0 % |
| injected_files                    | 0          | 5          |           0 % |
| instances                         | 1          | 10         |          10 % |
| key_pairs                         | 0          | 100        |           0 % |
| metadata_items                    | 0          | 128        |           0 % |
| ram                               | 512        | 51200      |           1 % |
| reservation_expire                | 0          | 86400      |           0 % |
| security_group_rules              | 0          | 20         |           0 % |
| security_groups                   | 0          | 10         |           0 % |
| volumes                           | 2          | 10         |          20 % |
+-----------------------------------+------------+------------+---------------+

Informasi sebelumnya dihasilkan dengan menggunakan skrip khusus yang dapat ditemukan di GitHub.

Catatan

Skrip ini khusus untuk instalasi OpenStack tertentu dan harus dimodifikasi agar sesuai dengan lingkungan Anda. Namun, logikanya harus mudah dipindahtangankan.

Peringatan Intelligent

Peringatan intelligent dapat dianggap sebagai bentuk integrasi berkelanjutan untuk operasi. Misalnya, Anda dapat dengan mudah memeriksa untuk melihat apakah layanan Image sudah berjalan dan berjalan dengan memastikan bahwa proses glance-api dan glance-registry sedang berjalan atau dengan melihat apakah glance-api merespons pada port 9292.

Tetapi bagaimana Anda bisa tahu apakah image berhasil diunggah ke layanan Image? Mungkin disk tempat layanan Image menyimpan image pada penuh atau S3 back end turun. Anda secara alami dapat memeriksanya dengan melakukan unggahan image cepat:

#!/bin/bash
#
# assumes that reasonable credentials have been stored at
# /root/auth


. /root/openrc
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
openstack image create --name='cirros image' --public \
--container-format=bare --disk-format=qcow2 \
--file cirros-0.3.5-x86_64-disk.img

Dengan mengambil skrip ini dan mengubahnya menjadi peringatan untuk sistem pemantauan Anda (seperti Nagios), Anda sekarang memiliki cara otomatis untuk memastikan bahwa unggahan image ke Image Catalog berfungsi.

Catatan

Anda harus menghapus image setelah setiap tes. Lebih baik lagi, uji apakah Anda berhasil menghapus image dari layanan Image.

Peringatan intelligent membutuhkan jauh lebih banyak waktu untuk merencanakan dan mengimplementasikan daripada peringatan lain yang dijelaskan dalam bab ini. Outline yang baik untuk menerapkan peringatan Intelligent adalah:

  • Tinjau tindakan umum di cloud Anda.

  • Buat cara untuk menguji tindakan ini secara otomatis.

  • Gulirkan tes ini ke sistem peringatan.

Beberapa contoh lain untuk Peringatan Intelligent meliputi:

  • Bisakah instance diluncurkan dan dihancurkan?

  • Bisakah pengguna dibuat?

  • Bisakah benda disimpan dan dihapus?

  • Bisakah volume dibuat dan dimusnahkan?

Alat Pemantau

Nagios

Nagios adalah layanan pemantauan sumber terbuka. Ia mampu mengeksekusi perintah acak (arbitrary) untuk memeriksa status server dan layanan jaringan, melakukan perintah jarak jauh secara langsung pada server, dan memungkinkan server untuk mendorong pemberitahuan kembali dalam bentuk pemantauan pasif. Nagios telah ada sejak 1999. Meskipun layanan pemantauan yang lebih baru tersedia, Nagios adalah bahan pokok administrasi sistem yang benar-benar ada.

Anda dapat membuat lansiran otomatis untuk proses kritis dengan menggunakan Nagios dan NRPE. Misalnya, untuk memastikan bahwa proses nova-compute sedang berjalan di node komputasi, buat peringatan di server Nagios Anda:

define service {
    host_name c01.example.com
    check_command check_nrpe_1arg!check_nova-compute
    use generic-service
    notification_period 24x7
    contact_groups sysadmins
    service_description nova-compute
}

Pada simpul Compute, buat konfigurasi NRPE berikut:

command[check_nova-compute]=/usr/lib/nagios/plugins/check_procs -c 1: -a nova-compute

Nagios memeriksa bahwa setidaknya satu layanan nova-compute berjalan setiap saat.

Untuk peringatan sumber daya, misalnya, monitor kapasitas disk pada node komputasi dengan Nagios, tambahkan yang berikut ini ke konfigurasi Nagios Anda:

define service {
    host_name c01.example.com
    check_command check_nrpe!check_all_disks!20% 10%
    use generic-service
    contact_groups sysadmins
    service_description Disk
}

Pada node komputasi, tambahkan berikut ini ke konfigurasi NRPE Anda:

command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -e

Nagios memberi tahu Anda dengan WARNING ` saat semua disk pada node komputasi 80 persen penuh dan CRITICAL ` saat 90 persen penuh.

StackTach

StackTach adalah alat yang mengumpulkan dan melaporkan pemberitahuan yang dikirim oleh nova. Notifikasi pada dasarnya sama dengan log tetapi bisa lebih detail. Hampir semua komponen OpenStack mampu menghasilkan notifikasi ketika peristiwa signifikan terjadi. Notifikasi adalah pesan yang ditempatkan pada antrian OpenStack (umumnya RabbitMQ) untuk dikonsumsi oleh sistem hilir. Tinjauan umum pemberitahuan dapat ditemukan di System Usage Data.

Untuk mengaktifkan nova untuk mengirim pemberitahuan, tambahkan berikut ini ke file konfigurasi nova.conf:

notification_topics=monitor
notification_driver=messagingv2

Setelah nova mengirim pemberitahuan, instal dan konfigurasikan StackTach. StackTach berfungsi untuk konsumsi antrian dan pemrosesan pipa dikonfigurasikan untuk membaca notifikasi ini dari server RabbitMQ dan menyimpannya dalam database. Pengguna dapat menanyakan instance, permintaan, dan server dengan menggunakan antarmuka browser atau alat command-line, Stacky <https://github.com/rackerlabs/stacky> _. Karena StackTach relatif baru dan terus berubah, instruksi instalasi dengan cepat menjadi usang. Lihat repositori StackTach Git <https://opendev.org/x/stacktach> _ untuk instruksi serta video demostrasi. Rincian tambahan tentang perkembangan terbaru dapat ditemukan di official page <http://stacktach.com/> _

Logstash

Logstash adalah pengindeksan dan mesin pencari kinerja tinggi untuk log. Log dari uji coba Jenkins dikirim ke logstash tempat mereka diindeks dan disimpan. Logstash memfasilitasi peninjauan log dari berbagai sumber dalam satu uji coba, mencari kesalahan atau event tertentu dalam uji coba, dan mencari tren event log di seluruh uji coba.

Ada empat lapisan utama dalam pengaturan Logstash yaitu:

  • Log Pusher

  • Log Indexer

  • ElasticSearch

  • Kibana

Setiap lapisan bersisik secara horizontal. Saat jumlah log bertambah, Anda dapat menambahkan lebih banyak push log, lebih banyak pengindeks log, dan lebih banyak node ElasticSearch.

Logpusher adalah sepasang skrip Python yang pertama kali mendengarkan Jenkins membuat event, kemudian mengubahnya menjadi pekerjaan Gearman. Gearman menyediakan kerangka kerja aplikasi generik untuk mengolah pekerjaan ke mesin lain atau proses yang lebih cocok untuk melakukan pekerjaan itu. Ini memungkinkan Anda melakukan pekerjaan secara paralel, memuat pemrosesan keseimbangan, dan memanggil fungsi antar bahasa. Kemudian, Logpusher melakukan pekerjaan Gearman untuk mendorong file log ke logstash. Logstash indexer membaca event log ini, memfilternya untuk menghapus baris yang tidak diinginkan, menggabungkan beberapa kejadian bersama, dan mem-parsing informasi yang berguna sebelum mengirimkannya ke ElasticSearch untuk penyimpanan dan pengindeksan. Kibana adalah klien web berorientasi logstash untuk ElasticSearch.