OpenStack
Letztes Jahr haben wir uns auf die OpenStack-Technologie und die dahinter stehenden Projekte konzentriert. Wir haben uns entschlossen, den Schwerpunkt auf diese Technologie zu legen und unseren Schwerpunkt in diese Richtung zu verlagern, weil sie so viele Funktionen und Flexibilität bietet. Aber wie wir wissen, bringt große Macht auch große Verantwortung mit sich.
Sobald Sie mit der Installation und Konfiguration der Cloud fertig sind, müssen Sie deren Verfügbarkeit sicherstellen. Wenn Sie sich im Internet umsehen, werden Sie zahlreiche Technologien finden, die diesen Bedarf decken - Zabbix, Nagios und Icinga sind nur einige davon. Es ist also wirklich einfach, eine zu wählen, die die Aufgabe erfüllt.
Ich habe mich für Icinga2/ Icinga entschieden, und hier sind einige Punkte, die mir bei der Wahl geholfen haben:
- Icinga2 unterstützt Graphite nativ- RESTful API Unterstützung- Reichhaltige Web-Erfahrung- Unterstützung von Nagios Modulen
Sobald wir die Überwachungstechnologie ausgewählt haben, können wir uns auf die Überwachung selbst konzentrieren. OpenStack bietet eine Infrastructure-as-a-Service durch eine Vielzahl von Projekten oder Diensten:
- Nova- Keystone- Glance- Horizon- Neutron- Cinder- Swift... und viele mehr.
Außerdem kommunizieren die OpenStack-Dienste über die AMQP-Technologie, die von OpenStack ausgewählt wurde. Der AMQP-Broker der Standardinstallation ist RabbitMQ, er kann aber bei Bedarf durch Qpid ersetzt werden. Alle Kommunikationen für die meisten Komponenten wie Nova, Cinder und Neutron verwenden Remote Procedure Calls zur Kommunikation, was den Message Broker zum Herzstück der Cloud macht. Aufgaben wie das Erstellen neuer Volumes, das Starten neuer Instanzen, das Stoppen neuer Instanzen und mehr. Die Überwachung von RabbitMQ ist also wie die regelmäßige Kontrolle des Herzschlags.
Sobald Sie die Icinga- oder Nagios-Überwachung installiert haben, können Sie sich auf die Suche nach Modulen konzentrieren. Hier finden Sie das Nagios-Modul, das wir zur Überwachung verwenden.
Bevor Sie damit loslegen, müssen Sie die Kaninchen-Management-Konsole aktivieren.
rabbitmq-plugins enable rabbitmq_management
Das Modul hat viele Prüfungen, die hilfreich sind, um einen grundlegenden Überblick über den Zustand und die Konsistenz Ihres Systems zu erhalten. Ich werde einige von ihnen besprechen, damit Sie einen guten Überblick über die Funktionsweise der Module bekommen können. Auf der Git-Seite finden Sie ebenfalls gute Erklärungen für jede dieser Prüfungen.
- check_rabbitmq_alivness - prüft über die API gesendete/empfangene Nachrichten - check_rabbitmq_connections - sammelt Fakten über Verbindungen über die Verwaltungs-API - check_rabbitmq_exchange - sammelt die Raten der bestätigten veröffentlichten und herausgegebenen Nachrichten in einem bestimmten Zeitraum - sehr nützlich für die Überwachung von Leistungsdaten - check_rabbitmq_overivew - sammelt die ausstehenden fertigen und unbestätigten Nachrichten. - check_rabbitmq_queue - für die Überwachung von Warteschlangen - check_rabbitmq_server - zur Überwachung der Ressourcenauslastung des Servers
Es gibt noch viele weitere, die Sie auf der obigen Github-Seite einsehen können. Das Modul entwickelt sich sehr schnell und nach dem Schreiben dieses Blogposts können noch viele weitere hinzukommen.
Mit diesen leistungsstarken Prüfungen können Sie Ihre Überwachung einrichten. Die meisten von ihnen sind einfach und man kann sie für periodische Überprüfungen einrichten.
Hier sind einige Hinweise für Börsen, die mit check_rabbitmq_exchange überprüft werden können:
+ EXCHANGE - nova + EXCHGANE - openstack + WECHSEL - Neutron + EXCHANGE - heat (wenn Sie es regelmäßig benutzen)
Hier sind einige Hinweise zur Überwachung der Warteschlangen von OpenStack:
Volumenstatus und Verfügbarkeit + QUEUE - Schlacke-Volumen + QUEUE - Schlacke-Backup + QUEUE - Schlacke-Scheduler Nova-Status und -Verfügbarkeit + QUEUE - Rechenleistung + QUEUE - Leiter + QUEUE - Motor Neutron - Netzwerkstatus und -verfügbarkeit + QUEUE - dhcp_agent + QUEUE - l3_agent
Zu guter Letzt wird die Überwachung des RabbitMQ-Prozesses und der Standardmonitore für Systemlast, CPU und Festplattenplatz des Controllerknotens durchgeführt.