Sensu Monitoring installeren op Ubuntu 20.04
Sensu is een gratis en open-source hulpmiddel dat gebruikt wordt om de gezondheid van infrastructuur en toepassingen te bewaken. Het is geschreven in Ruby, gebruikt RabbitMQ om berichten af te handelen en Redis om gegevens op te slaan. Het kan op de meeste besturingssystemen geïnstalleerd worden, waaronder, Ubuntu, Debian, RHEL, CentOS, IBM, AIX, FreeBSD, Mac OS, Solaris, Windows en nog veel meer. Het is een van de populairste en volgende-generatie platforms die andere bewakingssystemen zoals Zabbix, Icinga, en Nagios vervangt. Sensu gebruikt een client-server model. Je hoeft alleen een sensu client te installeren op elk systeem dat je wilt bewaken.
In deze handleiding laten we zien hoe je Sensu bewakingsserver op Ubuntu 20.04 server installeert.
Vereisten
- Een server waarop Ubuntu 20.04 draait.
- Een root wachtwoord is de server geconfigureerd.
Aan de slag
Eerst moet je je systeem bijwerken naar de laatste stabiele versie. Je kunt dit doen door alle systeempakketten bij te werken met het volgende commando:
apt-get update -y
Zodra je systeem bijgewerkt is, installeer je andere afhankelijkheden met het volgende commando:
apt-get install gnupg2 curl wget unzip -y
Als alle pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.
Installeer Redis en RabbitMQ
Sensu gebruikt RabbitMQ om berichten af te handelen en Redis om gegevens op te slaan. Beide pakketten moeten dus in je systeem geïnstalleerd zijn. RabbitMQ is standaard niet beschikbaar in de Ubuntu 20.04 standaard repository. Je zult dus de RabbitMQ repository aan je systeem moeten toevoegen.
Importeer eerst de GPG sleutel met het volgende commando:
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | apt-key add -
Voeg vervolgens de repository toe door het volgende commando uit te voeren:
echo "deb http://binaries.erlang-solutions.com/debian $(lsb_release -cs) contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list
Werk vervolgens de repository bij en installeer het RabbitMQ pakket met het volgende commando:
apt-get update -y apt-get install rabbitmq-server -y
Eenmaal geïnstalleerd moet je een RabbitMQ vhost voor Sensu maken. Je kunt die aanmaken met het volgende commando:
rabbitmqctl add_vhost /sensu
Je zou de volgende uitvoer moeten zien:
Adding vhost "/sensu" ...
Maak vervolgens een gebruiker aan om de vhost te beheren met het volgende commando:
rabbitmqctl add_user sensu password
Je zou de volgende uitvoer moeten zien:
Adding user "sensu" ...
Vervolgens moet je volledige rechten toekennen aan de vhost /sensu.
rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
Je zou de volgende uitvoer moeten krijgen:
Setting permissions for user "sensu" in vhost "/sensu" ...
Installeer vervolgens de Redis server met het volgende commando:
apt-get install redis-server -y
Als de installatie voltooid is, start je de Redis service en schakel je hem in om te starten bij het herstarten van het systeem met het volgende commando:
systemctl start redis-server systemctl enable redis-server
Als je klaar bent, kun je verder gaan met de volgende stap.
Installeer Sensu Server
Sensu is standaard niet beschikbaar in de officiële repository van Ubuntu. Je zult dus de Sensu repository aan je systeem moeten toevoegen.
Importeer eerst de GPG sleutel van de repository met het volgende commando:
wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | apt-key add -
Voeg vervolgens de repository toe met het volgende commando:
echo "deb https://sensu.global.ssl.fastly.net/apt bionic main" | tee /etc/apt/sources.list.d/sensu.list
Zodra de repository is toegevoegd, update je de repository en installeer je Sensu met het volgende commando:
apt-get update -y apt-get install sensu -y
Als Sensu geïnstalleerd is, kun je verder gaan met de volgende stap.
Sensu configureren
Vervolgens moet je configuratiebestanden maken voor RabbitMQ, Redis, en Api. Maak eerst een api.json bestand aan met het volgende commando:
nano /etc/sensu/conf.d/api.json
Voeg de volgende regels toe:
{ "api": { "host": "localhost", "bind": "0.0.0.0", "port": 4567 } }
Bewaar en sluit het bestand dan maak een redis.json bestand aan met het volgende commando:
nano /etc/sensu/conf.d/redis.json
Voeg de volgende regels toe:
{ "redis": { "host": "127.0.0.1", "port": 6379 } }
Bewaar en sluit het bestand dan maak een RabbitMQ configuratiebestand aan met het volgende commando:
nano /etc/sensu/conf.d/rabbitmq.json
Voeg de volgende regels toe:
{ "rabbitmq": { "host": "127.0.0.1", "port": 5672, "vhost": "/sensu", "user": "sensu", "password": "password" } }
Bewaar en sluit het bestand als je klaar bent.
Installeer en configureer Sensu Dashboard
Vervolgens moet je het Uchiwa dashboard in je systeem installeren. Uchiwa is een open-source dashboard om Sensu via een webinterface te bewaken.
Je kunt Uchiwa installeren met het volgende commando:
apt-get install uchiwa -y
Maak na de installatie van Uchiwa een configuratiebestand voor Uchiwa met het volgende commando:
nano /etc/sensu/uchiwa.json
Voeg de volgende regels toe:
{ "sensu": [ { "name": "Sensu", "host": "127.0.0.1", "port": 4567, "timeout": 10 } ], "uchiwa": { "host": "0.0.0.0", "port": 3000, "refresh": 10 } }
Sla het bestand op en sluit het als je klaar bent.
Vervolgens moet je een client.json bestand maken om de Sensu server zelf te bewaken. Je kunt het maken met het volgende commando:
nano /etc/sensu/conf.d/client.json
Voeg de volgende regels toe:
{ "client": { "name": "sensu-server", "address": "127.0.0.1", "environment": "management", "subscriptions": [ "dev", "ubuntu" ], "socket": { "bind": "127.0.0.1", "port": 3030 } } }
Sla het bestand op en sluit het als je klaar bent.
Start vervolgens de Sensu server, Api, Uchiwa en Sensu client dienst met het volgende commando:
systemctl start sensu-server systemctl start sensu-api systemctl start uchiwa systemctl start sensu-client
Als alle diensten gestart zijn, kun je de status van de alle diensten controleren met het volgende commando:
systemctl status sensu-server sensu-api sensu-client uchiwa
Je zou de volgende uitvoer moeten krijgen:
? sensu-server.service - sensu server Loaded: loaded (/lib/systemd/system/sensu-server.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 09:04:43 UTC; 4min 18s ago Main PID: 10031 (sensu-server) Tasks: 24 (limit: 2353) Memory: 20.6M CGroup: /system.slice/sensu-server.service ??10031 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-server -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/ext> Aug 23 09:04:43 ubuntu2004 systemd[1]: Started sensu server. ? sensu-api.service - sensu api Loaded: loaded (/lib/systemd/system/sensu-api.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 09:04:42 UTC; 4min 19s ago Main PID: 10023 (sensu-api) Tasks: 2 (limit: 2353) Memory: 18.9M CGroup: /system.slice/sensu-api.service ??10023 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-api -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/extens> Aug 23 09:04:42 ubuntu2004 systemd[1]: Started sensu api. ? sensu-client.service - sensu client Loaded: loaded (/lib/systemd/system/sensu-client.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 09:04:42 UTC; 4min 18s ago Main PID: 10027 (sensu-client) Tasks: 2 (limit: 2353) Memory: 17.0M CGroup: /system.slice/sensu-client.service ??10027 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-client -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/ext> Aug 23 09:04:42 ubuntu2004 systemd[1]: sensu-client.service: Succeeded. Aug 23 09:04:42 ubuntu2004 systemd[1]: Stopped sensu client. Aug 23 09:04:42 ubuntu2004 systemd[1]: Started sensu client. ? uchiwa.service - LSB: Uchiwa, a Sensu dashboard. Loaded: loaded (/etc/init.d/uchiwa; generated) Active: active (exited) since Sun 2020-08-23 09:04:41 UTC; 4min 19s ago
Als je klaar bent, kun je verder gaan met de volgende stap.
Toegang tot Sensu Dashboard
Open nu je web browser en typ de URL http://your-server-ip:3000. Je zou het Sensu dashboard moeten zien in het volgende scherm:
Klik nu op het cliënt-icoon in het linkerdeelvenster. Je zou de status van de Sensu client moeten zien in het volgende scherm:
Conclusie
Gefeliciteerd! Je hebt Sensu en Uchiwa met succes geïnstalleerd en ingesteld op de Ubuntu 20.04 server. Je kunt nu meer clients toevoegen en beginnen te monitoren vanaf het Uchiwa dashboard. Stel me gerust als je vragen hebt.