如何在Ubuntu14.04上使用带有Check MK的开放监控分发
介绍
如果您是系统管理员,您应该了解基础架构和服务的当前状态。 没有什么比太晚注意到您的磁盘发生故障,或者您的用户通知服务停机而不是在他们之前注意到更糟糕的了。
这就是监控发挥作用的地方。 跟踪服务器硬件、正常运行时间和服务状态并在出现问题时发出警报的软件可以省去很多麻烦。 在一个非常基本的场景中,监控系统会在任何服务出现故障时提醒您。 在一种更强大的情况下,通知会在出现任何可疑迹象后不久发出,例如内存使用量增加或 TCP 连接数量异常。
有许多监控解决方案具有不同程度的复杂性和不同的功能集,包括免费的和商业的。 在许多情况下,这些工具的安装、配置和管理既困难又耗时。 今天我们将重点介绍一个易于设置的解决方案。
Open Monitoring Distribution (OMD) 是一个独立的包,其中包括 Nagios 以及用于收集、监控和绘制数据的附加组件。 它与 Check_MK Multisite 捆绑在一起,这是一个全面的工具,可以解决 Nagios 的 的许多缺点。 它提供了一个便于管理和配置的 Web 界面、一个用户友好的仪表板、一个强大的通知系统,以及用于许多 Linux 发行版的易于安装的监控代理。 如果不是 Check_MK Multisite,我们将不得不为不同的任务使用不同的视图,并且如果不使用配置文件就不可能配置所有设置。
Open Monitoring Distribution 和 Check_MK 让每个人都可以轻松轻松地建立自己的监控系统。 在本文中,我们将展示如何安装和配置必要的工具来监控两个 Droplet。 以下是您的先决条件:
- 一滴带 Ubuntu 14.04
- 一滴带CentOS 7
- 对您的 Droplets 的 root 访问权限
在整篇文章中,我们将假设您对命令行有基本的了解,但学习本教程没有进一步的先决条件。
在 Ubuntu Droplet 上设置 OMD 实例
要开始安装 OMD,我们需要具有 root 权限的工作 Ubuntu 14.04 Droplet。 以下所有说明均使用干净的 Ubuntu 14.04 Droplet 编写,无需其他软件。 您还可以将监控添加到 Droplet,例如,已经运行的 Web 服务器。
在安装新软件之前将系统包更新到最新版本是一种很好的做法。 为此,请运行:
apt-get update apt-get upgrade
OMD 项目在项目网站上为 Ubuntu 提供了现成的软件包。
要浏览软件包,我们可以到 软件包列表站点 。 对于 Ubuntu 14.04 x64,撰写本文时的最新版本,正确的包是 omd-1.20.trusty.amd64.deb
。
要下载软件包,请执行:
wget http://files.omdistro.org/releases/debian_ubuntu/omd-1.20.trusty.amd64.deb
由于文件很大,下载可能需要一些时间。 下载完成后,您应该会看到类似于以下内容的消息:
100%[=================================================================>] 78,969,558 24.6MB/s in 3.1s 2014-08-30 06:23:21 (24.6 MB/s) - "omd-1.20.trusty.amd64.deb" saved [78969558/78969558]
要安装新下载的软件包,请键入:
dpkg -i omd-1.20.trusty.amd64.deb
这将在第一次尝试时失败,因为 OMD 包具有多个依赖项。 没关系。 尝试安装软件包后,我们将看到一条错误消息:
root@omdmaster:~# dpkg -i omd-1.20.trusty.amd64.deb Selecting previously unselected package omd-1.20. (Reading database ... 86590 files and directories currently installed.) Preparing to unpack omd-1.20.trusty.amd64.deb ... Unpacking omd-1.20 (0.trusty) ... dpkg: dependency problems prevent configuration of omd-1.20: omd-1.20 depends on libsnmp-python; however: Package libsnmp-python is not installed. omd-1.20 depends on dialog; however: Package dialog is not installed. omd-1.20 depends on fping; however: Package fping is not installed. omd-1.20 depends on graphviz; however: Package graphviz is not installed. omd-1.20 depends on libapache2-mod-fcgid; however: Package libapache2-mod-fcgid is not installed. omd-1.20 depends on libapache2-mod-proxy-html; however: Package libapache2-mod-proxy-html is not installed. omd-1.20 depends on apache2-mpm-prefork; however: Package apache2-mpm-prefork is not installed. omd-1.20 depends on apache2-utils; however: Package apache2-utils is not installed. omd-1.20 depends on libboost-program-options1.54.0; however: Package libboost-program-options1.54.0 is not installed. omd-1.20 depends on libboost-system1.54.0; however: Package libboost-system1.54.0 is not installed. omd-1.20 depends on libdbi1; howeve dpkg: error processing package omd-1.20 (--install): dependency problems - leaving unconfigured Processing triggers for ureadahead (0.100.0-16) ... Processing triggers for man-db (2.6.7.1-1) ... Errors were encountered while processing: omd-1.20
安装失败会自动通知包管理器缺少依赖项,这使我们能够轻松解决问题,而无需求助于手动安装。
要解决缺少的依赖关系,我们必须执行:
apt-get -f install
我们会看到 apt-get
想要安装许多新的包,包括 apache2
和 mysql
。 这是意料之中的,因为 OMD 使用 Web 可访问的用户界面并将其部分数据存储在 MySQL 数据库中。
运行此命令:
apt-get -f install
现在安装应该成功完成:
Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done The following extra packages will be installed: apache2 apache2-bin apache2-data (...) 0 upgraded, 147 newly installed, 0 to remove and 3 not upgraded. 1 not fully installed or removed. Need to get 53.9 MB of archives. After this operation, 275 MB of additional disk space will be used. Do you want to continue? [Y/n]
同意安装所有依赖后(按y),会提示我们为MySQL数据库设置root密码。
出于安全原因,最好使用未在其他任何地方使用过的强密码。 在 OMD 设置期间不需要此密码,但可以使用此密码访问所有数据库,包括 OMD 数据库。
输入密码后,安装将继续,没有更多提示。 我们之前尝试安装的 OMD 包也会在此过程中自动安装。 安装完成后,应该可以像这样访问omd
命令:
omd
输出:
Usage (called as root): omd help Show general help (...) General Options: -V <version> set specific version, useful in combination with update/create omd COMMAND -h, --help show available options of COMMAND
omd
命令是用于管理服务器上的 OMD 实例的主要命令。 它用于一次启动和停止所有监控服务,我们将使用它来创建第一个 OMD 实例。
现在我们必须创建第一个 OMD 实例。 在大多数情况下,第一个实例是服务器上唯一的实例,这就是我们将在此处执行的方式。
在我们创建 OMD 实例之前,我们必须选择用于识别实例的名称。 它在配置过程中进一步使用,但也定义了可以访问监控站点的 Web 地址。 为简单起见,我们将在整个文本中使用 monitoring
。 要创建实例,请键入:
omd create monitoring
omd
工具会自动为我们设置好一切。 命令输出应类似于以下内容:
Adding /omd/sites/monitoring/tmp to /etc/fstab. Restarting Apache...AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message OK Creating temporary filesystem /omd/sites/monitoring/tmp...OK Created new site monitoring with version 1.20. The site can be started with omd start monitoring. The default web UI is available at http://omdmaster/monitoring/ The admin user for the web applications is omdadmin with password omd. Please do a su - monitoring for administration of this site.
实例现已创建,但仍需要启动。 要启动实例,请键入:
omd start monitoring
所有必要的工具和服务将立即启动。 最后我们应该看到所有的服务都已经启动成功了,如下:
Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting dedicated Apache for site monitoring...OK Initializing Crontab...OK
现在实例已启动并运行,我们可以通过 Web 浏览器访问它。
要访问 OMD 实例,请在 Web 浏览器中打开 [[1]]。 我们将被提示输入密码。 默认的用户名是omdadmin
,密码是omd
,我们稍后会更改这些默认值。
登录后,我们应该会看到如下所示的网页:
这是默认的 OMD 网页,可以访问所有已安装的工具和应用程序。 然而,我们将使用的唯一一个是 Check_MK Multisite 工具。 这是一个很棒的工具,不仅为我们提供了一种用户友好的方式来配置 OMD 及其工具的几乎所有方面,而且还可以将图形、警报和设置收集到一个仪表板中。 从现在开始,我们将 Check_MK Multisite 简称为 Check_MK。
Check_MK 屏幕默认打开一个仪表板,其中显示列表中的所有服务和服务器状态,并使用类似于地球的实用图表。 安装后它是空的,但我们很快就会让它显示我们的服务和系统的状态。
更改管理密码
默认的 omdadmin/omd
用户名和密码很容易记住,但根本不安全,特别是因为默认情况下每个 OMD 安装都提供了它。 幸运的是很容易改变。
首先,从左侧的 WATO Configuration 菜单中打开 Users 窗格。 该列表将显示当前有权访问 OMD 站点的所有用户,默认情况下仅列出 omdadmin
。
单击 omdadmin
用户旁边的铅笔图标以更改其详细信息,包括密码。
更新密码,添加管理员电子邮件,并进行任何其他所需的更改。
保存更改后,我们将立即被要求使用我们的新凭据再次登录。 在此处使用您的 新密码 。
现在我们需要保存对配置文件的更改。 这由橙色按钮 1 Changes 表示,它告诉我们已经对需要保存和激活的 Check_MK 的配置进行了一些更改。 每次我们更改监控系统的配置时都会发生这种情况,而不仅仅是在编辑用户凭据之后。 要保存和激活未决更改,我们必须单击此按钮并同意激活列出的更改。
激活更改后,新用户的数据将写入配置文件,并将被所有系统组件使用。 Check_MK 自动负责通知各个监控系统组件,在必要时重新加载它们,并管理所有需要的配置文件。
监控第一台主机
与OMD一起安装的组件负责收集、存储和呈现监控信息。 他们不提供信息本身。
为了收集实际数据,我们将使用 Check_MK Agent,这是一个专为 Check_MK 设计的工具,能够一次监控所有重要的系统组件。
安装代理
我们监控的第一个主机将是 OMD Droplet 本身。
要开始监控,我们必须先安装 Check_MK Agent。 Check_MK 项目站点 上提供了适用于所有主要发行版的软件包,包括 Ubuntu。 要下载我们的 Ubuntu 14.04 Droplet 所需的软件包,请输入:
wget http://mathias-kettner.de/download/check-mk-agent_1.2.4p5-2_all.deb
下载后,使用以下命令安装包:
dpkg -i check-mk-agent_1.2.4p5-2_all.deb
这次安装应该不会失败,因为所有依赖项都应该已经得到满足。 我们可以通过运行以下命令来验证代理是否已成功安装:
check_mk_agent
该命令应该输出一个很长的文本,看起来像乱码,但将有关系统的所有重要信息收集在一个地方。 Check_MK 使用此命令的输出来收集监控数据。
限制对监控数据的访问
默认情况下,来自 check_mk_agent
的数据使用 xinetd
提供服务,这是一种在访问某个网络端口时在某个网络端口上输出数据的机制。 这意味着我们可以从 Internet 上的任何其他计算机使用 telnet 到端口 6556(Check_MK 的默认端口)来访问 check_mk_agent
。 这是证明(从您的本地计算机或不同的远程主机运行这些命令,并将下面的 IP 地址替换为您的 Droplet 的 IP 地址):
[root@otherhost ~]$ telnet 12.34.56.78 6556
输出:
Trying 178.62.42.115... Connected to 178.62.42.115. Escape character is '^]'. <<<check_mk>>> Version: 1.2.4p5 AgentOS: linux PluginsDirectory: /usr/lib/check_mk_agent/plugins LocalDirectory: /usr/lib/check_mk_agent/local SpoolDirectory: /etc/check_mk/spool AgentDirectory: /etc/check_mk (...)
将有关服务器的重要信息发布给对 Internet 感兴趣的任何人都不是一个好的安全策略。 我们应该只允许运行 OMD 并在我们的监督下的主机访问数据,因此我们的监控系统可以收集它,但不能收集其他任何人。
要限制对代理数据的访问,我们必须在 /etc/xinetd.d/check_mk
编辑配置文件。 类型:
nano /etc/xinetd.d/check_mk
找到此部分:
# configure the IP address(es) of your Nagios server here: #only_from = 127.0.0.1 10.0.20.1 10.0.20.2
only_from
设置负责限制对某些 IP 地址的访问。 因为我们现在正在监视 OMD 所在的同一 Droplet,所以只允许 localhost 连接是可以的。 取消注释并将配置设置更新为:
# configure the IP address(es) of your Nagios server here: only_from = 127.0.0.1
保存并退出文件。
必须重新启动 xinetd
服务才能进行更改。 为此,我们必须执行:
service xinetd restart
现在代理已启动并运行,并且仅限于接受本地连接。 要对此进行测试,请从远程位置再次尝试 telnet
命令:
telnet 12.34.56.78 6556
现在我们可以继续使用 Check_MK 为该主机配置监控。
在 Check_MK 中配置主机
要添加新主机进行监控,我们必须进入左侧 WATO Administration 菜单中的 Hosts 菜单,然后单击 Create new host。 我们将被要求提供有关主机的一些信息。
Hostname 是用于监控的熟悉名称。 它可能是完全限定的域名,但不是必需的。 在本例中,我们将主机命名为 monitoring,就像 OMD 实例本身的名称一样。 因为 monitoring 无法解析到 IP 地址,所以我们还必须提供我们的 Droplet 的 IP 地址。 由于我们正在监控 localhost,因此 IP 将只是 127.0.0.1。 选中该框以启用 IP 设置。
默认代理类型已设置为 Check_MK 代理,这很好。 网段 设置用于表示远程网络上的主机,其特点是预期延迟较高,但并非故障迹象。 由于它是本地主机,因此默认设置也可以。
要保存主机并配置要监控的服务,请单击保存并转到服务按钮。
Check_MK 将进行自动清点。 这意味着它将收集代理的输出并对其进行解密,以了解它可以监控哪些类型的服务。 所有可用的监控服务都将在列表中,包括 CPU 负载、内存使用和磁盘上的可用空间。 要保存可用的检查,我们必须单击保存手动检查配置按钮。 这会将我们重定向到带有添加了我们的主机的可用主机列表的屏幕。
就像更改用户密码一样,更改必须保存并激活,然后才能完全考虑在内。 我们必须按下 2 Changes 按钮并接受更改。 之后,主机监控将启动并运行。
使用监控数据
现在让我们使用左侧的 Dashboards/Main Overview 菜单项来看看主仪表板。
地球球现在将完全变绿,并且表格将显示一个主机没有问题。 我们可以在 Hosts/All hosts 视图中看到完整的主机列表,现在由单个主机组成(使用左侧的菜单)。
在那里,我们将看到有多少服务处于良好状态(以绿色显示),有多少失败了,还有多少有待检查。 单击主机名后,我们将能够看到所有服务的列表及其完整状态及其 Perf-O-Meters。 Perf-O-Meter 显示单个服务相对于 Check_MK 认为健康状况良好的性能。
所有返回可在图表上表示的数据的服务在其名称旁边都有一个图表图标。 我们可以使用该图标来访问与服务关联的图形。 由于主机监控是新鲜的,图表上几乎没有任何内容 - 但一段时间后,图表将提供有关服务性能如何随时间变化的有价值信息。
当任何服务失败或恢复时,信息将显示在仪表板上。 对于失败的服务,将显示一个红色错误,并且该问题也将在地球图上可见。
恢复后,一切都会以绿色显示为正常工作,但右侧的事件日志将包含有关过去故障的信息。
监控第二台 CentOS 主机
当您有多个主机时,监控变得非常有用。 我们将向我们的 OMD 实例添加第二个 Droplet,运行 CentOS 7.0 x64。
安装代理
就像我们的 Ubuntu Droplet 一样,需要安装 Check_MK Agent 来收集监控数据。 这次我们需要来自 Check_MK 项目站点 的 rpm
包。 要下载我们的 CentOS Droplet 所需的软件包,请输入:
wget http://mathias-kettner.de/download/check_mk-agent-1.2.4p5-1.noarch.rpm
下载后,使用以下命令安装包:
yum install check_mk-agent-1.2.4p5-1.noarch.rpm
在 CentOS xinetd
默认不安装,所以 yum
会要求安装依赖。 同意,将安装该软件包。 就像以前一样,我们可以通过执行 check_mk_agent
来验证代理是否正常工作 - 输出将类似于第一个 Droplet 的输出。
限制访问
这次我们不会监控本地主机,因此 xinetd
必须允许具有 OMD 的 Droplet 收集数据。 为此,请使用以下命令开始编辑配置文件:
nano /etc/xinetd.d/check_mk
并更换
# configure the IP address(es) of your Nagios server here: #only_from = 127.0.0.1 10.0.20.1 10.0.20.2
和
# configure the IP address(es) of your Nagios server here: only_from = your-omd-droplet-ip
保存并退出文件。 使用以下命令重新启动 xinetd
服务:
service xinetd restart
我们现在可以继续配置 Check_MK 来监控我们的 CentOS 7 主机。
在 Check_MK 中配置新主机
要向 Check_MK 添加其他主机,我们像以前一样使用 Hosts 菜单。 这次我们将主机命名为centos
,配置其IP地址,并选择WAN(高延迟),因为主机在另一个网络上。 使用复选框启用 IP 和网络设置。 如果我们跳过它并将其保留为本地,Check_MK 将很快提醒我们主机已关闭,因为它希望它比 Internet 更快地响应代理查询。
点击保存并转到服务 ,这将显示可用于监视的服务中央操作系统水滴。 该列表将与来自第一个主机的列表非常相似。 这次我们还必须保存手动检查配置并使用左上角的橙色按钮激活更改。
激活更改后,我们可以通过转到所有主机页面来验证主机是否受到监控。 现在应该可以看到两个主机 monitoring
和 centos
。
服务失败和恢复的警报将继续显示在两台主机的主仪表板上。
添加更多主机
Check_MK可以添加多台主机进行监控。 除了服务器性能之外没有上限,在我们谈论数百之前,这应该不是问题。 该过程对于任何其他主机都是相同的。 deb
和 rpm
软件包中的 Check_MK 代理不仅适用于 Ubuntu 和 CentOS,还适用于其他 Linux 发行版。
总结和延伸阅读
Open Monitoring Distribution 允许轻松设置基于 Check_MK 的监控系统,它将所有艰苦的工作打包到一个易于使用的 Web 界面中,其中包含配置选项和功能。 使用这些工具,可以监控多个主机、设置问题的电子邮件通知、设置更多服务的额外检查、监控可访问性和性能等等。
Check_MK 的 文档有英文版本,是 Check_MK 用户和管理员的综合资源。