如何使用Prometheus监视你的Ubuntu 14.04服务器

Prometheus是一个开源的监控系统存储在时间序列数据库的所有数据,并提供了一个多维数据模型和一个强大的查询语言。Prometheus项目还包括PromDash(一个基于浏览器的工具,可以用来开发定制的仪表板),并能够通过电子邮件发送警报的实验AlertManager。 在本教程中,您将学习如何安装,配置和使用Prometheus服务器,节点出口商和PromDash。

介绍

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

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

在本教程中,您将了解如何安装,配置和使用Prometheus服务器,节点导出器和PromDash。

先决条件

要遵循本教程,您需要:

  • 一个64位的Ubuntu 14.04Droplet与Sudo非root用户。

注意:如果你必须使用一个32位服务器,请确保您在本教程中提到的所有文件名和链接与-386取代-amd64。

第1步 - 安装Prometheus服务器

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

mkdir ~/Downloads
cd ~/Downloads

使用wget下载从GitHubPrometheus服务器和时间序列数据库的最新版本。

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

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

mkdir -p ~/Prometheus/server

输入刚刚创建的目录。

cd ~/Prometheus/server

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

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

这样就完成了Prometheus服务器的安装。 通过键入以下内容验证安装:

./prometheus -version

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

Prometheus输出
prometheus, version 0.15.1 (branch: master, revision: 64349aa)
  build user:       julius@julius-thinkpad
  build date:       20150727-17:56:00
  go version:       1.4.2

第2步 - 安装节点导出器

Prometheus是为监控Web服务而开发的。 为了监控你的Ubuntu服务器的指标,你应该安装一个名为Node Exporter的工具。 节点导出器,顾名思义,以Prometheus理解的格式导出大量指标(例如磁盘I / O统计信息,CPU负载,内存使用情况,网络统计信息等)。

创建一个名为新目录node_exporter里面Prometheus目录,快进去吧:

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

使用wget下载节点出口商的最新版本这是可以在GitHub上,并将其放置在Downloads目录。

wget 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

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

第3步 - 运行节点导出程序作为服务

为了方便启动和停止Node Exporter,现在让我们将它转​​换为一个服务。

创建一个软链接到node_exporter二进制/usr/bin

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

使用nano或你喜欢的文本编辑器创建一个名为Upstart配置文件node_exporter.conf

sudo nano /etc/init/node_exporter.conf

此文件应包含的链接node_exporter可执行文件,并指定当可执行应启动。 因此,添加以下代码:

/etc/init/node_exporter.conf
# Run node_exporter

start on startup

script
   /usr/bin/node_exporter
end script

在这一点上,节点出口商可作为可使用的启动服务service的命令:

sudo service node_exporter start

节点出口商启动后,使用浏览器来查看其可用的Web界面的http:// your_server_ip :9100/metrics 您应该看到一个包含大量文字的网页:

http:// your_server_ip:9100 / metrics摘要
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.00023853100000000002
go_gc_duration_seconds{quantile="0.25"} 0.00023998700000000002
go_gc_duration_seconds{quantile="0.5"} 0.00028122
. . .

第4步 - 启动Prometheus服务器

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

cd ~/Prometheus/server

在开始之前Prometheus,您必须首先创建一个配置文件叫prometheus.yml

nano ~/Prometheus/server/prometheus.yml

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

〜/ Prometheus / server / prometheus.yml
scrape_configs:
  - job_name: "node"
    scrape_interval: "15s"
    target_groups:
    - targets: ['localhost:9100']

这将创建一个scrape_configs部分,定义了一个名为工作node 它包括你的节点出口商的Web界面的阵列中的URL targets scrape_interval使得Prometheus刮擦度量一次每十五秒钟设置为15秒。

你可以命名任何你想要的任务,但调用它“节点”允许您使用默认控制台模板的节点出口。

保存文件并退出。

启动Prometheus服务器作为后台进程。

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

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

tail ~/Prometheus/server/prometheus.log

服务器就绪后,您将在文件中看到以下消息:

prometheus.log摘录
INFO[0000] Starting target manager...         file=targetmanager.go line=75
INFO[0000] Listening on :9090                 file=web.go line=118

使用浏览器访问Prometheus的网页提供http:// your_server_ip :9090 您将看到以下首页。

Prometheus主页

为了确保Prometheus从节点出口商刮数据,单击图表选项卡页面的顶部。 在打开,键入度量标准的名称(如node_procs_running,例如)在说表达式文本字段的页面。 然后,按蓝色的执行按钮。 点击 (旁边控制台 )的正下方,你应该看到该指标的图形:

Prometheus图

Prometheus具有控制台模板,可让您查看几个常用指标的图表。 这些控制台模板仅在您设定的值接近job_namenode的Prometheus的配置。

访问http:// your_server_ip :9090/consoles/node.html访问节点控制台,并单击您的服务器上, localhost:9100 ,以查看其指标:

节点控制台

第5步 - 安装PromDash

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

进入Prometheus目录:

cd ~/Prometheus

PromDash是一个Ruby on Rails应用程序,其源文件在GitHub上可用。 为了下载和运行它,你需要安装Git,Ruby,SQLite3,Bundler,这是一个gem依赖管理器,以及它们的依赖关系。 使用apt-get这样做。

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

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

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

进入promdash目录。

cd ~/Prometheus/promdash

使用bundle来安装PromDash需要Ruby的Gem。 正如我们将设置PromDash在本教程中使用sqlite3的工作,请确保您排除MySQL和PostgreSQL使用的Gem--without参数:

bundle install --without mysql postgresql

因为PromDash依赖于几个gem,所以您必须等待几分钟才能完成此命令。 完成后,您应该会看到以下消息。

捆绑输出
. . .
Your bundle is complete!
Gems in the groups mysql and postgresql were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

第6步 - 设置Rails环境

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

mkdir ~/Prometheus/databases

PromDash使用称为环境变量DATABASE_URL以确定与之相关的数据库的名称。 键入使PromDash创建一个名为sqlite3的数据库以下mydb.sqlite3内部databases目录:

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

在本教程中,你将在生产模式下运行PromDash,所以设置RAILS_ENV环境变量来production

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

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

. ~/.bashrc

其次,在使用的sqlite3的数据库中创建PromDash的表rake工具。

rake db:migrate

因为PromDash使用Rails Asset Pipeline,所以PromDash项目的所有资源(CSS文件,图像和Javascript文件)都应该预编译。 键入以下内容:

rake assets:precompile

第7步 - 启动和配置PromDash

PromDash在Thin(轻量级Web服务器)上运行。 通过键入以下命令作为守护程序启动服务器:

bundle exec thin start -d

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

PromDash的主页

在开始创建自定义仪表板之前,您应该让PromDash知道您的Prometheus服务器的URL。 您可以通过点击顶部的服务器选项卡上这样做。 单击新服务器 ,然后在形式,给予任何名义到你的Prometheus服务器。 设置的URL字段来http:// your_server_ip :9090服务器类型字段Prometheus

PromDash的创建服务器屏幕

最后,点击创建服务器来完成配置。 您的网页会说服务器已成功创建。你可以在主菜单中单击后退到仪表板

第8步 - 创建仪表板

由于Promdash仪表盘应该属于一个Promdash目录,首先通过点击新建目录创建一个新的目录。 在显示出来的形式,提供一个名称的目录,如我的仪表盘 ,然后单击创建目录

提交表单后,您将被带回首页。 点击新建按钮, 仪表板现在创建一个新的仪表板。 在所示的形式,提供一个名称您的仪表板,喜欢简单仪表板并选择您刚刚从下拉菜单中创建的目录。

提交表单后,您将可以看到新的信息中心。

空控制板

您的信息中心已有一个图形,但需要进行配置。 悬停在图表的标题(它说标题 ),就会发现,让您配置图形各种图标。 要改变它的标题,您可以点击图和轴设置图标(第四从左边),然后键入在图表标题领域的新头衔。

点击数据源的图标,这是第二次到左侧,以一个或多个表达式添加到图表。 点击添加表达式 ,并在上面写着输入表达式的字段中输入node_procs_running。

加入表达式

现在点击图中的头球刷新图标(最左边的一个)来更新图表。 您的信息中心现在包含一个完全配置的图表。 您可以通过点击底部的添加图形按钮添加更多的图表。

完成所有变更后,请务必点击保存更改按钮上进行永久更改的权利。 下次访问PromDash的首页时,您将可以看到信息中心的链接:

PromDash仪表板

结论

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

即使您安装在一台Ubuntu的机器上的所有组件,您可以轻松地对他们每个人只安装节点出口商,并添加新节点出口商到的网址,监督更多的机器targets阵列prometheus.yml

您可以通过参考其更多地了解Prometheus文档