Bij verschillende gelegenheden hebben we het gehad over de schaalbaarheid die Linux-distributies ons bieden door duizenden open source-applicaties te hebben die erin kunnen worden geïnstalleerd en zo de capaciteit voor gebruik en ontwikkeling van services en rollen aanzienlijk uit te breiden.
We kunnen toepassingen vinden voor alle soorten taken op persoonlijk of zakelijk niveau en vandaag zal Solvetic er een in detail analyseren die opvalt vanwege zijn potentiële dynamiek als het gaat om het verzamelen van meerdere soorten statistieken en ons gedetailleerde rapporten biedt die zeer nuttig zullen zijn als het gaat om ons beheer en onze ondersteuning.
Deze applicatie heet Prometheus en vandaag zullen we zien hoe je deze op een praktische manier in Ubuntu 17.04 kunt installeren.
Wat is Prometheus?Prometheus is een krachtig open source monitoringsysteem dat de statistieken van onze diensten verzamelt en opslaat in een tijdreeksdatabase. Het biedt ons een multidimensionaal datamodel, een flexibele querytaal en diverse visualisatiemogelijkheden via tools zoals Grafana.
Standaard exporteert Prometheus alleen statistieken over zichzelf, bijvoorbeeld het aantal ontvangen verzoeken, geheugenverbruik, enzovoort. Het is echter mogelijk om Prometheus uit te breiden door exporteurs te installeren. Dit zijn optionele programma's die aanvullende en gedetailleerde statistieken genereren van andere aspecten die moeten worden geanalyseerd.
Deze exporteurs zijn gericht op infrastructuur, databases en webservers in messaging-systemen, API's en nog veel meer.
Enkele van de exporteurs die Prometheus ons aanbiedt zijn:
node_exporterDeze exporteur produceert metrische gegevens over de infrastructuur van apparatuur, waaronder het huidige CPU-, geheugen- en harde schijfgebruik, evenals I / O- en netwerkstatistieken (zoals het aantal bytes dat van een schijf wordt gelezen of de gemiddelde belasting op een schijf). server)
blackbox_exporterMet deze exporteur kunnen we statistieken genereren die zijn afgeleid van browseprotocollen zoals HTTP en HTTPS om de beschikbaarheid van de eindpunten, de responstijd en meer te bepalen.
mysqld_exporterDe functie van deze exporteur is het verzamelen van statistieken met betrekking tot een MySQL-server, zoals het aantal uitgevoerde query's, de gemiddelde responstijd van de query's en de replicatiestatus van het cluster.
konijnmq_exporterDeze exporteur genereert statistieken over het RabbitMQ-berichtensysteem, inclusief details zoals het aantal gepubliceerde berichten, het aantal berichten dat klaar is om te worden afgeleverd en de grootte van alle berichten in de wachtrij.
nginx-vts-exporteurMet deze exporteur zullen we statistieken verkrijgen op een Nginx-webserver die gebruik maakt van de Nginx VTS-module, waaronder het aantal open verbindingen, het aantal verzonden antwoorden (gegroepeerd op responscodes) en de totale grootte van de verzonden of ontvangen verzoeken in bytes.
Prometheus-functiesEnkele van de meest opvallende kenmerken van Prometheus zijn:
- Gegevensdimensie, aangezien Prometheus alle gegevens opslaat als tijdreeksen met behulp van stromen van tijdwaarden die tot dezelfde statistiek en dezelfde set gelabelde dimensies behoren. Bovendien kan Prometheus op basis van query's tijdsafhankelijke tijdreeksen genereren.
- Dynamische zoekopdrachten In dit opzicht biedt Prometheus een functionele expressietaal waarmee de gebruiker tijdreeksgegevens in realtime kan selecteren en aggregeren. Het resultaat van een expressie kan worden weergegeven als een grafiek, worden bekeken als tabelgegevens in de Prometheus-expressiebrowser of worden uitgevoerd door externe systemen via de HTTP API.
- Verschillende weergave-opties, aangezien Prometheus Grafana bevat dat beschikbaar is sinds Grafana 2.5.0 (2015-10-28).
- Efficiënte opslag, omdat Prometheus een geavanceerd lokaal opslagsubsysteem heeft. Voor indexen maakt het gebruik van LevelDB. Voor bulkvoorbeeldgegevens heeft het zijn eigen aangepaste opslaglaag, die de voorbeeldgegevens organiseert in brokken van constante grootte (1024 bytes payload). Deze chunks worden per tijdreeks in één bestand op schijf opgeslagen.
- Eenvoudige bediening omdat Prometheus wordt geconfigureerd via opdrachtregelparameters en een configuratiebestand. Terwijl de opdrachtregel prompts onveranderlijke systeemparameters configureert (zoals opslaglocaties, hoeveelheid gegevens die op schijf en in het geheugen moet worden opgeslagen), definieert het configuratiebestand alles met betrekking tot scraping-taken en hun instanties, evenals de regelbestanden die met de toepassing zijn geladen .
- Nauwkeurige waarschuwingen, door de mogelijkheid te hebben om waarschuwingsregels te maken waarmee we waarschuwingsvoorwaarden kunnen definiëren op basis van Prometheus-expressietaalwaarden en meldingen over triggerwaarschuwingen op een bepaald moment naar een externe service kunnen sturen en zo op de hoogte zijn van elke wijziging.
- Meerdere bibliotheken, dankzij het feit dat Prometheus ons een reeks compatibele bibliotheken biedt, zoals Java of Scala, Python, Rubí, Bash, C ++, Common Lisp, Elixir, Erlang, Haskell, Lua voor Nginx, Lua voor Tarantool, . NET / C #, Node.js, PHP en Rust.
- Meerdere integratie, aangezien we verschillende bibliotheken en servers hebben die helpen bij het exporteren van bestaande statistieken van systemen van derden naar Prometheus-statistieken, sommige hiervan zijn Aerospike-exporteur, ClickHouse-exporteur, Consul-exporteur, CouchDB-exporteur, ElasticSearch-exporteur, Memcached-exporteur, MongoDB-exporteur, MSSQL server exporteur, MySQL server exporteur, OpenTSDB Exporter, PgBouncer exporteur, PostgreSQL exporteur of ProxySQL exporteur.
Nu zullen we zien hoe Prometheus op Ubuntu 17.04 kan worden geïnstalleerd.
1. Nginx-installatie
Stap 1
Het eerste punt om in gedachten te houden is dat Nginx in Ubuntu moet worden geïnstalleerd, als we het niet hebben, zullen we het volgende commando uitvoeren:
sudo apt install nginx
Stap 2
Daar zullen we de letter S invoeren om het downloaden en installeren van de benodigde pakketten te bevestigen. Eenmaal geïnstalleerd, is het nodig om de Ubuntu-firewallinstellingen te configureren om toegang tot de Nginx-service toe te staan, hiervoor zullen we de volgende regel uitvoeren om de configuraties van de ufw-applicaties weer te geven:
sudo ufw app-lijst
Op het Nginx-niveau hebben we de volgende opties:
- Nginx Full: Dit profiel opent zowel poort 80 (normaal, niet-versleuteld webverkeer) als poort 443 (versleuteld TLS/SSL-verkeer)
- Nginx HTTP: Dit profiel opent alleen poort 80 (normaal, niet-versleuteld webverkeer)
- Nginx HTTPS: Dit profiel opent alleen poort 443 (versleuteld TLS/SSL-verkeer)
Stap 3
Voor dit geval zullen we de volgende regel uitvoeren:
sudo ufw staat 'Nginx HTTP' toe
Stap 4
We kunnen zien dat de status van de firewall in sommige gevallen inactief is en het moet nodig zijn om deze te activeren, hiervoor voeren we het volgende uit:
sudo ufw inschakelen
Nadat we deze parameters in de firewall hebben geconfigureerd, gaan we verder met de Prometheus-installatie.
Inloggen Doe mee!