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

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

介绍

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

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

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

Checkmk是一个强大而易于安装的监控解决方案。它是一套自有软件包,将 Nagios(一种流行的开源警报服务)与用于收集、监控和绘图数据的插件相结合。Checkmk还配备了一个Web接口 - 一个完整的工具,可以补充Nagios。它为许多Linux发行版提供仪表板、通知系统和监控代理库。如果没有Checkmk的Web接口,您将不得不为各种任务使用不同的视图。

在本指南中,您将在 Ubuntu 20.04 服务器上设置 Checkmk,并监控两个单独的主机. 您将监控 Ubuntu 服务器和一个单独的 CentOS 8 服务器,但您可以使用相同的方法将任何额外的主机添加到监控配置中。

前提条件

步骤 1 — 在 Ubuntu 上安装 Checkmk

要使用监控网站,首先,你必须在Ubuntu服务器上安装Checkmk. 此安装将为你提供所有必要的工具。Checkmk提供官方的Ubuntu包文件,你可以用来安装软件包。

首先,更新包列表,以便您有最新版本的存储库列表:

1sudo apt update

要浏览包,请前往 包列表网站。Ubuntu 20.04,除其他外,可以在页面菜单中选择。

现在下载包:

1wget https://download.checkmk.com/checkmk/2.0.0p18/check-mk-raw-2.0.0p18_0.focal_amd64.deb

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

1sudo apt install -y ./check-mk-raw-2.0.0p18_0.focal_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 使用 sites 或单个安装的概念,在服务器上分离多个 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
 4Updating core configuration...
 5Generating configuration for core (type nagios)...Precompiling host checks...OK
 6OK
 7Executing post-create script "01_create-sample-config.py"...OK
 8Restarting Apache...OK
 9Created new site monitoring with version 2.0.0p18.cre.
10
11  The site can be started with omd start monitoring.
12  The default web UI is available at http://your_ubuntu_server/monitoring/
13
14  The admin user for the web applications is cmkadmin with password: your-default-password
15  For command line administration of the site, log in with 'omd su monitoring'.
16  After logging in, you can change the password for cmkadmin with 'htpasswd etc/htpasswd cmkadmin'.

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

1sudo omd start monitoring

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

1[secondary_label Output]
2Temporary filesystem already mounted
3Starting mkeventd...OK
4Starting rrdcached...OK
5Starting npcd...OK
6Starting nagios...OK
7Starting apache...OK
8Starting redis...OK
9Initializing Crontab...OK

网站正在运行和运行。

要访问 Checkmk 网站,请在 Web 浏览器中打开 http://your_ubuntu_server_ip/monitoring/. 您将被要求提供密码。 使用在上一个输出中显示的默认凭据; 您将更改这些默认。

Checkmk 屏幕打开一个仪表板,显示列表中的所有服务和服务器状态,并使用类似蜂蜜饼的实用图表. 安装后立即,这些图表是空的,但您很快就会让它们显示服务和系统的状态。

Blank Checkmk dashboard

左侧菜单是所有 Checkmk 功能的主要入门点,分为三个主要选项卡。 Monitor 部分指用于日常监控工作和检查服务状态的所有活动。 Customize 选项卡用于定制您喜欢的 Web 界面体验。 Setup 选项卡包含所有配置选项。

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

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

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

首先,从左侧的设置菜单中打开用户页面。列表将显示目前有访问 Checkmk 网站的所有用户。在新安装时,它只会列出两个用户。第一个自动化用于自动化工具;第二个是你使用的cmkadmin用于登录网站的用户。

List of Checkmk users

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

Edit form for Checkmk admin user

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

在保存更改后,单击表单上方的保存按钮,您将被要求使用新凭据再次登录。

接下来,从左侧的设置菜单打开用户页面,右上角标记为变更的橙色警告标志告知您已经对 Checkmk 配置做了一些更改,并且需要保存和激活它们。

Checkmk 最初会将您在尚未影响正在进行的监控的沙盒配置环境中所做的所有更改保存下来。在您激活它们后,这些更改将反映在生产配置中。

要保存和激活等待的更改,您必须点击橙色警告通知,并同意在下面的屏幕上点击在选定的网站上激活选项来激活列出的更改。

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

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

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

步骤5 - 监控第一个主机

现在你已经准备好监控第一台主机了,要做到这一点,你将首先在Ubuntu服务器上安装check-mk-agent

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

为了收集实际数据,您将使用 Checkmk 代理。专为该任务而设计的 Checkmk 代理可以同时监控所有关键系统组件,并将该信息报告到 Checkmk 实例。

安装代理

您要监控的第一个主机将是your_ubuntu_server,即您安装了 Checkmk 实例的服务器。

首先,您必须安装 Checkmk 代理程序. 包括 Ubuntu 在内的所有主要发行版的包可以直接从 Web 界面获取。 在左侧的 Setup 菜单中打开 Agents 部分中的 Linux 页面。

List of available packaged monitoring agents

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

1wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_2.0.0p18-1_all.deb

下载后,安装该包:

1sudo apt install -y ./check-mk-agent_2.0.0p18-1_all.deb

现在检查代理安装:

1check_mk_agent

该命令将输出一个长的文本块,看起来很糟糕,但在一个地方结合了有关系统的所有重要信息:

1[secondary_label Output]
2<<<check_mk>>>
3Version: 2.0.0p18
4AgentOS: linux
5...
6monitoring;2.0.0p18.cre;1
7<<<local:sep(0)>>>

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大门必须重新启动,以便发生更改:

1sudo systemctl restart xinetd

现在该代理已启动并运行,并且仅限于接受本地连接,您可以使用 Checkmk 进行对该主机的监控配置。

在 Checkmk Web 接口中配置主机

要将新主机添加到监视器中,请进入左侧的设置菜单中的主机菜单,从这里点击向监视器添加主机

Creating a new host in Checkmk

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

默认配置的监控代理部分依赖 Checkmk 代理提供监控数据,这是好的,不需要任何更改。

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

List of available services to monitor

Checkmk 会自动进行库存,这意味着它会从代理人那里收集输出并解密,以便知道它可以监控哪些类型的服务。

若要启用对所有发现的服务的监控,请点击修复所有按钮,这将更新页面,但现在所有服务将在监控服务部分中列出,通知您他们确实正在监控。

如同在更改用户密码时一样,这些新更改必须保存并激活,然后直播。点击右上角的 2更改通知,然后使用 在选定的网站上激活按钮接受更改。

现在,您已经准备好使用主仪表板处理您的服务器数据。

与监控数据合作

使用左侧的 Monitor菜单中的 主仪表板项查看主仪表板:

Monitoring dashboard with all services healthy

蜂蜜板现在有一个绿色边界,表中表示一个主机没有问题,您可以在左侧的 Monitor菜单中看到完整的主机列表,目前由一个主机组成。

List of hosts with all services healthy

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

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 8.

与Ubuntu服务器一样,安装Checkmk代理程序是必要的,以便在CentOS上收集监控数据,但这一次,您将需要在Web界面上的设置卡的监控代理程序部分的Linux页面上的rpm包,称为check-mk-agent-2.0.0p18-1.noarch.rpm

首先,您必须安装xinetd,默认情况下在CentOS安装中不可用,如前所述,xinetd是负责在网络上提供check_mk_agent提供的监控数据的戴蒙。

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

1sudo dnf install -y xinetd

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

1sudo dnf install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-2.0.0p18-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

如果您根据 初始服务器设置设置配置了本地防火墙,则您还需要调整防火墙设置。

1sudo firewall-cmd --add-port=6556/tcp --permanent

这将允许进入的TCP流量到端口6556,该端口由Checkmk使用,在您重新加载防火墙后,配置将更新:

1sudo firewall-cmd --reload

<$>[注] 注: 您可以通过遵循 如何在 CentOS 8 上使用 firewalld 设置防火墙指南来了解如何优化防火墙设置。

现在您可以继续配置 Checkmk 来监控 CentOS 8 主机。

在 Checkmk 中配置新主机

要在 Checkmk 中添加额外的主机,您可以使用 ** Hosts** 菜单从 Setup 选项卡上,就像之前一样。 点击 Add host 按钮,将 Add host 页面带上。 命名主机「centos」并在 IPv4 地址 字段中输入其 IP 地址。 然后,通过点击名称旁边的箭头转移来扩展 Custom attributes 部分的额外设置,然后点击右侧的 Show more 链接。

會出現「網絡部門」的設定,此前是看不見的。 點一下檢查框來顯示下落,然後選擇「WAN(高延遲)」選項,因為顯示器主機是在另一個網絡上。 默認時,Checkmk 假設被監控的伺服器在本地網絡中,並預期他們會以低延遲進行存取。 如果你忽略了這個並留下默認本地值,Checkmk 會很快提醒你,主機已下載,因為它預期主機會比在互聯網上更快地回應代理詢問。

Creating second host configuration screen

点击 ** 保存并转到服务配置**,该列表将显示可在 CentOS 服务器上监控的服务。列表将与第一个主机的列表相似。

激活更改后,您可以在 All hosts 页面上验证主机是否被监控.两个主机,即监控centos,现在将可见。

List of hosts with two hosts being monitored

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

结论

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

Checkmk 允许设置完整的监控系统,将手动配置过程移动到具有各种选项和功能的 Web 界面. 使用这些工具,您可以监控多个主机;设置电子邮件,SMS 或推送通知问题;为更多服务设置额外的检查;监控可访问性和性能;等等。

有关 Checkmk 的更多信息,请参阅 官方文件

Published At
Categories with 技术
comments powered by Disqus