如何在Ubuntu12.04上安装和配置Shinken以监控VPS实例
状态: 已弃用
本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.
请参阅: 本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。
介绍
Shinken 是一个基于 Nagios Core 的开源监控框架,已用 python 重写,以增强灵活性、可扩展性和易用性。 Shinken 与 Nagios 完全兼容,并支持其插件和配置,无需重写或调整即可随时随地使用。
Shinken 对分销没有限制。 它可以通过 DMZ 甚至跨多个数据中心扩展到局域网 LAN。
Shinken 超越了 Nagios 的经典监控功能,允许对资产进行分布式和高可用性监控,对 VMware 拓扑和不同的虚拟机管理程序(Xen、KVM、...)进行智能和自动管理,并且能够监控 Amazon EC2 托管应用程序(如 mysql &Apache)自动。
Shinken 被认为比 Nagios 快 5 倍,并附带大量可轻松安装的监控包,提供更快的方式来启动监控服务器、服务和应用程序。
在本指南中,我们将配置两个 Droplet。 一个将被配置为服务器,另一个被配置为客户端。 他们都将运行 Ubuntu 12.04 LTS。
安装 Shinken 服务器
我们将从使用自动安装脚本的服务器开始。
curl -L http://install.shinken-monitoring.org | /bin/bash
安装脚本将创建用户和组。 安装所有依赖项,然后处理 Shinken 安装。
安装完成后,可以使用 http://X.X.X.X:7767
和凭据 admin/admin
访问 shinken WebUI。 配置文件夹将位于 /usr/local/shinken/etc
。
预配置 Shinken 服务器
在深入了解 Shinken 的配置过程之前,我们需要保护其 WebUI。
让我们编辑模块 Web UI:
nano /usr/local/shinken/etc/shinken-specific.cfg
我们将首先更改 auth_secret
,并用强密码替换 CHANGE_ME
:
define module { modules Apache_passwd, ActiveDir_UI, Cfg_password, PNP_UI, Mongodb, Glances_UI manage_acl 1 play_sound 0 host 0.0.0.0 module_type webui allow_html_output 0 max_output_length 100 module_name WebUI auth_secret CHANGE_ME port 7767 }
保存并关闭文件。
然后我们的管理员用户也应该得到一个强密码。 为此,我们将用 contacts.cfg
文件中的一个秘密强密码替换他的默认密码:
nano /usr/local/shinken/etc/contacts.cfg
define contact{ use generic-contact contact_name admin email shinken@localhost pager 0600000000 ; contact phone number password admin is_admin 1 }
即使安装程序负责安装所有必要的依赖项和模块,我们也需要安装 mongodb 支持来处理和保存 webui 上的用户首选项,否则我们会在 web UI 上收到一条丑陋的警告消息:
错误:您没有像 Mongodb 那样定义用于保存用户偏好的 WebUI 模块。 您将无法使用此页面!
安装 Mongodb 支持:
cd /usr/local/shinken ./install -a mongodb
配置 Shinken 服务器
对于我们的场景,我们将首先声明 Ubuntu 12.04 受监控主机(Shinken slave),在其上安装和配置 SNMP,然后使用自定义社区字符串对其进行监控。
SNMP 模板将处理以下检查:
- 主机每 5 分钟检查一次:通过 ping 检查服务器是否已启动
- 检查磁盘空间
- 检查平均负载
- 检查 CPU 使用率
- 检查物理内存和交换使用情况
- 检查网络接口活动
完成后,我们将使用 FTP 和 SSH 包检查从站上的 FTP 和 SSH 状态,作为如何使用包的示例。
包是用于通用或特定服务、应用服务器、操作系统和具有监控能力的设备的预定义监控模板。 这些包位于以下目录 /usr/local/shinken/etc/packs
按类型分类,使用它们只需在主机定义文件中指定它们的名称即可。
由于 Shinken 完全兼容并支持 Nagios,因此可以通过 Shinken 添加和使用 Nagios 插件。
在 Shinken 上定义 slave
一台监控服务器,让我们在 /usr/local/shinken/etc/hosts directory
上创建一个与我们的 Linux 设备(Ubuntu slave droplet)对应的主机文件:
nano /usr/local/shinken/etc/hosts/shinken_slave.cfg
复制并粘贴以下内容,并将“host_name”和“address”字段更改为适当的值。
define host{ use linux host_name Shinken_slave address X.X.X.X _SNMPCOMMUNITY DOmonitoring }
- “use linux”是“模板”行。 这意味着该主机将使用默认 linux 模板中的属性。
- “host_name”是主机的对象名称。 它对应于我们客户端的主机名,并且必须是唯一的。
- “地址”是从站的 IP 地址或其 FQDN。
- “_SNMPCOMMUNITY”是自定义 SNMP 社区字符串或密码。
正如我们之前提到的,我们将使用两个包来监控 FTP 和 SSH 服务。 这些包将检查公开可用的服务、应用程序和协议的状态,而无需任何特殊的访问要求。 为此,我们将它们添加到主机定义文件中,在“使用”行中,用逗号分隔。 我们可以尽可能多地使用,但我们需要记住,我们只需要监控什么是重要的。
之前的 /usr/local/shinken/etc/hosts/shinken_slave.cfg
将如下所示:
define host{ use linux,ftp,ssh host_name Shinken_slave address X.X.X.X _SNMPCOMMUNITY DOmonitoring }
正如我们之前提到的,我们将为我们的客户端使用自定义的 SNMP 社区字符串(密码)。 对于本指南,我们选择了“DOmonitoring”——在客户端上也是如此。
现在我们声明了我们的主机,让我们重新启动 Shinken 来处理更改:
service shinken restart
配置客户端:
我们将从在我们的客户端上安装 SNMP 开始。
apt-get install snmpd
然后我们配置社区字符串和监听接口。
编辑 /etc/snmp/snmpd.conf
并注释该行:
agentAddress udp:127.0.0.1:161
然后,取消注释该行:
agentAddress udp:161,udp6:[::1]:161
正如我们之前已经提到的,我们将通过自定义更改默认值“public”来更改客户端的 SNMP 社区(密码)。 出于本教程的目的,将选择“DOmonitoring”。
代替 :
rocommunity public
和:
rocommunity DOmonitoring
重新启动 snmpd 守护进程:
service snmpd restart
访问 WebUI
现在,我们的监控服务器和客户端已经配置好了。 我们需要使用我们服务器 http://X.X.X.X:7767
的 IP 地址来访问 Shinken Web UI。
[[File:“%3Ca]] https://assets.digitalocean.com/articles/Shrinken_Ubuntu/1.png ”>
一旦通过身份验证,我们将看到一个空白页面,上面写着“您还没有任何小部件吗?”
稍后我们将使用自定义小部件对其进行配置以获取所需的信息,但首先我们需要检查我们的客户端是否已配置并且服务器是否可以访问。
单击全部选项卡,您将看到所有受监控机器的列表,包括服务器(本地主机)。
在同一个列表中,您应该会发现 Shinken_slave 如下:
[[File:“%3Ca]] https://assets.digitalocean.com/articles/Shrinken_Ubuntu/2.png ”>
让我们返回仪表板并通过添加三个小部件来创建一个。 由于我们只有一个受监控的液滴,我们将添加图形、问题和关系小部件。
单击 add a widget
然后从面板中选择您想要的。 默认情况下,小部件将获取 localhost(监控服务器)状态和信息。 我们可以通过单击并指定“元素名称”来编辑它们以反映我们想要的主机,如下所示:
[[File:“%3Ca]] https://assets.digitalocean.com/articles/Shrinken_Ubuntu/3.png ”>
[[File:“%3Ca]] https://assets.digitalocean.com/articles/Shrinken_Ubuntu/4.png ”>
我们的监控服务器将密切关注我们的 VPS 并跟踪所有更改。 服务器运行的时间越长,图表和统计数据就会变得越有趣。