在Arch Linux上使用Makepkg
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
在指南“ 如何在CentOS 7上安装和配置Sensu监视 ”中,您学习了如何设置Sensu服务器。本教程是第二部分,您将在其中学习如何添加Sensu客户端。Sensu客户端是Sensu监视的服务器。
我假设Sensu客户端是CentOS 7虚拟机。登录SSH并按照以下步骤操作。您无需在Sensu服务器上进行任何更改。只要Sensu客户端成功通过Sensu服务器进行身份验证,就会自动执行检查。
在开始之前,请确保正确配置了防火墙。使用默认设置,打开传出TCP端口5671和5672。
该软件包sensu-client不在默认的CentOS存储库中。通过将以下内容粘贴到文件中来添加存储库/etc/yum.repos.d/sensu.repo:
[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/$releasever/$basearch/
gpgcheck=0
enabled=1
接下来,更新yum并安装sensu-client:
yum update
yum install sensu
所有服务(sensu-server,sensu-client和sensu-api)将通过安装安装sensu包。您可以放心地忽略除sensu-client我们将要使用的服务以外的所有服务。暂时不要启动服务。
Sensu的模型是在客户端上分配执行检查和推送检查结果所产生的负载。因此,您需要在客户端本身而不是Sensu服务器上安装Sensu插件。一些插件是在本地编译的,这意味着我们将需要在客户端上构建工具:
yum groupinstall "Development tools"
以下插件非常受欢迎,并用于许多检查。一旦安装了开发工具包,请执行以下每个命令以安装插件。根据服务器的大小,这可能需要一段时间:
sensu-install -p uptime-checks
sensu-install -p process-checks
sensu-install -p http
sensu-install -p filesystem-checks
sensu-install -p cpu-checks
sensu-install -p memory-checks
sensu-install -p disk-checks
sensu-install -p load-checks
sensu-install -p network-checks
我们将向Sensu客户端添加四个配置文件。
/etc/sensu/conf.d/client.json:
该文件包含订阅,Sensu客户端的IP地址和客户端名称。用描述您要添加的客户端的值替换这些值ipaddress和hostname。另外,请指定在Sensu服务器上定义的订阅,或者如果没有订阅,则删除整个subscriptions部分。如果执行以下操作,请不要忘记删除逗号name:
{
"client": {
"address": "-----ipaddress-----",
"environment": "production",
"name": "-----hostname-----",
"subscriptions": [
"linux"
]
}
}
/etc/sensu/conf.d/transport.json:
在此文件中,我们定义了使用的传输方式。默认情况下,使用的传输是RabbitMQ。将以下内容粘贴到文件中。无需更改任何值:
{
"transport": {
"name": "rabbitmq",
"reconnect_on_error": true
}
}
/etc/sensu/conf.d/rabbitmq.json:
RabbitMQ服务器和凭据在此文件中指定。替换hostname为DNS名称。默认情况下,该端口5672用于未加密的连接。RabbitMQ用户和密码也应该被替换。对于每个Sensu客户端,这些详细信息可以有所不同,或者对于所有客户端,这些详细信息可以相同。这是用户做出的实际决定。
该vhost是/默认,但它往往是改变/sensu。如果不确定要使用哪个,请尝试两种方法:
{
"rabbitmq": {
"host": "-----hostname-----",
"password": "-----rabbitmq_password-----",
"port": 5672,
"user": "-----username-----",
"vhost": "/sensu"
}
}
/etc/sensu/conf.d/checks.json:
Sensu支持两种检查类型:独立检查和订阅检查。订阅检查在Sensu服务器上定义,而订阅在client.jsonSensu客户端上的文件中定义。独立检查是在Sensu客户端本身上定义的检查。这些通常是仅适用于一台特定服务器的检查。例如,预订中包含的检查就是检查Web服务器是否仍在运行。独立检查可能是检查服务器A是否可以到达服务器B的检查。没有其他服务器需要该检查。
独立检查在此文件中定义。在下面,您将找到checks.json带有一些独立检查示例的文件示例:
{
"checks": {
"httpd": {
"command": "sudo check-process.rb -p httpd",
"handlers": [
"default",
"pushover"
],
"interval": 180,
"occurences": 3,
"refresh": "1800",
"standalone": true,
"ttl": 1200
},
"mysqld": {
"command": "sudo check-process.rb -p mysqld",
"handlers": [
"default",
"pushover"
],
"interval": 180,
"occurences": 3,
"refresh": "1800",
"standalone": true,
"ttl": 1200
}
}
}
完成Sensu客户端的配置后,更改权限:
chown -R sensu:sensu /etc/sensu/conf.d
sensu用户权限以用户身份执行检查sensu。当然,该用户具有有限的权限。但是,某些检查需要root权限才能执行。我们将允许用户sensu执行任何检查,root但限制其其他权限。
将以下内容粘贴到文件中/etc/sudoers.d/sensu:
Defaults:sensu
secure_path=/opt/sensu/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/check*.rb *
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/metrics*.rb *
前两行定义默认路径,该默认路径允许您仅在check命令中指定脚本名称,而不是整个路径。例如,只需使用命令即可sudo check-process.rb -p mysqld运行,而不必指定整个路径(/opt/sensu/embedded/bin/check-process.rb -p mysqld)。
其他行允许sensu用户执行任何检查脚本root。
最后,启动sensu-client服务并在启动时自动启动它:
systemctl start sensu-client
systemctl enable sensu-client
如果已安装Uchiwa,则新客户端应出现在列表中。如果不是,请sensu-client通过检查日志文件来调试/var/log/sensu/sensu-client.log
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息