如何使用Prometheus监视你的CentOS 7服务器

介绍

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

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

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

先决条件

要遵循本教程,您需要:

第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输出
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可执行文件,也可以指定哪些用户应该运行可执行文件。 因此,添加以下代码:

/etc/init/node_exporter.conf
[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 您应该看到一个包含大量文字的网页:

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

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

〜/ 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

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

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从节点出口商刮数据,单击图表选项卡页面的顶部。 在打开的页面中,在文本字段的度量(如节点特效运行 ,例如)的名称,类型,上面写着表达 然后,按蓝色的执行按钮。 点击 (旁边控制台 )的正下方,你应该看到该指标的图形:

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和一些构建工具。 使用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的主页

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

PromDash的创建服务器屏幕

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

第8步 - 创建仪表板

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

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

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

空控制板

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

点击数据源的图标,这是第二次到左侧,以一个或多个表达式添加到图表。 单击添加表达 ,并在上面写着输入表达式 ,输入运行节点特效领域。

添加表达式

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

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

PromDash仪表板

结论

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

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

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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏