Promethus(普罗米修斯)监控系统

 


前言

安装,配置和使用简单的Prometheus实例。您将在本地下载并运行Prometheus,对其进行配置以抓取自身和示例应用程序,然后使用查询,规则和图形使用收集的时间序列数据。


一、什么是Prometheus(普罗米修斯)?

Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus在2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。

1.1特征

  • prometheus server:主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理
  • client libraries:用于对接 Prometheus Server,检测应用程序代码可以查询和上报数据
  • push gateway:用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等
  • exporters:各种汇报exporter,例如node_exporter,mysql_exporter,HAProxy,StatsD,Graphite
  • alertmanager:告警通知管理

1.2架构

下图说明了Prometheus的体系结构及其某些生态系统组件:

在这里插入图片描述
Prometheus直接或通过中间推送网关从已检测作业中删除指标,以用于短期作业。它在本地存储所有报废的样本,并对这些数据运行规则,以汇总和记录现有数据中的新时间序列,或生成警报。Grafana或其他API使用者可以用来可视化收集的数据。

二、下载Prometheus

个人喜好在根目录下创建一个文件夹把软件下载过去

创建文件夹
# mkdir -p /data/source
# cd /data/source/
官网下载链接
# wget https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、安装

3.1下载最新版本的Prometheus后

解压缩到/usr/local/share/prometheus
#tar -zxvf prometheus-2.23.0.linux-amd64.tar.gz -C /usr/local/share/
进入文件夹
#cd /usr/local/share/
给他起个短一点的名字
#mv prometheus-2.23.0.linux-amd64 prometheus
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Prometheus服务器是一个称为prometheus的二进制文件。我们可以运行二进制文件,并通过传递–help标志来查看有关其选项的帮助。

查看帮助
#./prometheus --help
usage: prometheus [<flags>]

The Prometheus monitoring server

Flags:
  -h, --help                     Show context-sensitive help (also try --help-long and --help-man).
      --version                  Show application version.
      --config.file="prometheus.yml"  
                                 Prometheus configuration file path.
      --web.listen-address="0.0.0.0:9090"  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

*在启动Prometheus之前,先对其进行配置。

3.2配置Prometheus

Prometheus配置为YAML。Prometheus下载在一个名为的文件中带有一个示例配置,prometheus.yml这是一个入门的好地方。

删除了示例文件中的大多数注释,以使其更加简洁(注释以开头的行#)。

配置如下:

global:		#global块控制Prometheus服务器的全局配置
  scrape_interval:     15s		#scrape_interval控制,Prometheus多久刮一次目标。
  evaluation_interval: 15s		#evaluation_interval选项控制Prometheus多久评估一次规则。

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:		#rule_files块指定希望Prometheus服务器加载的任何规则的位置。
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:		#scrape_configs控制Prometheus监视哪些资源。
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

3.3运行普罗米修斯

要使用我们新创建的配置文件启动Prometheus,转到包含Prometheus二进制文件的目录并运行:

./prometheus --config.file=prometheus.yml
  • 1

运行log
在这里插入图片描述

理论上来说这样就算是安装完成了,但这样太简陋了。因为每次启动 Prometheus server 都需要手动执行命令:

# /usr/local/share/prometheus/prometheus --config.file=/usr/local/share/prometheus/prometheus.yml
  • 1

这实在是太不方便了!应该把它配置成服务,用 systemd 来管理。

四、添加到systemd来管理

4.1先创建一个名为 prometheus 的用户:

# adduser prometheus
  • 1

把目录 /usr/local/share/prometheus/ 的所有者设置为 prometheus 用户:

# chown -R prometheus:prometheus /usr/local/share/prometheus/
  • 1

然后创建文件 /etc/systemd/system/prometheus.service,内容如下:

[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target

[Service]
User=prometheus
Restart=on-failure
WorkingDirectory=/usr/local/share/prometheus/
ExecStart=/usr/local/share/prometheus/prometheus --config.file=/usr/local/share/prometheus/prometheus.yml

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

好了,现在可以通过 systemd 来控制 Prometheus 服务了,
重新载入systemctl服务:

# systemctl daemon-reload
  • 1

启动服务:

# systemctl start prometheus
  • 1

再把服务配置为开机时启动:

# systemctl enable prometheus
  • 1

检查一下服务的状态:

# systemctl status prometheus
  • 1

在这里插入图片描述

五、web端

现在可以在浏览器上浏览到有关其自身的状态页。
在这里插入图片描述
还可以通过导航到自己的指标终结点:http:// localhost:9090 / metrics来验证Prometheus是否正在提供有关自身的指标。

5.1用浏览器查看数据

让我们尝试查看Prometheus收集的有关自身的一些数据。要使用Prometheus的内置表达式浏览器,请导航至 http:// localhost:9090 / graph并在“图形”选项卡中选择“控制台”视图。

正如您可以从http:// localhost:9090 / metrics收集的那样,称为Prometheus导出的有关其自身的一个指标 promhttp_metric_handler_requests_total(/metricsPrometheus服务器已处理的请求总数)。继续并将其输入到表达式控制台中:

promhttp_metric_handler_requests_total
  • 1

在这里插入图片描述
Graphite InfluxDB Kapacitor OpenTSDB Nagios Sensu


六、使用NODE EXPORTER监视LINUX主机指标

Node Exporter公开了各种与硬件和内核相关的指标。

在localhost配置为从运行的Node Exporter刮取指标的Prometheus实例上启动

安装并运行节点导出器

Prometheus Node Exporter是一个单个静态二进制文件,可以通过tarball安装。从Prometheus下载页面下载后,将其解压缩并运行:

# wget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.*-amd64.tar.gz
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
./node_exporter
  • 1
  • 2
  • 3
  • 4

您应该看到类似以下的输出,表明节点导出器正在运行,并且在端口9100上公开了指标:
在这里插入图片描述

节点导出器指标

安装并运行节点导出器后,可以通过对/metrics端点进行cURL验证来导出指标:

http://localhost:9100/metrics
  • 1

您应该看到如下输出:
在这里插入图片描述

配置您的Prometheus实例

需要正确配置本地运行的Prometheus实例,才能访问Node Exporter指标。以下prometheus.yml示例配置文件将通过以下命令告诉Prometheus实例从Node Exporter进行抓取以及抓取频率localhost:9100:
在这里插入图片描述

本节说明如何下载和安装Grafana,如何在基于RPM的Linux系统上启动并运行该服务,以及安装软件包的详细信息。

6.1下载并安装

# wget <rpm package url>
  • 1
# rpm -Uvh <local rpm package>
  • 1

6.2启动服务器

grafana-server将以grafana用户身份启动该过程,该过程是在软件包安装期间创建的。systemd命令在大多数情况下都可以使用,但是某些较旧的Linux系统可能需要init.d。安装程序应提示您输入正确的命令。

如果安装了.rpm软件包,则可以使用systemd或启动服务器init.d。如果安装了二进制.tar.gz文件,则需要执行二进制文件。

6.2.1用systemd启动服务器

要启动服务并验证服务已启动:

# systemctl daemon-reload
# systemctl start grafana-server
# systemctl status grafana-server
  • 1
  • 2
  • 3

在这里插入图片描述

配置Grafana服务器以在启动时启动:

# systemctl enable grafana-server
posted @ 2020-12-24 11:40  Netian  阅读(1374)  评论(0编辑  收藏  举报