介绍
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 正在从 Node Exporter 扫描数据,请点击页面顶部的 ** 图表** 选项卡。 在打开的页面上,在文本字段中键入一个指标的名称(如 ** node_procs_running**,例如)。
Prometheus 有控制台模板,允许您查看一些常用的指标的图表. 这些控制台模板只能通过在 Prometheus 配置中将 job_name
值设置为 `node' 来访问。
请访问 http://your_server_ip:9090/consoles/node.html,访问 Node Console,然后点击您的服务器, localhost:9100
,以查看其指标:
步骤 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 知道您的 Prometheus 服务器的 URL。您可以这样做,点击顶部的 服务器卡。 点击 新服务器,然后在表单中给您的 Prometheus 服务器任何名称。 将 Url字段设置为 http://your_server_ip:9090
,并将 服务器类型字段设置为 Prometheus。
最后,点击创建服务器
完成配置,您的页面将表示服务器已成功创建
**,您可以在顶部菜单中再次点击仪表板
。
步骤 8 - 创建一个仪表板
因为一个Promdash仪表板应该属于一个Promdash目录,首先通过点击 新目录来创建一个新目录.在出现的表格中,给您的目录一个名字,例如 我的仪表板,然后点击 创建目录。
一旦您提交表单,您将被带回主页. 点击 新仪表板按钮现在创建一个新的仪表板. 在显示的表单中,给您的仪表板一个名称,如 简单仪表板,并从滚动菜单中选择您刚刚创建的目录。
提交表单后,您将能够看到新的仪表板。
你的仪表板已经有一个图表,但它需要配置。横跨图表的标题(说 Title)会显示各种图标,允许你配置图表. 要更改它的标题,你可以点击 Graph and Axis Settings图标(从左边的第四个),然后在 Graph Title字段中键入一个新的标题。
点击数据源
图标,这是左边的第二个,以添加一个或多个表达式到图表. 点击添加表达式
,然后在说输入表达式
的字段中,输入node_procs_running**
。
现在点击图表的标题中的 **Refresh ** 图标(左边的图标),以更新图表. 您的仪表板现在包含一个完全配置的图表. 您可以通过点击底部的 ** Add Graph ** 按钮添加更多图表。
完成所有更改后,请确保您点击右侧的保存更改
按钮,以使您的更改永久。下次访问 PromDash 主页时,您将能够看到您的仪表板链接:
结论
您现在可以在 Ubuntu 14.04 服务器上运行一个功能齐全的 Prometheus 生态系统,您可以使用 PromDash 创建符合您的需求的监控仪表板。
即使你在一个Ubuntu机器上安装了所有组件,你也可以轻松地监控多个机器,只在每个机器上安装Node Exporter,并将新Node Exporters的URL添加到prometheus.yml的目标
系列中。
您可以通过参考其 文档来了解更多关于普罗米修斯的信息。