如何在 Ubuntu 18.04 上使用 Checkmk 监控服务器健康状况

作者选择了 开放式互联网 / 自由言论基金作为 写给捐赠计划的一部分接受捐款。

介绍

作为系统管理员,了解基础设施和服务的当前状态是最好的做法,理想情况下,您希望在用户使用之前注意到失败的磁盘或应用程序停机时间。

通常情况下,监控软件可以跟踪服务器的硬件、运行时间和服务状态,并在发生错误时发出警报。在一个非常基本的场景中,监控系统会提醒您,如果任何服务出现故障。

有许多监控解决方案可提供不同程度的复杂性和功能集,无论是免费的还是商业的,在许多情况下,安装,配置和管理这些工具是困难的和耗时的。

Checkmk,然而,是一个监控解决方案,既强大又易于安装。它是一个自有软件包,将 Nagios(一个流行的开源警报服务)与用于收集、监控和绘图数据的附加功能相结合。它还配备了Checkmk的Web界面 - 一个全面的工具,解决了许多Nagios的缺点。它提供了一个用户友好的仪表板,一个功能齐全的通知系统,以及一个易于安装的监控代理库,用于许多Linux发行版。如果不是Checkmk的Web界面,我们将不得不使用不同的视图来完成不同的任务,而不需要进行广泛的文件修改,就无法配置所有这些功能。

我们将监控Ubuntu服务器本身以及一个单独的CentOS 7服务器,但我们可以使用相同的方法将任何额外的主机添加到我们的监控配置。

前提条件

  • 一台Ubuntu 18.04服务器具有常规的非根用户,具有sudo特权. 您可以通过遵循此 初始服务器设置教程学习如何准备您的服务器。
  • 一台 CentOS 7服务器具有常规的非根用户,具有sudo特权。

步骤 1 — 在 Ubuntu 上安装 Checkmk

为了使用我们的监控网站,我们首先必须在Ubuntu服务器上安装Checkmk,这将为我们提供所需的所有工具。Checkmk提供官方的Ubuntu包文件,我们可以使用它来安装软件包。

首先,让我们更新包列表,以便我们有最新的库列表版本:

1sudo apt update

要浏览包,我们可以去 包列表网站。Ubuntu 18.04,在其他方面,可以从页面菜单中选择。

现在下载包:

1wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

然后安装新下载的软件包:

1sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

此命令将安装 Checkmk 包以及所有必要的依赖,包括用于提供 Web 访问到监控接口的 Apache Web 服务器。

安装完成后,我们现在可以访问omd命令。

1sudo omd

这个omd命令将输出如下:

 1[secondary_label Output]
 2Usage (called as root):
 3
 4 omd help Show general help
 5
 6. . .
 7
 8General Options:
 9 -V <version>                    set specific version, useful in combination with update/create
10 omd COMMAND -h, --help show available options of COMMAND

omd命令可以管理我们服务器上的所有Checkmk实例. 它可以同时启动和停止所有监控服务,我们将使用它来创建我们的Checkmk实例. 但是,首先,我们必须更新我们的防火墙设置,以允许外部访问默认的Web端口。

第2步:调整防火墙设置

在我们能够使用 Checkmk 之前,我们需要在防火墙配置中允许外部访问 Web 服务器。假设您在前提条件中遵循防火墙配置步骤,您将设置一个 UFW 防火墙来限制访问您的服务器。

在安装过程中,Apache 会与 UFW 注册,以便通过防火墙轻松启用或禁用对 Apache 的访问。

若要允许访问 Apache,请使用以下命令:

1sudo ufw allow Apache

现在检查一下变化:

1sudo ufw status

你会看到Apache在允许的服务中列出:

1[secondary_label Output]
2Status: active
3
4To Action From
5--                         ------      ----
6OpenSSH ALLOW Anywhere
7Apache ALLOW Anywhere
8OpenSSH (v6)               ALLOW Anywhere (v6)
9Apache (v6)                ALLOW Anywhere (v6)

这将使我们能够访问Checkmk Web接口。

在下一步中,我们将创建第一个 Checkmk 监控实例。

步骤 3 – 创建一个 Checkmk 监控实例

Checkmk 使用实例或单个安装的概念来在服务器上分离多个 Checkmk 副本. 在大多数情况下,只有一份 Checkmk 副本就足够了,这就是我们在本指南中如何配置软件。

首先我们必须给我们的新实例一个名字,我们将在整个文本中使用监控

1sudo omd create monitoring

omd工具将自动为我们设置一切,命令输出将看起来如下:

 1[secondary_label Output]
 2Adding /opt/omd/sites/monitoring/tmp to /etc/fstab.
 3Creating temporary filesystem /omd/sites/monitoring/tmp...OK
 4Restarting Apache...OK
 5Created new site monitoring with version 1.6.0p8.cre.
 6
 7  The site can be started with omd start monitoring.
 8  The default web UI is available at http://your_ubuntu_server/monitoring/
 9
10  The admin user for the web applications is cmkadmin with password: your-default-password
11  (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.)
12  Please do a su - monitoring for administration of this site.

在此输出中,突出显示了访问我们的监控接口的 URL 地址、默认用户名和密码。该实例现在已创建,但仍需要启动。

1sudo omd start monitoring

现在所有必要的工具和服务将立即启动,最后我们会看到一个输出,验证我们所有的服务都成功启动了:

1[secondary_label Output]
2Starting mkeventd...OK
3Starting rrdcached...OK
4Starting npcd...OK
5Starting nagios...OK
6Starting apache...OK
7Initializing Crontab...OK

这个案子正在起步和运行。

要访问 Checkmk 实例,请在 Web 浏览器中打开 http://your_ubuntu_server_ip/monitoring/. 您将被邀请寻找密码。 使用在屏幕上打印的默认凭证;我们将稍后更改这些默认凭证。

Checkmk 屏幕打开一个仪表板,在列表中显示我们所有的服务和服务器状态,并使用类似地球的实用图表。

Blank Checkmk dashboard

在下一步,我们将更改默认密码以使用此界面保护网站。

第4步:更改您的管理密码

在安装过程中,Checkmk为cmkadmin的管理用户生成随机密码. 此密码在安装时应该被更改,因此它通常很短且不太安全。

首先,从左侧的 **WATO - Configuration ** 菜单中打开 Users 页面. 该列表将显示目前有访问 Checkmk 网站的所有用户. 在新安装时,它只列出两个用户。

List of Checkmk users

点击cmkadmin用户旁边的铅笔图标,以更改其详细信息,包括密码。

Edit form for Checkmk admin user

更新密码,添加管理员电子邮件,并进行任何其他所需的更改。

保存更改后,我们将被要求再次使用我们的新凭据登录,然后返回仪表板,我们还需要做一件事来完全应用我们的新配置。

再次从左侧的 WATO - Configuration菜单中打开 Users页面。标记为 1 Change的左上角的橙色按钮告诉我们,我们已经对 Checkmk 的配置做了一些更改,我们需要保存和激活它们。

List of Checkmk users after modifications Activate configuration changes confirmation screen Successfully activated configuration changes

激活更改后,新用户的数据将被写入配置文件,并将被系统的所有组件使用。Checkmk自动负责通知单个监控系统组件,必要时重新加载它们,并管理所有必要的配置文件。

Checkmk 安装现在已经准备好使用,在下一步,我们将向我们的监控系统添加第一个主机。

步骤5 - 监控第一个主机

我们现在已经准备好监控第一台主机,要做到这一点,我们将首先在Ubuntu服务器上安装check-mk-agent,然后使用xinetd限制访问监控数据。

与 Checkmk 安装的组件负责接收、存储和呈现监控信息,它们本身不提供信息。

为了收集实际数据,我们将使用Checkmk代理(https://checkmk.com/cms_wato_monitoringagents.html#agents)。专门为该任务设计的Checkmk代理能够同时监控所有关键系统组件,并将该信息报告到Checkmk实例。

安装代理人

我们将监控的第一个主机将是your_ubuntu_server,即我们已经安装了 Checkmk 实例的服务器。

首先,我们必须安装 Checkmk 代理程序. 包括 Ubuntu 在内的所有主要发行版的包可以直接从 Web 界面获取。 从左侧的 WATO - Configuration 菜单打开 Monitoring Agents 页面。

List of available packaged monitoring agents

check-mk-agent_1.6.0p8-1_all.deb 是适用于基于 Debian 的发行版,包括 Ubuntu. 从 Web 浏览器复制该包的下载链接,然后使用该地址下载该包。

1wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb

下载后,安装该包:

1apt install -y ./check-mk-agent_1.6.0p8-1_all.deb

现在检查代理是否已成功安装:

1check_mk_agent

该命令将输出一个看起来很长的文本,但将有关系统的所有重要信息整合到一个地方。

1[secondary_label Output]
2<<<check_mk>>>
3Version: 1.6.0p8
4AgentOS: linux
5. . .
6["monitoring"]
7<<<job>>>
8<<<local>>>

Checkmk 使用此命令的输出来收集监控主机的状态数据,现在,我们将使用xinetd限制对监控数据的访问。

使用 xinetd 限制访问监控数据

默认情况下,从check_mk_agent获取的数据使用 xinetd,该机制在访问该端口时输出数据,这意味着我们可以通过使用telnet 到端口6556 (Checkmk 的默认端口)从互联网上的任何其他计算机访问check_mk_agent,除非我们的防火墙配置不允许这样做。

向互联网上任何人发布有关服务器的关键信息不是一个好的安全政策,我们应该允许只有运行 Checkmk 并在我们监督下的主机访问这些数据,以便只有我们的监控系统才能收集这些数据。

如果您遵循了 初始服务器设置教程,包括有关设置防火墙的步骤,则默认情况下对 Checkmk 代理的访问被阻止。

为了限制对代理数据的访问,我们必须在 /etc/xinetd.d/check_mk 编辑配置文件。在您最喜欢的编辑器中打开配置文件。

1sudo nano /etc/xinetd.d/check_mk

查找此部分:

1[label /etc/xinetd.d/check_mk]
2. . .
3# configure the IP address(es) of your Nagios server here:
4#only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
5. . .

only_from 设置负责限制访问某些 IP 地址. 因为我们现在正在监控运行在 Checkmk 的相同服务器,所以只允许localhost 连接是正常的。

1[label /etc/xinetd.d/check_mk]
2. . .
3# configure the IP address(es) of your Nagios server here:
4only_from      = 127.0.0.1
5. . .

保存和退出文件。

xinetd daemon 必须重新启动,以便发生更改。

1sudo systemctl restart xinetd

现在我们的代理正在运行,并且受限于只接受本地连接,我们可以使用 Checkmk 进行对该主机的监控配置。

在 Checkmk Web 接口中配置主机

首先,要将新主机添加到监视器,我们必须进入左侧的 **WATO - Configuration **菜单中的 **Hosts **菜单。

Creating a new host in Checkmk

Hostname 是 Checkmk 将用于监控的已知名称。 它可能是一个完全合格的域名,但并不必要。 在本示例中,我们会将主机命名为监控,就像 Checkmk 实例本身的名称一样。 由于监控无法解决我们的 IP 地址,我们还必须提供我们的服务器的 IP 地址。 并且由于我们正在监控本地主机,IP 将简单地为127.0.0.1。 检查 IPv4 地址 框以启用手动 IP 输入并输入文本字段中的值。

数据源部分的默认配置依赖 Checkmk 代理来提供监控数据,这很好。网络细分设置用于表示远程网络上的主机,这些主机具有较高的预期延迟,而不是故障的迹象。

要保存主机并配置哪些服务将被监控,请单击 ** 保存 & 转到服务 ** 按钮。

List of available services to monitor

Checkmk将自动进行库存,这意味着它将收集从代理的输出并解密它,以了解它可以监控的服务类型。监控的所有可用服务都将列入列表,包括CPU负载、内存使用和磁盘上空空间。

要启用对所有发现的服务的监控,我们必须在未确定服务(目前未监控)部分下单击监控按钮,这将更新页面,但现在所有服务将列入监控服务部分,通知我们他们确实正在监控。

如同在更改我们的用户密码时一样,这些新更改必须保存并激活,然后再生。 按一下 2更改按钮,然后使用 Activate affected按钮接受更改。

现在您已经准备好使用您的服务器数据了,请使用左侧的 ** Overview/Main Overview** 菜单项查看主仪表板。

与监控数据合作

现在让我们用左侧的 ** Overview/Main Overview ** 菜单项来看看主仪表板:

Monitoring dashboard with all services healthy

地球球现在完全绿色,表中说一个主机没有问题,我们可以看到完整的主机列表,现在由一个主机组成,在 Hosts/All hosts视图中(使用左侧菜单)。

List of hosts with all services healthy

在那里,我们将看到有多少服务处于良好的健康状态(显示在绿色),有多少服务失败,还有多少服务等待检查。点击主机名后,我们将能够看到所有服务的完整状态和 Perf-O-Meter的列表。

Details of a host service status

所有返回可绘制数据的服务都会显示名称旁边的图形图标。我们可以使用该图标访问与服务相关的图标。由于主机监控新鲜,图表上几乎没有任何东西,但一段时间后图表将提供有关我们的服务性能如何随着时间的推移而改变的有价值的信息。

Graphs depicting CPU load on the server

当这些服务中任何一个失败或恢复时,信息将显示在仪表板上. 对于失败的服务,将显示红色错误,问题也将显示在地球图表上。

Dashboard with one host having problems

恢复后,一切都将以绿色显示为正常工作,但右侧的事件日志将包含有关过去失败的信息。

Dashboard with one host recovered after problems

现在我们已经探索了仪表板,让我们将第二个主机添加到我们的监控实例中。

步骤 6 – 监控第二个 CentOS 主机

当您有多个主机时,监控非常有用,我们现在将向我们的 Checkmk 实例添加第二台服务器,这次运行 CentOS 7。

与我们的 Ubuntu 服务器一样,安装 Checkmk 代理程序是必要的,以便在 CentOS 上收集监控数据,但这一次,我们需要在 Web 界面上的 Monitoring Agents 页面中使用一个rpm包,名为check-mk-agent-1.6.0p8-1.noarch.rpm

然而,首先我们必须安装xinetd,默认情况下在CentOS安装中不可用。Xinetd,我们会记住,是负责在网络上提供check_mk_agent提供的监控数据的戴蒙。

在您的 CentOS 服务器上,先安装xinetd:

1sudo yum install -y xinetd

现在我们可以下载并安装我们 CentOS 服务器所需的监控代理包:

1sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm

就像以前一样,我们可以通过执行 check_mk_agent 来验证代理是否正常工作:

1sudo check_mk_agent

输出将类似于Ubuntu服务器的输出,现在我们将限制访问代理。

限制访问

这一次我们不会监控本地主机,所以xinetd必须允许来自 Ubuntu 服务器的连接,在那里安装了 Checkmk,以收集数据。

1sudo vi /etc/xinetd.d/check_mk

在这里,你会看到你的check_mk服务的配置,指定如何通过xinetd示威器访问 Checkmk 代理。

1[label /etc/xinetd.d/check_mk]
2. . .
3# configure the IP address(es) of your Nagios server here:
4#only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
5. . .

现在删除第二行,并用your_ubuntu_server_ip取代本地 IP 地址:

1[label /etc/xinetd.d/check_mk]
2. . .
3# configure the IP address(es) of your Nagios server here:
4only_from      = your_ubuntu_server_ip
5. . .

保存和退出文件,键入 :x,然后键入 ENTER. 使用以下方式重新启动 xinetd 服务:

1sudo systemctl restart xinetd

我们现在可以继续配置Checkmk来监控我们的CentOS 7主机。

在 Checkmk 中配置新主机

要将额外的主机添加到Checkmk,我们会像以前一样使用 Hosts菜单。这次我们将命名主机为centos,配置其IP地址,并在选项框中选择 WAN(高延迟),因为主机是在另一个网络上。

Creating second host configuration screen

点击 保存 & go to services,这将显示在CentOS服务器上可供监控的服务. 列表将非常类似于第一个主机的列表。

激活更改后,我们可以验证主机在 All hosts页面上被监控。

List of hosts with two hosts being monitored

您现在正在使用 Checkmk 监控 Ubuntu 服务器和 CentOS 服务器. 可以监控更多的主机. 事实上,除了服务器性能之外,没有上限,这不应该是一个问题,直到您的主机数百。 此外,程序对于任何其他主机都是一样的。

结论

在本指南中,我们设置了两个不同的Linux发行版的两个服务器:Ubuntu和CentOS,然后我们安装并配置了Checkmk来监控这两个服务器,并探索了Checkmk的强大的Web界面。

Checkmk 允许轻松安装完整且多功能的监控系统,将手动配置的所有艰苦工作包装成一个易于使用的网页界面,充满了选项和功能,这些工具可以监控多个主机,设置电子邮件,SMS或推送通知,设置更多服务的额外检查,监控访问性和性能等等。

若要了解更多关于 Checkmk 的信息,请访问 官方文件

Published At
Categories with 技术
comments powered by Disqus