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.