Sensu je bezplatný nástroj s otevřeným zdrojovým kódem používaný k monitorování infrastruktury a stavu aplikací. Je napsán v Ruby, používá RabbitMQ ke zpracování zpráv a Redis k ukládání dat. Lze jej nainstalovat na většinu operačních systémů včetně Ubuntu, Debian, RHEL, CentOS, IBM, AIX, FreeBSD, Mac OS, Solaris, Windows a mnoha dalších. Je to jedna z nejpopulárnějších platforem nové generace, která nahrazuje jiné monitorovací systémy jako Zabbix, Icinga a Nagios. Sensu používá model klient-server. Na každý systém, který chcete monitorovat, budete muset nainstalovat klienta sensu.
V tomto tutoriálu si ukážeme, jak nainstalovat monitorovací server Sensu na server Ubuntu 20.04.
Předpoklady
- Server se systémem Ubuntu 20.04.
- Na serveru je nakonfigurováno heslo uživatele root.
Začínáme
Nejprve budete muset aktualizovat svůj systém na nejnovější stabilní verzi. Můžete to provést aktualizací všech systémových balíčků pomocí následujícího příkazu:
apt-get update -y
Po aktualizaci systému nainstalujte další závislosti pomocí následujícího příkazu:
apt-get install gnupg2 curl wget unzip -y
Jakmile jsou všechny balíčky nainstalovány, můžete přejít k dalšímu kroku.
Instalovat Redis a RabbitMQ
Sensu používá RabbitMQ ke zpracování zpráv a Redis k ukládání dat. Oba balíčky tedy musí být nainstalovány ve vašem systému. Ve výchozím nastavení není RabbitMQ k dispozici ve výchozím úložišti Ubuntu 20.04. Budete tedy muset do svého systému přidat úložiště RabbitMQ.
Nejprve importujte klíč GPG pomocí následujícího příkazu:
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | apt-key add -
Dále přidejte úložiště spuštěním následujícího příkazu:
echo "deb http://binaries.erlang-solutions.com/debian $(lsb_release -cs) contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list
Dále aktualizujte úložiště a nainstalujte balíček RabbitMQ pomocí následujícího příkazu:
apt-get update -y
apt-get install rabbitmq-server -y
Po instalaci budete muset vytvořit RabbitMQ vhost pro Sensu. Můžete jej vytvořit pomocí následujícího příkazu:
rabbitmqctl add_vhost /sensu
Měli byste vidět následující výstup:
Adding vhost "/sensu" ...
Dále vytvořte uživatele pro správu vhost pomocí následujícího příkazu:
rabbitmqctl add_user sensu password
Měli byste vidět následující výstup:
Adding user "sensu" ...
Dále budete muset přidělit úplná oprávnění pro vhost /sensu.
rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
Měli byste získat následující výstup:
Setting permissions for user "sensu" in vhost "/sensu" ...
Dále nainstalujte server Redis pomocí následujícího příkazu:
apt-get install redis-server -y
Po dokončení instalace spusťte službu Redis a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl start redis-server
systemctl enable redis-server
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalovat Sensu Server
Ve výchozím nastavení není Sensu k dispozici v oficiálním úložišti Ubuntu. Budete tedy muset do svého systému přidat úložiště Sensu.
Nejprve importujte klíč GPG úložiště pomocí následujícího příkazu:
wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | apt-key add -
Dále přidejte úložiště pomocí následujícího příkazu:
echo "deb https://sensu.global.ssl.fastly.net/apt bionic main" | tee /etc/apt/sources.list.d/sensu.list
Jakmile je úložiště přidáno, aktualizujte úložiště a nainstalujte Sensu pomocí následujícího příkazu:
apt-get update -y
apt-get install sensu -y
Jakmile je Sensu nainstalován, můžete přejít k dalšímu kroku.
Konfigurovat Sensu
Dále budete muset vytvořit konfigurační soubory pro RabbitMQ, Redis a Api. Nejprve vytvořte soubor api.json pomocí následujícího příkazu:
nano /etc/sensu/conf.d/api.json
Přidejte následující řádky:
{ "api": { "host": "localhost", "bind": "0.0.0.0", "port": 4567 } }
Uložte a zavřete soubor a poté vytvořte soubor redis.json pomocí následujícího příkazu:
nano /etc/sensu/conf.d/redis.json
Přidejte následující řádky:
{ "redis": { "host": "127.0.0.1", "port": 6379 } }
Uložte a zavřete soubor a poté vytvořte konfigurační soubor RabbitMQ pomocí následujícího příkazu:
nano /etc/sensu/conf.d/rabbitmq.json
Přidejte následující řádky:
{ "rabbitmq": { "host": "127.0.0.1", "port": 5672, "vhost": "/sensu", "user": "sensu", "password": "password" } }
Po dokončení uložte a zavřete soubor.
Instalovat a konfigurovat Sensu Dashboard
Dále budete muset nainstalovat řídicí panel Uchiwa do vašeho systému. Uchiwa je open-source dashboard pro monitorování Sensu přes webové rozhraní.
Uchiwa můžete nainstalovat pomocí následujícího příkazu:
apt-get install uchiwa -y
Po instalaci Uchiwa vytvořte konfigurační soubor pro Uchiwa pomocí následujícího příkazu:
nano /etc/sensu/uchiwa.json
Přidejte následující řádky:
{ "sensu": [ { "name": "Sensu", "host": "127.0.0.1", "port": 4567, "timeout": 10 } ], "uchiwa": { "host": "0.0.0.0", "port": 3000, "refresh": 10 } }
Po dokončení uložte a zavřete soubor.
Dále budete muset vytvořit soubor client.json pro monitorování samotného serveru Sensu. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/sensu/conf.d/client.json
Přidejte následující řádky:
{ "client": { "name": "sensu-server", "address": "127.0.0.1", "environment": "management", "subscriptions": [ "dev", "ubuntu" ], "socket": { "bind": "127.0.0.1", "port": 3030 } } }
Po dokončení uložte a zavřete soubor.
Dále spusťte server Sensu, klientskou službu Api, Uchiwa a Sensu pomocí následujícího příkazu:
systemctl start sensu-server
systemctl start sensu-api
systemctl start uchiwa
systemctl start sensu-client
Jakmile jsou všechny služby spuštěny, můžete ověřit stav všech služeb pomocí následujícího příkazu:
systemctl status sensu-server sensu-api sensu-client uchiwa
Měli byste získat následující výstup:
? 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
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Přístup k řídicímu panelu Sensu
Nyní otevřete webový prohlížeč a zadejte adresu URL http://ip-vaseho-serveru:3000. Na následující obrazovce byste měli vidět řídicí panel Sensu:
Nyní klikněte na klienta ikonu v levém podokně. Na následující obrazovce byste měli vidět stav klienta Sensu:
Závěr
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Sensu a Uchiwa na serveru Ubuntu 20.04. Nyní můžete přidat další klienty a začít monitorovat z řídicího panelu Uchiwa. Pokud máte nějaké dotazy, neváhejte se mě zeptat.