如何使用 Prometheus 监控 Ubuntu 14.04 服务器

介绍

Prometheus 是一个由 SoundCloud 开发的开源监控系统,与 InfluxDB 和 Graphite 等其他监控系统一样,Prometheus 将所有数据存储在一个时间序列数据库中,但它提供了多维数据模型和强大的查询语言,允许系统管理员不仅轻松调整其指标的定义,而且还可以生成更准确的报告。

此外,Prometheus项目还包括PromDash(一个基于浏览器的工具,可用于开发自定义仪表板)和一个可通过电子邮件,Flowdock,Slack,HipChat等方式发送警报的实验 AlertManager。

在本教程中,您将学习如何安装、配置和使用 Prometheus Server、Node Exporter 和 PromDash。

前提条件

要遵循本教程,您将需要:

  • 一个 64 位 Ubuntu 14.04 Droplet 与一个 sudo non-root用户。

<$>[注] 注意:如果您必须使用32位服务器,请确保您在本教程中提到的所有文件名和链接中代替 -amd64-386

步骤1:安装 Prometheus 服务器

首先,创建一个新的目录来存储您在本教程中下载的所有文件,并移动到它。

1mkdir ~/Downloads
2cd ~/Downloads

使用wget从GitHub下载Prometheus服务器和时间序列数据库的最新构建。

1wget "https://github.com/prometheus/prometheus/releases/download/0.15.1/prometheus-0.15.1.linux-amd64.tar.gz"

Prometheus 监控系统由几个组件组成,每个组件都需要单独安装。将所有组件保存在一个母目录中是一个好主意,所以创建一个和一个额外的子目录来存储 Prometheus 服务器的所有二进制文件。

1mkdir -p ~/Prometheus/server

输入您刚刚创建的目录。

1cd ~/Prometheus/server

使用tar来提取prometheus-0.15.1.linux-amd64.tar.gz

1tar -xvzf ~/Downloads/prometheus-0.15.1.linux-amd64.tar.gz

这完成了 Prometheus 服务器的安装。通过键入来验证安装:

1./prometheus -version

您应该在屏幕上看到以下信息:

1[label Prometheus output]
2prometheus, version 0.15.1 (branch: master, revision: 64349aa)
3  build user:       julius@julius-thinkpad
4  build date:       20150727-17:56:00
5  go version:       1.4.2

步骤 2 – 安装 Node Exporter

Prometheus 是为了监控 Web 服务而开发的,为了监控 Ubuntu 服务器的指标,您应该安装一个名为 Node Exporter 的工具。 Node Exporter 如其名称所示,将大量的指标(如磁盘 I/O 统计、CPU 负载、内存使用、网络统计等)导出到 Prometheus 所理解的格式中。

Prometheus目录中创建一个名为node_exporter的新目录,然后进入其中:

1mkdir -p ~/Prometheus/node_exporter
2cd ~/Prometheus/node_exporter

使用wget下载在GitHub上可用的Node Exporter的最新构建,并将其放入下载目录。

1wget https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz -O ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz

您现在可以使用tar命令提取node_exporter-0.11.0.linux-amd64.tar.gz

1tar -xvzf ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz

步骤 3 – 运行 Node 出口器作为服务

为了使 Node Exporter 轻松启动和停止,现在让我们将其转换为服务。

创建一个软链接到在/usr/bin中的node_exporter二进制。

1sudo ln -s ~/Prometheus/node_exporter/node_exporter /usr/bin

使用nano或您最喜欢的文本编辑器创建一个名为node_exporter.conf的升级配置文件。

1sudo nano /etc/init/node_exporter.conf

此檔案應該包含「node_exporter」執行程式的連結,並指定執行程式何時應該啟動。

1[label /etc/init/node_exporter.conf]
2# Run node_exporter
3
4start on startup
5
6script
7   /usr/bin/node_exporter
8end script

在此时,Node Exporter 可作为一个可以使用服务命令启动的服务:

1sudo service node_exporter start

在 Node Exporter 启动后,请使用浏览器查看其在 http://your_server_ip:9100/metrics 可用的 Web 界面。

1[label http://your_server_ip:9100/metrics excerpt]
2# HELP go_gc_duration_seconds A summary of the GC invocation durations.
3# TYPE go_gc_duration_seconds summary
4go_gc_duration_seconds{quantile="0"} 0.00023853100000000002
5go_gc_duration_seconds{quantile="0.25"} 0.00023998700000000002
6go_gc_duration_seconds{quantile="0.5"} 0.00028122
7. . .

步骤 4 – 启动Prometheus服务器

输入您安装 Prometheus 服务器的目录:

1cd ~/Prometheus/server

在启动 Prometheus 之前,您必须先为其创建一个名为prometheus.yml的配置文件。

1nano ~/Prometheus/server/prometheus.yml

将以下代码复制到文件中。

1[label ~/Prometheus/server/prometheus.yml]
2scrape_configs:
3  - job_name: "node"
4    scrape_interval: "15s"
5    target_groups:
6    - targets: ['localhost:9100']

这将创建一个scrape_configs部分,并定义一个名为node的任务. 它将您的 Node Exporter Web 界面的 URL 包含在其目标系列中。

您可以将工作命名为任何您想要的,但将其命名为节点,允许您使用 Node Exporter 的默认控制台模板。

保存文件和退出。

启动 Prometheus 服务器作为背景流程。

1nohup ./prometheus > prometheus.log 2>&1 &

请注意,您已将 Prometheus 服务器的输出重定向到名为 prometheus.log 的文件,您可以使用 尾巴 命令查看文件的最后几行:

1tail ~/Prometheus/server/prometheus.log

一旦服务器准备好了,您将在文件中看到以下消息:

1[label prometheus.log excerpt]
2INFO[0000] Starting target manager... file=targetmanager.go line=75
3INFO[0000] Listening on :9090 file=web.go line=118

请使用浏览器访问 Prometheus 主页,可在 http://your_server_ip:9090 访问。

Prometheus Homepage

要确保 Prometheus 正在从 Node Exporter 扫描数据,请点击页面顶部的 ** 图表** 选项卡。 在打开的页面上,在文本字段中键入一个指标的名称(如 ** node_procs_running**,例如)。

Prometheus Graph

Prometheus 有控制台模板,允许您查看一些常用的指标的图表. 这些控制台模板只能通过在 Prometheus 配置中将 job_name 值设置为 `node' 来访问。

请访问 http://your_server_ip:9090/consoles/node.html,访问 Node Console,然后点击您的服务器, localhost:9100,以查看其指标:

Node Console

步骤 5 – 安装 PromDash

虽然Prometheus服务器允许您查看图表和用表达式进行实验,但它通常只用于调试或执行一次性查询。在Prometheus的时间序列数据库中可视化数据的首选方法是使用PromDash,该工具允许您创建不但高度可配置,而且看起来更好的自定义仪表板。

进入Prometheus目录:

1cd ~/Prometheus

PromDash 是一个 Ruby on Rails 应用程序,其源文件可在 GitHub 上下载和运行,您需要安装 Git,Ruby,SQLite3,Bundler,这是一个宝石依赖管理器,以及它们的依赖。

1sudo apt-get update && sudo apt-get install git ruby bundler libsqlite3-dev sqlite3 zlib1g-dev

您现在可以使用git命令来下载源文件。

1git clone https://github.com/prometheus/promdash.git

进入promdash目录。

1cd ~/Prometheus/promdash

使用 bundle来安装PromDash所需的Ruby宝石,因为我们将在本教程中配置PromDash以与SQLite3合作,请确保您使用--没有参数排除MySQL和PostgreSQL的宝石:

1bundle install --without mysql postgresql

由于PromDash依赖于几个宝石,您将不得不等待几分钟才能完成此命令。

1[label Bundle output]
2. . .
3Your bundle is complete!
4Gems in the groups mysql and postgresql were not installed.
5Use `bundle show [gemname]` to see where a bundled gem is installed.

步骤6:设置铁路环境

创建一个目录来存储与 PromDash 相关的 SQLite3 数据库。

1mkdir ~/Prometheus/databases

PromDash 使用名为DATABASE_URL的环境变量来确定与其相关的数据库名称. 输入以下内容,以便 PromDash 在数据库目录中创建一个名为mydb.sqlite3的 SQLite3 数据库:

1echo "export DATABASE_URL=sqlite3:$HOME/Prometheus/databases/mydb.sqlite3" >> ~/.bashrc

在本教程中,您将在生产模式下运行PromDash,因此将RAILS_ENV环境变量设置为生产

1echo "export RAILS_ENV=production" >> ~/.bashrc

将我们对 .bashrc 文件所做的更改应用。

1. ~/.bashrc

接下来,使用rake工具在SQLite3数据库中创建PromDash的表。

1rake db:migrate

由于 PromDash 使用 Rails Asset Pipeline,所以 PromDash 项目的所有资产(CSS 文件、图像和 Javascript 文件)都应该预先编译。

1rake assets:precompile

步骤 7 – 启动和配置 PromDash

PromDash 运行在 Thin,一个轻量级的 Web 服务器上. 通过键入以下命令来启动服务器作为一个 DAEMON:

1bundle exec thin start -d

等待几秒钟,服务器启动,然后访问http://your_server_ip:3000/查看PromDash的首页。

PromDash's Homepage

在您开始创建自定义仪表板之前,您应该让 PromDash 知道您的 Prometheus 服务器的 URL。您可以这样做,点击顶部的 服务器卡。 点击 新服务器,然后在表单中给您的 Prometheus 服务器任何名称。 将 Url字段设置为 http://your_server_ip:9090,并将 服务器类型字段设置为 Prometheus

PromDash's Create Server Screen

最后,点击创建服务器完成配置,您的页面将表示服务器已成功创建**,您可以在顶部菜单中再次点击仪表板

步骤 8 - 创建一个仪表板

因为一个Promdash仪表板应该属于一个Promdash目录,首先通过点击 新目录来创建一个新目录.在出现的表格中,给您的目录一个名字,例如 我的仪表板,然后点击 创建目录

一旦您提交表单,您将被带回主页. 点击 新仪表板按钮现在创建一个新的仪表板. 在显示的表单中,给您的仪表板一个名称,如 简单仪表板,并从滚动菜单中选择您刚刚创建的目录。

提交表单后,您将能够看到新的仪表板。

Empty Dashboard

你的仪表板已经有一个图表,但它需要配置。横跨图表的标题(说 Title)会显示各种图标,允许你配置图表. 要更改它的标题,你可以点击 Graph and Axis Settings图标(从左边的第四个),然后在 Graph Title字段中键入一个新的标题。

点击数据源图标,这是左边的第二个,以添加一个或多个表达式到图表. 点击添加表达式,然后在说输入表达式的字段中,输入node_procs_running**

Add Expression

现在点击图表的标题中的 **Refresh ** 图标(左边的图标),以更新图表. 您的仪表板现在包含一个完全配置的图表. 您可以通过点击底部的 ** Add Graph ** 按钮添加更多图表。

完成所有更改后,请确保您点击右侧的保存更改按钮,以使您的更改永久。下次访问 PromDash 主页时,您将能够看到您的仪表板链接:

PromDash Dashboards

结论

您现在可以在 Ubuntu 14.04 服务器上运行一个功能齐全的 Prometheus 生态系统,您可以使用 PromDash 创建符合您的需求的监控仪表板。

即使你在一个Ubuntu机器上安装了所有组件,你也可以轻松地监控多个机器,只在每个机器上安装Node Exporter,并将新Node Exporters的URL添加到prometheus.yml的目标系列中。

您可以通过参考其 文档来了解更多关于普罗米修斯的信息。

Published At
Categories with 技术
Tagged with
comments powered by Disqus