介绍
Prometheus是由SoundCloud开发的开源监控系统。 像其他监控系统,如InfluxDB和Graphite,Prometheus将其所有数据存储在时间序列数据库中。 但是,它提供了一个多维数据模型和强大的查询语言,使系统管理员不仅可以轻松地微调其度量的定义,而且生成更准确的报告。
此外,Prometheus项目还包括PromDash(一种基于浏览器的工具,可用于开发自定义仪表板)和一个实验性AlertManager,能够通过电子邮件,Flowdock,Slack,HipChat等发送警报。
在本教程中,您将了解如何安装,配置和使用Prometheus服务器,节点导出器和PromDash。
先决条件
要遵循本教程,您需要:
- 一个64位CentOS 7 Droplet
- 一个非root用户sudo的 ,最好是叫Prometheus 。
第1步 - 安装Prometheus服务器
首先,创建一个新目录以存储您在本教程中下载的所有文件并移动到它。
mkdir ~/Downloads
cd ~/Downloads
使用curl
下载从GitHubPrometheus服务器和时间序列数据库的最新版本。
curl -LO "https://github.com/prometheus/prometheus/releases/download/0.16.0/prometheus-0.16.0.linux-amd64.tar.gz"
Prometheus监控系统由几个组件组成,每个组件都需要单独安装。 保持一个父目录中的所有组件是一个好主意,所以用创建一个mkdir
。
mkdir ~/Prometheus
输入刚创建的目录。
cd ~/Prometheus
使用tar
提取prometheus-0.16.0.linux-amd64.tar.gz
。
tar -xvzf ~/Downloads/prometheus-0.16.0.linux-amd64.tar.gz
这样就完成了Prometheus服务器的安装。 通过键入以下命令验证安装:
~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus -version
您应该在屏幕上看到以下消息:
prometheus, version 0.16.0 (branch: HEAD, revision: dcb8ba4)
build user: julius@desktop
build date: 20151009-23:51:17
go version: 1.5.1
第2步 - 安装节点导出器
Prometheus是为监控Web服务而开发的。 为了监控CentOS服务器的指标,您应该安装一个名为Node Exporter的工具。 节点导出器,顾名思义,以Prometheus理解的格式导出大量指标(例如磁盘I / O统计数据,CPU负载,内存使用情况,网络统计数据等)。
进入Downloads
目录,并使用curl
下载节点出口商的最新版本这是可以在GitHub上。
cd ~/Downloads && curl -LO "https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz"
创建一个名为新目录node_exporter
里面Prometheus
目录,快进去吧:
mkdir ~/Prometheus/node_exporter
cd ~/Prometheus/node_exporter
您现在可以使用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,现在让我们将它转换为一个服务。
使用vi
或其他任何文本编辑器创建称为一个单元配置文件node_exporter.service
。
sudo vi /etc/systemd/system/node_exporter.service
该文件应包含的路径node_exporter
可执行文件,也可以指定哪些用户应该运行可执行文件。 因此,添加以下代码:
[Unit]
Description=Node Exporter
[Service]
User=prometheus
ExecStart=/home/prometheus/Prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
保存文件并退出文本编辑器。
刷新systemd
以便读取您刚才创建的配置文件。
sudo systemctl daemon-reload
此时,节点出口可以作为这可以使用被管理的服务systemctl
命令。 启用它,以便它在启动时自动启动。
sudo systemctl enable node_exporter.service
您现在可以重新启动服务器,或使用以下命令手动启动服务:
sudo systemctl start node_exporter.service
一旦开始,使用浏览器来查看节点出口商的Web界面,它可在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/prometheus-0.16.0.linux-amd64
在开始之前Prometheus,您必须首先创建一个配置文件叫prometheus.yml
。
vi ~/Prometheus/prometheus-0.16.0.linux-amd64/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/prometheus-0.16.0.linux-amd64/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具有控制台模板,可让您查看几个常用指标的图表。 这些控制台模板仅在您设定的值接近job_name
为node
的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和一些构建工具。 使用yum
这样做。
sudo yum install git ruby ruby-devel sqlite-devel zlib-devel gcc gcc-c++ automake patch
您现在可以使用git
命令来下载源文件。
git clone https://github.com/prometheus/promdash.git
进入promdash
目录。
cd ~/Prometheus/promdash
PromDash取决于几个RubyGem。 为了自动化这些Gem的安装,你应该安装一个名为Gembundler
。
gem install bundler
现在,您可以使用bundle
命令来安装所有PromDash需要Ruby的Gem。 正如我们将设置PromDash在本教程中使用sqlite3的工作,请确保您排除MySQL和PostgreSQL使用的Gem--without
参数:
bundle install --without mysql postgresql
您可能需要等待几分钟才能完成此命令。 完成后,您应该会看到以下消息:
. . .
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知道您的Prometheus服务器的URL。 您可以通过点击顶部的服务器选项卡上这样做。 单击新服务器 ,然后在形式,给予任何名义到你的Prometheus服务器。 设置的URL字段来http:// your_server_ip :9090
和服务器类型字段Prometheus 。
最后,点击创建服务器来完成配置。 您的网页会说服务器已成功创建。你可以在主菜单中单击后退到仪表板 。
第8步 - 创建仪表板
由于Promdash仪表盘应该属于一个Promdash目录,首先通过点击新建目录创建一个新的目录。 在显示出来的形式,提供一个名称的目录,如我的仪表盘 ,然后单击创建目录 。
提交表单后,您将被带回首页。 点击新建按钮, 仪表板现在创建一个新的仪表板。 在所示的形式,提供一个名称您的仪表板,喜欢简单仪表板并选择您刚刚从下拉菜单中创建的目录。
提交表单后,您将可以看到新的信息中心。
您的信息中心已有一个图形,但需要进行配置。 悬停在图表的标题(它说标题 ),就会发现,让您配置图形各种图标。 要改变它的标题,您可以点击图和轴设置图标(第四从左边),然后键入在图表标题领域的新头衔。
点击数据源的图标,这是第二次到左侧,以一个或多个表达式添加到图表。 单击添加表达 ,并在上面写着输入表达式 ,输入运行节点特效领域。
现在点击图中的头球刷新图标(最左边的一个)来更新图表。 您的信息中心现在包含一个完全配置的图表。 您可以通过点击底部的添加图形按钮添加更多的图表。
完成所有变更后,请务必点击保存更改按钮上进行永久更改的权利。 下次访问PromDash的首页时,您将可以看到信息中心的链接:
结论
您现在已在CentOS 7服务器上运行一个功能齐全的Prometheus生态系统,您可以使用PromDash创建适合您需求的监控仪表板。
即使您安装一个CentOS的机器上的所有组件,您可以轻松地对他们每个人只安装节点出口商,并添加新节点出口商到的网址,监督更多的机器targets
阵列prometheus.yml
。
您可以通过参考其更多地了解Prometheus文档 。