良许Linux教程网 干货合集 Linux下 Sensu的安装和使用

Linux下 Sensu的安装和使用

Linux下如何使用 Sensu?Sensu 是一款开源的监控框架。 Sensu 采用 C/S 结构,有用来发送指令、存储数据的 Sensu Server 和被监控的对象 Sensu Client,下面为大家分享一下Linux下 Sensu的安装和使用方法。

Linux下 Sensu的安装和使用

安装 Sensu

条件

  • 一个 Linux 系统作为服务器节点(本文使用了 CentOS 7)

  • 要监控的一台或多台 Linux 机器(客户机)

服务器侧

Sensu 需要安装 Redis。要安装 Redis,启用 EPEL 仓库:

$ sudo yum install epel-release -y

然后安装 Redis:

$ sudo yum install redis -y

修改 /etc/redis.conf 来禁用保护模式,监听每个地址并设置密码:

$ sudo sed -i 's/^protected-mode yes/protected-mode no/g' /etc/redis.conf
$ sudo sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf
$ sudo sed -i 's/^# requirepass foobared/requirepass password123/g' /etc/redis.conf

启用并启动 Redis 服务:

$ sudo systemctl enable redis
$ sudo systemctl start redis

Redis 现在已经安装并准备好被 Sensu 使用。

现在让我们来安装 Sensu。

首先,配置 Sensu 仓库并安装软件包:

$ sudo tee /etc/yum.repos.d/sensu.repo 

让我们为 Sensu 创建最简单的配置文件:

$ sudo tee /etc/sensu/conf.d/api.json 

然后,配置 sensu-api 在本地主机上使用端口 4567 监听:

$ sudo tee /etc/sensu/conf.d/redis.json ",
       "port": 6379,
       "password": "password123"
 }
}
EOF
$ sudo tee /etc/sensu/conf.d/transport.json 

在这两个文件中,我们将 Sensu 配置为使用 Redis 作为传输机制,还有 Reids 监听的地址。客户端需要直接连接到传输机制。每台客户机都需要这两个文件。

$ sudo tee /etc/sensu/uchiwa.json 

在这个文件中,我们配置 Uchiwa 监听每个地址(0.0.0.0)的端口 3000。我们还配置 Uchiwa 使用 sensu-api(已配置好)。

出于安全原因,更改刚刚创建的配置文件的所有者:

$ sudo chown -R sensu:sensu /etc/sensu

启用并启动 Sensu 服务:

$ sudo systemctl enable sensu-server sensu-api sensu-client
$ sudo systemctl start sensu-server sensu-api sensu-client
$ sudo systemctl enable uchiwa
$ sudo systemctl start uchiwa

尝试访问 Uchiwa 网站:http://:3000

对于生产环境,建议运行 RabbitMQ 集群作为 Transport 而不是 Redis(虽然 Redis 集群也可以用于生产环境),运行多个 Sensu 服务器实例和 API 实例,以实现负载均衡和高可用性。

Sensu 现在安装完成,让我们来配置客户端。

客户端侧

要添加一个新客户端,你需要通过创建 /etc/yum.repos.d/sensu.repo 文件在客户机上启用 Sensu 仓库。

$ sudo tee /etc/yum.repos.d/sensu.repo 

启用仓库后,安装 Sensu:

$ sudo yum install sensu -y

要配置 sensu-client,创建在服务器中相同的 redis.jsontransport.json,还有 client.json 配置文件:

$ sudo tee /etc/sensu/conf.d/client.json 

name 字段中,指定一个名称来标识此客户机(通常是主机名)。environment 字段可以帮助你过滤,而 subscriptions 定义了客户机将执行哪些监视检查。

最后,启用并启动服务并签入 Uchiwa,因为客户机会自动注册:

$ sudo systemctl enable sensu-client
$ sudo systemctl start sensu-client

Sensu 检查

Sensu 检查有两个组件:一个插件和一个定义。

Sensu 与 Nagios 检查插件规范兼容,因此无需修改即可使用用于 Nagios 的任何检查。检查是可执行文件,由 Sensu 客户机运行。

检查定义可以让 Sensu 知道如何、在哪以及何时运行插件。

客户端侧

让我们在客户机上安装一个检查插件。请记住,此插件将在客户机上执行。

启用 EPEL 并安装 nagios-plugins-http

$ sudo yum install -y epel-release
$ sudo yum install -y nagios-plugins-http

现在让我们通过手动执行它来了解这个插件。尝试检查客户机上运行的 Web 服务器的状态。它应该会失败,因为我们并没有运行 Web 服务器:

$ /usr/lib64/nagios/plugins/check_http -I 127.0.0.1
connect to address 127.0.0.1 and port 80: Connection refused
HTTP CRITICAL - Unable to open TCP socket

不出所料,它失败了。检查执行的返回值:

$ echo $?
2

Nagios 检查插件规范定义了插件执行的四个返回值:

插件返回码 状态
0 OK
1 WARNING
2 CRITICAL
3 UNKNOWN

有了这些信息,我们现在可以在服务器上创建检查定义。

服务器侧

在服务器机器上,创建 /etc/sensu/conf.d/check_http.json 文件:

{
 "checks": {
   "check_http": {
     "command": "/usr/lib64/nagios/plugins/check_http -I 127.0.0.1",
     "interval": 10,
     "subscribers": [
       "frontend"
     ]
   }
 }
}

command 字段中,使用我们之前测试过的命令。interval 会告诉 Sensu 这个检查的频率,以秒为单位。最后,subscribers 将定义执行检查的客户机。

重新启动 sensu-apisensu-server 并确认新检查在 Uchiwa 中可用。

$ sudo systemctl restart sensu-api sensu-server

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部