如何在 Ubuntu 20.04 上安装 Sensu 监控
在此页
- 先决条件
- 开始
- 安装 Redis 和 RabbitMQ
- 安装 Sensu 服务器
- 配置 Sensu
- 安装和配置 Sensu 仪表板
- 访问 Sensu 仪表板
- 结论
Sensu 是一个免费的开源工具,用于监控基础设施和应用程序的健康状况。它是用 Ruby 编写的,使用 RabbitMQ 处理消息,使用 Redis 存储数据。它可以安装在大多数操作系统上,包括 Ubuntu、Debian、RHEL、CentOS、IBM、AIX、FreeBSD、Mac OS、Solaris、Windows 等等。它是最受欢迎的下一代平台之一,取代了其他监控系统,如 Zabbix、Icinga 和 Nagios。 Sensu 使用客户端-服务器模型。您只需要在每个要监控的系统上安装一个 sensu 客户端。
在本教程中,我们将展示如何在 Ubuntu 20.04 服务器上安装 Sensu 监控服务器。
先决条件
- 一台运行 Ubuntu 20.04 的服务器。
- 为服务器配置了根密码。
入门
首先,您需要将系统更新到最新的稳定版本。您可以通过使用以下命令更新所有系统包来执行此操作:
apt-get update -y
更新系统后,使用以下命令安装其他依赖项:
apt-get install gnupg2 curl wget unzip -y
安装所有软件包后,您可以继续下一步。
安装 Redis 和 RabbitMQ
Sensu 使用 RabbitMQ 处理消息,使用 Redis 存储数据。所以这两个包都必须安装在您的系统中。默认情况下,RabbitMQ 在 Ubuntu 20.04 默认存储库中不可用。因此,您需要在系统中添加 RabbitMQ 存储库。
首先,使用以下命令导入 GPG 密钥:
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | apt-key add -
接下来,通过运行以下命令添加存储库:
echo "deb http://binaries.erlang-solutions.com/debian $(lsb_release -cs) contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list
接下来,更新存储库并使用以下命令安装 RabbitMQ 包:
apt-get update -y
apt-get install rabbitmq-server -y
安装后,您需要为 Sensu 创建一个 RabbitMQ 虚拟主机。您可以使用以下命令创建它:
rabbitmqctl add_vhost /sensu
您应该看到以下输出:
Adding vhost "/sensu" ...
接下来,使用以下命令创建一个用户来管理虚拟主机:
rabbitmqctl add_user sensu password
您应该看到以下输出:
Adding user "sensu" ...
接下来,您需要为 vhost /sensu 分配完全权限。
rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
您应该得到以下输出:
Setting permissions for user "sensu" in vhost "/sensu" ...
接下来,使用以下命令安装 Redis 服务器:
apt-get install redis-server -y
安装完成后,启动 Redis 服务并使用以下命令使其在系统重启时启动:
systemctl start redis-server
systemctl enable redis-server
完成后,您可以继续下一步。
安装 Sensu 服务器
默认情况下,Ubuntu 官方存储库中不提供 Sensu。所以你需要在你的系统中添加 Sensu 存储库。
首先,使用以下命令导入存储库 GPG 密钥:
wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | apt-key add -
接下来,使用以下命令添加存储库:
echo "deb https://sensu.global.ssl.fastly.net/apt bionic main" | tee /etc/apt/sources.list.d/sensu.list
添加存储库后,更新存储库并使用以下命令安装 Sensu:
apt-get update -y
apt-get install sensu -y
安装 Sensu 后,您可以继续下一步。
配置 Sensu
接下来,您需要为 RabbitMQ、Redis 和 Api 创建配置文件。首先,使用以下命令创建一个 api.json 文件:
nano /etc/sensu/conf.d/api.json
添加以下行:
{
"api": {
"host": "localhost",
"bind": "0.0.0.0",
"port": 4567
}
}
保存并关闭文件,然后使用以下命令创建 redis.json 文件:
nano /etc/sensu/conf.d/redis.json
添加以下行:
{
"redis": {
"host": "127.0.0.1",
"port": 6379
}
}
保存并关闭文件,然后使用以下命令创建 RabbitMQ 配置文件:
nano /etc/sensu/conf.d/rabbitmq.json
添加以下行:
{
"rabbitmq": {
"host": "127.0.0.1",
"port": 5672,
"vhost": "/sensu",
"user": "sensu",
"password": "password"
}
}
完成后保存并关闭文件。
安装和配置 Sensu 仪表板
接下来,您需要在系统中安装 Uchiwa 仪表板。 Uchiwa 是一个开源仪表板,可通过 Web 界面监控 Sensu。
您可以使用以下命令安装 Uchiwa:
apt-get install uchiwa -y
安装 Uchiwa 后,使用以下命令为 Uchiwa 创建一个配置文件:
nano /etc/sensu/uchiwa.json
添加以下行:
{
"sensu": [
{
"name": "Sensu",
"host": "127.0.0.1",
"port": 4567,
"timeout": 10
}
],
"uchiwa": {
"host": "0.0.0.0",
"port": 3000,
"refresh": 10
}
}
完成后保存并关闭文件。
接下来,您需要创建一个 client.json 文件来监控 Sensu 服务器本身。您可以使用以下命令创建它:
nano /etc/sensu/conf.d/client.json
添加以下行:
{
"client": {
"name": "sensu-server",
"address": "127.0.0.1",
"environment": "management",
"subscriptions": [
"dev",
"ubuntu"
],
"socket": {
"bind": "127.0.0.1",
"port": 3030
}
}
}
完成后保存并关闭文件。
接下来,使用以下命令启动 Sensu 服务器、Api、Uchiwa 和 Sensu 客户端服务:
systemctl start sensu-server
systemctl start sensu-api
systemctl start uchiwa
systemctl start sensu-client
所有服务启动后,您可以使用以下命令验证所有服务的状态:
systemctl status sensu-server sensu-api sensu-client uchiwa
您应该得到以下输出:
? 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 ubunt4 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 ubunt4 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 ubunt4 systemd[1]: sensu-client.service: Succeeded.
Aug 23 09:04:42 ubunt4 systemd[1]: Stopped sensu client.
Aug 23 09:04:42 ubunt4 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
完成后,您可以继续下一步。
访问 Sensu 仪表板
现在,打开您的 Web 浏览器并输入 URL http://your-server-ip:3000。您应该在以下屏幕中看到 Sensu 仪表板:

现在,单击左窗格中的客户端图标。您应该在以下屏幕中看到 Sensu 客户端的状态:

结论
恭喜!您已经在 Ubuntu 20.04 服务器上成功安装和配置了 Sensu 和 Uchiwa。您现在可以添加更多客户端并从 Uchiwa 仪表板开始监控。如果您有任何问题,请随时问我。