下载

prometheus的官网的download页面,可以找到prometheus的下载二进制包。

[root@node00 src]# cd /usr/src/
[root@node00 src]# wget https://github.com/prometheus/prometheus/releases/download/v2.12.0/prometheus-2.12.0.linux-amd64.tar.gz
[root@node00 src]# mkdir /usr/local/prometheus/
[root@node00 src]# tar xf prometheus-2.12..linux-amd64.tar.gz -C /usr/local/prometheus/
[root@node00 src]# cd /usr/local/prometheus/
[root@node00 prometheus]# ln -s prometheus-2.12..linux-amd64 prometheus
[root@node00 prometheus]# ll
total
lrwxrwxrwx root root Sep : prometheus -> prometheus-2.12..linux-amd64
drwxr-xr-x Aug : prometheus-2.12..linux-amd64
[root@node00 prometheus]# cd prometheus

获取配置帮助

[root@node00 prometheus]# ./prometheus  --help 

启动

# 启动
[root@node00 prometheus]# ./prometheus
level=info ts=--20T09::.470Z caller=main.go: msg="no time or size retention was set so using the default time retention" duration=15d
level=info ts=--20T09::.470Z caller=main.go: msg="Starting Prometheus" version="(version=2.12.0, branch=HEAD, revision=43acd0e2e93f9f70c49b2267efa0124f1e759e86)"
level=info ts=--20T09::.470Z caller=main.go: build_context="(go=go1.12.8, user=root@7a9dbdbe0cc7, date=20190818-13:53:16)"
level=info ts=--20T09::.470Z caller=main.go: host_details="(Linux 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 node00 (none))"
level=info ts=--20T09::.470Z caller=main.go: fd_limits="(soft=1024, hard=4096)"
level=info ts=--20T09::.470Z caller=main.go: vm_limits="(soft=unlimited, hard=unlimited)"
level=info ts=--20T09::.473Z caller=main.go: msg="Starting TSDB ..."
level=info ts=--20T09::.473Z caller=web.go: component=web msg="Start listening for connections" address=0.0.0.0:
level=info ts=--20T09::.519Z caller=head.go: component=tsdb msg="replaying WAL, this may take awhile"
level=info ts=--20T09::.520Z caller=head.go: component=tsdb msg="WAL segment loaded" segment= maxSegment=
level=info ts=--20T09::.520Z caller=main.go: fs_type=XFS_SUPER_MAGIC
level=info ts=--20T09::.520Z caller=main.go: msg="TSDB started"
level=info ts=--20T09::.520Z caller=main.go: msg="Loading configuration file" filename=prometheus.yml
level=info ts=--20T09::.568Z caller=main.go: msg="Completed loading of configuration file" filename=prometheus.yml
level=info ts=--20T09::.568Z caller=main.go: msg="Server is ready to receive web requests."

测试

配置开机自启

# 进入systemd文件目录
[root@node00 system]# cd /usr/lib/systemd/system
# 编写prometheus systemd文件
[root@node00 system]# cat prometheus.service
[Unit]
Description=prometheus
After=network.target [Service]
User=prometheus
Group=prometheus
WorkingDirectory=/usr/local/prometheus/prometheus
ExecStart=/usr/local/prometheus/prometheus/prometheus
[Install]
WantedBy=multi-user.target

# 启动
[root@node00 system]# systemctl restart prometheus
# 查看状态
[root@node00 system]# systemctl status prometheus
● prometheus.service - prometheus
Loaded: loaded (/usr/lib/systemd/system/prometheus.service; disabled; vendor preset: disabled)
Active: active (running) since Fri -- :: EDT; 4s ago
Main PID: (prometheus)
CGroup: /system.slice/prometheus.service
└─ /usr/local/prometheus/prometheus/prometheus Sep :: node00 prometheus[]: level=info ts=--20T10::.634Z caller=head.go: component=tsdb msg="replaying WAL, this may take awhile"
Sep :: node00 prometheus[]: level=info ts=--20T10::.640Z caller=head.go: component=tsdb msg="WAL segment loaded" segment= maxSegment=
Sep :: node00 prometheus[]: level=info ts=--20T10::.640Z caller=head.go: component=tsdb msg="WAL segment loaded" segment= maxSegment=
Sep :: node00 prometheus[]: level=info ts=--20T10::.641Z caller=head.go: component=tsdb msg="WAL segment loaded" segment= maxSegment=
Sep :: node00 prometheus[]: level=info ts=--20T10::.641Z caller=head.go: component=tsdb msg="WAL segment loaded" segment= maxSegment=
Sep :: node00 prometheus[]: level=info ts=--20T10::.642Z caller=main.go: fs_type=XFS_SUPER_MAGIC
Sep :: node00 prometheus[]: level=info ts=--20T10::.642Z caller=main.go: msg="TSDB started"
Sep :: node00 prometheus[]: level=info ts=--20T10::.642Z caller=main.go: msg="Loading configuration file" filename=prometheus.yml
Sep :: node00 prometheus[]: level=info ts=--20T10::.686Z caller=main.go: msg="Completed loading of configuration file" filename=prometheus.yml
Sep :: node00 prometheus[]: level=info ts=--20T10::.686Z caller=main.go: msg="Server is ready to receive web requests." # 开机自启配置
[root@node00 system]# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /usr/lib/systemd/system/prometheus.service.

后端存储配置

默认情况下prometheus会将采集的数据防止到本机的data目录的, 存储数据的大小受限和扩展不便,这是使用influxdb作为后端的数据库来存储数据。

influxdb安装配置

influxdb的官方文档地址为: https://docs.influxdata.com/influxdb/v1.7/introduction/downloading/ 根据不同系统进行下载,这里使用官方提供的rpm进行安装。

# 下载rpm
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpm
# 本地安装rpm
sudo yum localinstall influxdb-1.7..x86_64.rpm
# 查看安装的文件
[root@node00 influxdb]# rpm -ql influxdb
/etc/influxdb/influxdb.conf
/etc/logrotate.d/influxdb
/usr/bin/influx
/usr/bin/influx_inspect
/usr/bin/influx_stress
/usr/bin/influx_tsm
/usr/bin/influxd
/usr/lib/influxdb/scripts/influxdb.service
/usr/lib/influxdb/scripts/init.sh
/usr/share/man/man1/influx..gz
/usr/share/man/man1/influx_inspect..gz
/usr/share/man/man1/influx_stress..gz
/usr/share/man/man1/influx_tsm..gz
/usr/share/man/man1/influxd-backup..gz
/usr/share/man/man1/influxd-config..gz
/usr/share/man/man1/influxd-restore..gz
/usr/share/man/man1/influxd-run..gz
/usr/share/man/man1/influxd-version..gz
/usr/share/man/man1/influxd..gz
/var/lib/influxdb
/var/log/influxdb
# 备份默认的默认的配置文件,这里可以对influxdb的数据存放位置做些设置
[root@node00 influxdb]# cp /etc/influxdb/influxdb.conf  /etc/influxdb/influxdb.conf.default # 启动
[root@node00 influxdb]# systemctl restart influxdb
# 查看状态
[root@node00 influxdb]# systemctl status influxdb # 客户端登陆测试, 创建一个prometheus的database供后续的prometheus使用。
[root@node00 influxdb]# influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.
> show databases;
name: databases
name
----
_internal
> create database prometheus;
> show databases;
name: databases
name
----
_internal
prometheus
> exit

配置prometheus集成infludb

官方的帮助文档在这里: https://docs.influxdata.com/influxdb/v1.7/supported_protocols/prometheus/

[root@node00 prometheus]# pwd
/usr/local/prometheus/prometheus
cp prometheus.yml prometheus.yml.default
vim prometheus.yml
# 添加如下几行
remote_write:
- url: "http://localhost:8086/api/v1/prom/write?db=prometheus" remote_read:
- url: "http://localhost:8086/api/v1/prom/read?db=prometheus" systemctl restart prometheus
systemctl status prometheus

注意: 如果influxdb配置有密码, 请参考上面的官方文档地址进行配置。

测试数据是否存储到influxdb中

[root@node00 prometheus]# influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.
> show databases;
name: databases
name
----
_internal
prometheus
> use prometheus
Using database prometheus
> show measures;
ERR: error parsing query: found measures, expected CONTINUOUS, DATABASES, DIAGNOSTICS, FIELD, GRANTS, MEASUREMENT, MEASUREMENTS, QUERIES, RETENTION, SERIES, SHARD, SHARDS, STATS, SUBSCRIPTIONS, TAG, USERS at line , char
> show MEASUREMENTS;
name: measurements
name
----
go_gc_duration_seconds
go_gc_duration_seconds_count
go_gc_duration_seconds_sum
go_goroutines
go_info
go_memstats_alloc_bytes
# 后面还是有很多,这里不粘贴了。 # 做个简单查询
> select * from prometheus_http_requests_total limit ;
name: prometheus_http_requests_total
time __name__ code handler instance job value
---- -------- ---- ------- -------- --- -----
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus
prometheus_http_requests_total /metrics localhost: prometheus

prometheus学习系列二: Prometheus安装的更多相关文章

  1. RabbitMQ学习系列二-C#代码发送消息

    RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 http://www.80iter.com/blog/1437455520862503 上一篇已经讲了Rabbi ...

  2. .net reactor 学习系列(二)---.net reactor界面各功能说明

    原文:.net reactor 学习系列(二)---.net reactor界面各功能说明         安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.c ...

  3. 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)

    项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1 欢迎fork欢迎三连!文章篇幅有限, ...

  4. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  5. Maven学习系列二(1-5)

    Maven学习系列二(1-5) 本文转自 QuantSeven 博客,讲解精炼易懂,适合入门,链接及截图如下 http://www.cnblogs.com/quanyongan/category/47 ...

  6. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  7. DocX开源WORD操作组件的学习系列二

    DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...

  8. [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参

    [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...

  9. Prometheus学习系列(二)之Prometheus FIRST STEPS

    前言 本文来自Prometheus官网手册 和 Prometheus简介 说明 Prometheus是一个监控平台,通过在监控目标上的HTTP端点来收集受监控目标的指标.本指南将向您展示如何使用Pro ...

随机推荐

  1. Intellij Idea 星云常用配置工具箱

    1. 软件配置篇 1.1 关闭默认打开最近的工程选项 1.2. 修改快捷键 1.3 修改字体 1.4 创建类模板 效果如下: 1.5 创建接口模板 效果同上 2. 插件篇 1.1 省略Getter a ...

  2. Ajax 与 Django

    目录 Django与AJAX orm优化查询: MTV 与 MVC模型 choices 参数 update 与 save的区别 AJAX导入: Jquery 实现AJAX ajax基本语法结构 原生J ...

  3. 在eclipse中新建java问题报错:The type XXX cannot be resolved. It is indirectly referenced from required .class files

    在Eclipse中遇到The type XXX cannot be resolved. It is indirectly referenced from required .class files错误 ...

  4. GCD(洛谷 2568)

    题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入格式 一个整数N 输出格式 答案 输入输出样例 输入 #1 4 输出 #1 4 说明/提示 ...

  5. 使用docker部署nginx+tomcat架构(2):访问mysql数据库

    上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进 ...

  6. 【BigData】Java基础_ArrayList的使用

    ArrayList概述 ArrayList底层使用的是数组.是List的可变数组实现,这里的可变是针对List而言,而不是底层数组. 数组有自身的特点,不变性,一旦数组被初始化,那么其长度就固定了,不 ...

  7. curl用法详解

    前言 昨天现场的浏览器崩溃了,楼主苦逼,就临时用了curl测试了下图片请求接口.今天总结下. 一.what? curl is a tool to transfer data from or to a ...

  8. 【06月18日】A股滚动市净率PB历史新低排名

    2010年01月01日 到 2019年06月18日 之间,滚动市净率历史新低排名. 上市三年以上的公司,2019年06月18日市净率在30以下的公司. 来源:A股滚动市净率(PB)历史新低排名. 1 ...

  9. Python3 CGI编程实现教程

    一.背景说明 虽然很久以前就听说“早期的网站很多通过cgi形式实现”.“C++可通过CGI形式编写网页”,日积月累对CGI也有了一些概念,但一直没真正见过一个实际运行的CGI网站,总归还是有些底气不足 ...

  10. 25个强大的CSS代码,据说这些是开发者经常遇到比较棘手的代码

    这些代码是经常用到的,比方说一些特殊的效果,圆角边框,CSS透明度,梯形环绕,CSS小三角等,希望对你有用 1简单又好的 Blockquote 样式 CSS代码如下 blockquote { back ...