Kilkakrotnie rozmawialiśmy o skalowalności, jaką oferują nam dystrybucje Linuksa, mając tysiące aplikacji open source, które można w nich zainstalować, a tym samym znacznie zwiększyć możliwości wykorzystania i rozwoju usług i ról.
Znajdziemy aplikacje do wszystkich rodzajów zadań na poziomie osobistym lub korporacyjnym, a dziś Solvetic przeanalizuje szczegółowo to, które jest uderzające ze względu na potencjalną dynamikę, jeśli chodzi o zbieranie wielu rodzajów metryk i dostarczanie nam szczegółowych raportów, które będą bardzo przydatne jeśli chodzi o nasze zarządzanie i wsparcie.
Ta aplikacja nazywa się Prometheus i dzisiaj zobaczymy, jak w praktyczny sposób zainstalować ją w Ubuntu 17.04.
Co to jest Prometeusz?Prometheus to potężny system monitorowania typu open source, który gromadzi metryki naszych usług i przechowuje je w bazie danych szeregów czasowych. Oferuje nam wielowymiarowy model danych, elastyczny język zapytań oraz różne możliwości wizualizacji dzięki takim narzędziom jak Grafana.
Domyślnie Prometheus eksportuje tylko metryki o sobie, na przykład liczbę otrzymanych żądań, zużycie pamięci i inne. Istnieje jednak możliwość rozszerzenia Prometheusa poprzez instalację eksporterów, które są opcjonalnymi programami, które generują dodatkowe i szczegółowe metryki innych aspektów do analizy.
Eksporterzy ci koncentrują się na infrastrukturze, bazach danych i serwerach internetowych w systemach przesyłania wiadomości, interfejsach API i wielu innych.
Niektórzy z eksporterów, których oferuje nam Prometheus to:
eksporter_węzłówTen eksporter generuje metryki dotyczące infrastruktury sprzętowej, w tym bieżące wykorzystanie procesora, pamięci i dysku twardego, a także statystyki we/wy i sieci (takie jak liczba odczytanych bajtów z dysku lub średnie obciążenie dysku).
blackbox_eksporterDzięki temu eksporterowi będziemy mogli generować metryki pochodzące z protokołów przeglądania, takich jak HTTP i HTTPS, w celu określenia dostępności punktów końcowych, czasu odpowiedzi i nie tylko.
mysqld_exporterFunkcją tego eksportera jest zbieranie metryk związanych z serwerem MySQL, takich jak liczba wykonanych zapytań, średni czas odpowiedzi na zapytania oraz status replikacji klastra.
królikmq_eksporterTen eksporter generuje metryki dotyczące systemu przesyłania komunikatów RabbitMQ, w tym szczegóły, takie jak liczba opublikowanych komunikatów, liczba komunikatów gotowych do dostarczenia oraz rozmiar wszystkich komunikatów w kolejce.
nginx-vts-eksporterDzięki temu eksporterowi uzyskamy metryki na serwerze sieciowym Nginx korzystającym z modułu Nginx VTS, które obejmują liczbę otwartych połączeń, liczbę wysłanych odpowiedzi (pogrupowanych według kodów odpowiedzi) oraz łączny rozmiar żądań wysłanych lub odebranych w bajty.
Funkcje PrometeuszaNiektóre z najbardziej wyróżniających się cech Prometeusza to:
- Wymiar danych, ponieważ Prometheus przechowuje wszystkie dane jako szeregi czasowe przy użyciu strumieni wartości czasu, które należą do tej samej metryki i tego samego zestawu wymiarów oznaczonych etykietą. Dodatkowo Prometheus może generować szeregi czasowe na podstawie zapytań.
- Zapytania dynamiczne W tym zakresie Prometheus oferuje funkcjonalny język wyrażeń, za pomocą którego użytkownik może wybierać i agregować dane szeregów czasowych w czasie rzeczywistym. Wynik wyrażenia może być wyświetlany jako wykres, przeglądany jako dane tabelaryczne w przeglądarce wyrażeń Prometheus lub wykonywany przez systemy zewnętrzne za pośrednictwem HTTP API.
- Różne opcje wyświetlania, ponieważ Prometheus zawiera Grafanę, która jest dostępna od wersji Grafana 2.5.0 (28.10.2015).
- Wydajna pamięć masowa, ponieważ Prometheus ma zaawansowany lokalny podsystem pamięci masowej. W przypadku indeksów wykorzystuje LevelDB. W przypadku danych próbek zbiorczych ma własną niestandardową warstwę magazynu, która organizuje dane próbki w fragmenty o stałym rozmiarze (1024 bajty ładunku). Te fragmenty są przechowywane na dysku w jednym pliku na serię czasową.
- Prosta obsługa, ponieważ Prometheus jest konfigurowany za pomocą parametrów wiersza poleceń i pliku konfiguracyjnego. Podczas gdy wiersz poleceń monituje o skonfigurowanie niezmiennych parametrów systemowych (takich jak lokalizacje przechowywania, ilość danych do zapisania na dysku i w pamięci), plik konfiguracyjny definiuje wszystko, co dotyczy zadań scrapingu i ich wystąpień, a także pliki reguł ładowane z aplikacją .
- Precyzyjne alertowanie, dzięki możliwości tworzenia reguł alertów, które pozwalają nam definiować warunki alertów w oparciu o wartości języka wyrażeń Prometheus i wysyłać powiadomienia o wyzwoleniu alertów do usługi zewnętrznej w określonym czasie, a tym samym być świadomym każdej zmiany.
- Wiele bibliotek, dzięki temu, że Prometheus oferuje nam szereg kompatybilnych bibliotek takich jak Java lub Scala, Python, Rubí, Bash, C++, Common Lisp, Elixir, Erlang, Haskell, Lua dla Nginx, Lua dla Tarantool, . NET/C#, Node.js, PHP i Rust.
- Wielokrotna integracja, ponieważ mamy kilka bibliotek i serwerów, które pomagają eksportować istniejące metryki z systemów zewnętrznych do metryk Prometheus, niektóre z nich to eksporter Aerospike, eksporter ClickHouse, eksporter Consul, eksporter CouchDB, eksporter ElasticSearch, eksporter Memcached, eksporter MongoDB, MSSQL eksporter serwera, eksporter serwera MySQL, eksporter OpenTSDB, eksporter PgBouncer, eksporter PostgreSQL lub eksporter ProxySQL.
Teraz zobaczymy, jak zainstalować Prometheusa na Ubuntu 17.04.
1. Instalacja Nginx
Krok 1
Pierwszym punktem, o którym należy pamiętać, jest to, że Nginx musi być zainstalowany w Ubuntu, jeśli go nie mamy, wykonamy następujące polecenie:
sudo apt zainstaluj nginx
Krok 2
Tam wpiszemy literę S, aby potwierdzić pobranie i instalację niezbędnych pakietów. Po zainstalowaniu konieczne będzie skonfigurowanie ustawień zapory Ubuntu, aby umożliwić dostęp do usługi Nginx, w tym celu wykonamy następujący wiersz, aby wyświetlić konfiguracje aplikacji ufw:
lista aplikacji sudo ufw
Na poziomie Nginx mamy następujące opcje
- Nginx Full: ten profil otwiera zarówno port 80 (normalny, nieszyfrowany ruch sieciowy), jak i port 443 (szyfrowany ruch TLS/SSL)
- Nginx HTTP: ten profil otwiera tylko port 80 (normalny, niezaszyfrowany ruch sieciowy)
- Nginx HTTPS: ten profil otwiera tylko port 443 (szyfrowany ruch TLS / SSL)
Krok 3
W tym przypadku wykonamy następującą linię:
sudo ufw zezwala na 'Nginx HTTP'
Krok 4
Widzimy, że stan zapory jest w niektórych przypadkach nieaktywny i konieczne jest jej aktywowanie, w tym celu wykonujemy następujące czynności:
włączanie sudo ufw
Po skonfigurowaniu tych parametrów w zaporze kontynuujemy instalację Prometheusa.
Zaloguj się Dołącz!