前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Prometheus监控CentOS 7服务器

如何使用Prometheus监控CentOS 7服务器

原创
作者头像
独木桥先生
修改2018-10-23 09:53:41
6.4K0
修改2018-10-23 09:53:41
举报

介绍

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

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

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

准备

要学习本教程,您需要:

  • 一个64位CentOS 7 腾讯云CVM
  • 以恶搞具有sudo权限的非root用户,最好是命名为prometheus

没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

第1步 - 安装Prometheus Server

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

mkdir ~/Downloads
cd ~/Downloads

curl从GitHub下载最新版本的Prometheus服务器和时间序列数据库。

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上提供的Node Exporter的最新版本。

cd ~/Downloads && curl -LO "https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz"

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

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步 - 将节点导出器作为服务运行

为了便于启动和停止节点导出器,现在让我们将其转换为服务。

使用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

启动后,使用浏览器查看Node Exporter的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的作业。它包含targets数组中的Node Exporter的Web界面的URL 。为使prometheus刮擦指标每十五秒钟将设置scrape_interval为15秒。

您可以根据需要为自己的工作命名,但将其命名为“node”可以使用Node Exporter的默认控制台模板。

保存文件并退出。

启动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

使用浏览器访问http://your_server_ip:9090上Prometheus的主页。您将看到以下主页。

要确保Prometheus从Node Exporter中抓取数据,请单击页面顶部的Graph选项卡。在打开的页面上,在表示Expression的文本字段中键入度量标准的名称(例如, nodeprocsrunning)。然后,按蓝色的执行按钮。单击下方的图表控制台旁边),您应该会看到该指标的图表:

Prometheus具有控制台模板,可用于查看一些常用指标的图形。只有在Prometheus配置中设置job_name 值为node时,才能访问这些控制台模板。

访问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依赖于几个Ruby gem。为了自动安装这些gem,你应该安装一个名为bundler的gem。

gem install bundler

您现在可以使用bundle命令安装PromDash所需的所有Ruby gem。由于我们将在本教程中配置PromDash以使用SQLite3,因此请确保使用--without参数排除MySQL和PostgreSQL的gem :

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在databases目录中创建名为mydb.sqlite3的SQLite3数据库:

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

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

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

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

. ~/.bashrc

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

rake db:migrate

因为PromDash使用Rails资产管道,所以应该预编译PromDash项目的所有资产(CSS文件,图像和Javascript文件)。输入以下内容即可:

rake assets:precompile

第7步 - 启动和配置PromDash

PromDash运行在瘦,一个轻量级的Web服务器上。通过键入以下命令将服务器作为守护程序启动:

bundle exec thin start -d

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

在开始创建自定义仪表板之前,您应该让PromDash知道您的Prometheus服务器的URL。您可以通过单击顶部的“ 服务器”选项卡来执行此操作。单击“ 新建服务器”,然后在表单中,为Prometheus服务器指定任何名称。将Url字段设置为http://your_server_ip:9090,将Server type字段设置为Prometheus

最后,单击“ 创建服务器”以完成配置。您的页面将说服务器已成功创建。您可以在顶部菜单中单击返回仪表板

第8步 - 创建仪表板

因为Promdash仪表板应该属于Promdash目录,所以首先通过单击New Directory创建一个新目录。在显示的表单中,为您的目录命名,例如My Dashboards,然后单击Create Directory

提交表单后,您将被带回主页。立即单击“ 新建仪表板”按钮以创建新仪表板。在显示的表单中,为仪表板命名,例如Simple Dashboard,然后从下拉菜单中选择刚刚创建的目录。

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

您的信息中心已有一个图表,但需要进行配置。将鼠标悬停在图表的标题(即标题)上会显示各种图标,可让您配置图表。要更改其标题,可以单击“ 图形和轴设置”图标(左起第四个),然后在“ 图形标题”字段中键入新标题。

单击数据源图标(左侧第二个),将一个或多个表达式添加到图形中。单击“ 添加表达式”,然后在“ 输入表达式 ”字段中输入node procs running

现在单击图表标题中的Refresh图标(最左边的一个)来更新图形。您的仪表板现在包含一个完全配置的图表。您可以通过单击底部的“ 添加图表”按钮添加更多图表。

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

结论

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

即使您在单个CentOS计算机上安装了所有组件,您也可以通过在每个计算机上仅安装节点导出程序,并将新节点导出程序的URL添加到prometheus.yml数组中的targets来轻松监视更多计算机。

您可以参考其文档了解有关Prometheus的更多信息。

想要了解更多关于使用Prometheus监控CentOS 7服务器的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《How to Use Prometheus to Monitor Your CentOS 7 Server》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 第1步 - 安装Prometheus Server
  • 第2步 - 安装节点导出器
  • 第3步 - 将节点导出器作为服务运行
  • 第4步 - 启动Prometheus服务器
  • 第5步 - 安装PromDash
  • 第6步 - 设置Rails环境
  • 第7步 - 启动和配置PromDash
  • 第8步 - 创建仪表板
  • 结论
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档