更新时间:2023-01-06 10:51:30浏览次数:902+次
本文介绍如何在Ubuntu 22.04系统上安装和配置Sensu监控工具的方法。
简介
Sensu是一个开源的全栈监控工具,适用于任何类型的动态操作环境。它是一个简单、可扩展和可扩展的框架,可帮助您构建所需的监控系统。
Sensu能够监控公共、私有和混合云以及基于容器的环境。它是用Ruby编写的,使用RabbitMQ对检查事件和请求进行排队。需要持久存储的数据(如客户端信息)存储在Redis中。Sensu提供了大量用于监控公共服务的插件。
以下是Sensu的工作原理:
Sensu使用客户端-服务器模型,其中所有要监控的系统都运行一个感官客户端软件。此客户端应用程序负责执行本地检查、管理客户端订阅和注册,以及完成Sensu服务器请求的检查。代理报告检查结果,服务器将根据结果采取行动,例如,如果服务关闭,则向用户发送通知消息。
在Ubuntu 22.04上安装和配置Sensu
在本文中,我将向您展示在Ubuntu 22.04 LTS上安装Sensu监控工具的步骤。我假设您已经有一个正在运行的Ubuntu服务器,它可以是一个本地的虚拟机,也可以是一台专用的服务器。
步骤1:设置服务器主机名、ntp和更新
始终通过将系统包更新到最新版本来启动安装:
sudo apt update && sudo apt -y full-upgrade
[ -f /var/run/reboot-required ] && sudo reboot -f
等待服务器启动,然后设置主机名:
sudo hostnamectl set-hostname sensu.example.com
然后设置NTP和时区。
最好在Sensu服务器和代理上配置NTP,以便在所有数据上设置正确的时间戳。
设置正确的时区:
sudo timedatectl set-timezone Asia/Shanghai
安装ntp包:
sudo apt -y install ntp
显示ntp状态:
$ ntpq -p
步骤2:安装Sensu后端软件包
Sensu后端包可用于Ubuntu/Debian、RHEL/CCentOS和Docker。运行给定的命令以配置包含包的所需存储库:
$ curl -s https://packagecloud.io/install/repositories/sensu/stable/script.deb.sh | sudo bash
Detected operating system as Ubuntu/jammy.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Detected apt version as 2.4.8
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/sensu_stable.list...done.
Importing packagecloud gpg key... Packagecloud gpg key imported to /etc/apt/keyrings/sensu_stable-archive-keyring.gpg
done.
Running apt-get update... done.
The repository is setup! You can now install packages.
添加存储库并运行后,我们可以安装后端软件包:
sudo apt update
sudo apt install sensu-go-backend
步骤3:配置Sensu并启动服务
有两种方法可用于配置Sensu后端。一种是使用sensu-backend启动标志或/etc/sense/backend.yml文件。
从文档下载配置模板:
sudo curl -L https://docs.sensu.io/sensu-go/latest/files/backend.yml -o /etc/sensu/backend.yml
然后使用systemd服务管理器启动sensu-backend:
sudo systemctl start sensu-backend
验证sensu-backend服务的状态:
$ systemctl status sensu-backend
sensu-backend.service - The Sensu Backend service.
Loaded: loaded (/lib/systemd/system/sensu-backend.service; disabled; vendor preset: enabled)
Active: active (running)
步骤4:通过设置用户名和密码初始化Sensu
在后端运行时,我们需要运行sensu-backend init来设置sensu管理员用户名和密码。
为此,需要具有用户名和密码字符串的环境变量:
export SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=admin
export SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=StrongAdminPassw0rd
使用提供的用户名和密码,初始化Sensu:
$ sudo sensu-backend init
{"component":"cmd","level":"info","msg":"attempting to connect to etcd server: http://localhost:2379"}
{"component":"backend.seeds","level":"info","msg":"seeding etcd store with initial data"}
{"component":"store","level":"warning","msg":"migrating etcd database to a new version","time"}
{"component":"store","database_version":1,"level":"info","msg":"successfully upgraded database"}
{"component":"store","database_version":2,"level":"info","msg":"successfully upgraded database"}
{"component":"store","level":"warning","msg":"migrating enterprise etcd database to a new version"}
{"component":"store","database_version":1,"level":"info","msg":"successfully upgraded database"}
{"component":"store","database_version":2,"level":"info","msg":"successfully upgraded database"}
使用Sensu/healthAPI检查后端是否已启动并正在运行,以检查后端的运行状况。您应该收到包含“Healthy”: true:
$ curl http://127.0.0.1:8080/health
{"Alarms":null,"ClusterHealth":[{"MemberID":13195394291058371180,"MemberIDHex":"b71f75320dc06a6c","Name":"default","Err":"","Healthy":true}],"Header":{"cluster_id":2037210783374497686,"member_id":13195394291058371180,"raft_term":2}}
步骤5:访问Sensu Web UI
Web UI服务正在侦听端口3000:
$ ss -tunelp | grep 3000
tcp LISTEN 0 4096 *:3000 *:* uid:999 ino:32190 sk:16 cgroup:/system.slice/sensu-backend.service v6only:0 <->
web UI提供了可观察事件的统一视图和用户友好的工具。可通过访问打开web UI,地址格式是http://serverIP:3000,如下图:
使用步骤4中设置的用户名和密码登录。
步骤6:安装sensoctl
Sensuctl是一个命令行实用程序,可用于管理Sensu中的资源。它调用Sensu的HTTP API来创建、读取、更新和删除资源、事件和实体。该工具可以安装在Linux、Windows和macOS上:
sudo apt install sensu-go-cli
运行sensuctl configure并使用用户凭据、名称空间和Sensu后端URL登录。
#语法
sensuctl configure -n \
--username 'YOUR_USERNAME' \
--password 'YOUR_PASSWORD' \
--namespace default \
--url 'http://127.0.0.1:8080'
#示例
sensuctl configure -n \
--username 'admin' \
--password 'StrongAdminPassw0rd' \
--namespace default \
--url 'http://127.0.0.1:8080'
要查看您的配置文件,请运行以下命令:
$ sensuctl config view
=== Active Configuration
API URL: http://127.0.0.1:8080
Namespace: default
Format: tabular
Timeout: 15s
Username: admin
JWT Expiration Timestamp: 1665750798
至此,配置Sensu完成。
相关资讯