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

介绍

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

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

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

先决条件

要学习本教程,您需要:

  • 一个具有sudo权限的非root用户的64位Ubuntu 14.04 腾讯云CVM 。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

注意:如果必须使用32位服务器,请确保在本教程中提到的所有文件名和链接中将-amd64替换为-386

第1步 - 安装Prometheus Server

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

mkdir ~/Downloads
cd ~/Downloads

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

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, 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负载,内存使用情况,网络统计数据等)。

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

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

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

/usr/bin中创建一个指向node_exporter二进制文件的软链接。

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

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

sudo nano /etc/init/node_exporter.conf

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

# Run node_exporter
​
start on startup
​
script
   /usr/bin/node_exporter
end script

此时,节点导出程序可用作可以使用以下service命令启动的服务:

sudo service node_exporter start

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

# 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

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

scrape_configs:
  - job_name: "node"
    scrape_interval: "15s"
    target_groups:
    - targets: ['localhost:9100']

这将创建一个scrape_configs部分并定义一个名为node的作业。它包含targets数组中的Node Exporter的Web界面的URL 。在scrape_interval使prometheus刮擦指标每十五秒钟设置为15秒。

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

保存文件并退出。

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

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

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

tail ~/Prometheus/server/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的文本字段中键入度量标准的名称(例如,node_procs_running)。然后,按蓝色的执行按钮。单击下方的图表控制台旁边),您应该会看到该指标的图表:

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,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 gems。由于我们将在本教程中配置PromDash以使用SQLite3,因此请确保使用--without参数排除MySQL和PostgreSQL的gem :

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在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的主页时,您将能够看到指向仪表板的链接:

结论

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

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

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

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


参考文献:《How To Use Prometheus to Monitor Your Ubuntu 14.04 Server》

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

openfire环境搭建

1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp ? 2、把源代码解压出的openfire_...

2125
来自专栏云计算教程系列

如何在Ubuntu 14.04上设置uWSGI和Nginx以服务Python应用程序

在本教程中,我们将设置一个由uWSGI提供服务的简单WSGI应用程序。我们将使用Nginx Web服务器作为应用程序服务器的反向代理,以提供更强大的连接处理。我...

2040
来自专栏coding...

跨平台移动开发 Flutter 初体验安装flutter安装VSCode新建Flutter工程Tips

打开 Terminal 先cd到你需要安装的目录下, 我这里直接在 ~ 个人目录下

1803
来自专栏黑泽君的专栏

通过数据库中的表,使用 MyEclipse2017的反向生成工具-->hibernate反转引擎引擎(MyEclipse2017自带的插件) 来反转生成实体类和对应的映射文件

1、在MyEclipse中,Java视图下,新建一个普通的java project,新建该项目的目的是:用来接收反转引擎生成的实体类和对应的映射文件。

1602
来自专栏程序员的知识天地

程序员常用开发工具配置,给自己留一手!

修改D:javaenvapache-tomcat-7.0.26confserver.xml

1191
来自专栏云计算教程系列

CentOS 7如何设置uWSGI和Nginx提供Python应用服务

在本指南中,我们将设置一个由uWSGI提供服务的简单WSGI应用程序。我们将使用Nginx Web服务器作为应用程序服务器的反向代理,以提供强大的连接处理。我们...

2034
来自专栏ml

JavaScript基础知识(1)

表单的确认 :       客户端确认         --减少服务器负载         --缩短用户等待时间         --兼容性难       服务...

2833
来自专栏IMWeb前端团队

让chrome插件在手机上跑起来

本文作者:IMWeb moonye 原文出处:IMWeb社区 未经同意,禁止转载 创建一个chrome的插件,并让这个插件能够作为一个app,运行在终...

2125
来自专栏互联网开发者交流社区

SpringBoot配置文件的加载位置

1652
来自专栏wblearn

代码提示插件Spket

Spket是一个可以在Eclipse及MyEclipse中实现JavaScript代码自动提示、自动校验、自动纠错的插件。

1121

扫码关注云+社区

领取腾讯云代金券