-
Prometheus安装配置
2019-04-13 10:00:41Prometheus安装配置,主要是用作记录一下,以防以后自己用到的时候找不到 -
prometheus 安装配置
2021-02-08 09:59:31prometheus安装方法 二进制安装:便于学习理解 docker安装:方便和可移植 k8s安装:也是基于docker,实现可管理 监控指标 cAdvisor:是一个谷歌开发的容器监控工具,提供http方式获取数据和web界面,它被内嵌到...prometheus安装方法
- 二进制安装:便于学习理解
- docker安装:方便和可移植
- k8s安装:也是基于docker,实现可管理
监控指标
- cAdvisor:是一个谷歌开发的容器监控工具,提供http方式获取数据和web界面,它被内嵌到k8s中作为k8s的监控组件(kubelet)
看下docker默认的监控
docker stats
缺点:无法被获取数据和界面,也就是说是个单机版的,cAdvisor就是弥补这样的缺点
cadvisor是可以单独安装的,但是如果安装了kubelet,就能直接访问(端口默认是4194)
- node_exporter:监控node节点的资源,需要单独安装
- mysqld_exporter:监控mysql数据库的资源,需要单独安装
exporter都是对于本身不支持数据采集,提供给prometheus拉取的程序和系统,很好理解,因为mysql是在prometheus 之前就出现的
下载地址:https://prometheus.io/download/- kube-state-metrics:获取k8s集群资源,比如replicas调度情况,Pod重启次数等等
配置过程复杂,因为涉及到k8s的集群访问
github:https://github.com/kubernetes/kube-state-metrics/tree/master/examples/autoshardingMetric 指标
metric是Prometheus监控的核心,Prometheus服务端通过拉取metric获取到数据,metric可以理解为就是监控的数据
- metric格式:其实就是符合prometheus的时间序列存储类型
Prometheus server其实本身也会暴露出 metric,也就是 server 本身也可以是个 Prometheus client(安装好prometheus 服务后就能访问到)
prometheus_http_request_duration_seconds_bucket{handler="/api/v1/targets",le="8"} 1 metric name labels 值
- metric name:一般用于表示 metric 的功能
- labels:使同一个时间序列有了不同维度的识别,即:多维标签,通过更换标签实现一个功能的多个维度metric
Metric(指标)类型
- Counter:计数器,是一种累加的metric,比如请求的个数,结束的任务数
- Gauge:用于记录一个瞬时的值,能增也能减:比如cpu温度
- Histogram:柱状图,可以对观察结果采样,分组及统计,比如请求持续时间,响应大小
- Summary:类似于 histogram,也是一组数据。不同的是,它统计的不是区间的个数而是统计分位数(百分比)
二进制安装
prometheus服务端安装
wget https://github.com/prometheus/prometheus/releases/download/v2.24.1/prometheus-2.24.1.linux-amd64.tar.gz tar zxf prometheus-2.24.1.linux-amd64.tar.gz mv mv prometheus-2.24.1.linux-amd64 /usr/local/prometheus/ #下载最新版的2.24prometheus和解压 ./prometheus --config.file=prometheus.yml #启动prometheus,--config.file指定配置文件 http://localhost:9090 http://localhost:9090/metrics #prometheus服务端已经好了 配置systemctl vi /usr/lib/systemd/system/prometheus.service [Unit] Description=Prometheus Node Exporter After=network.target [Service] ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml User=root [Install] WantedBy=multi-user.target #添加systemctl文件 systemctl start prometheus.service systemctl enable prometheus.service #启动服务和开启自启
可以看到默认就是监控自己,类似zabbix安装好后也有一个默认的主机
./prometheus --help(启动参数)
- –config.file:指定配置文件
- –web.xx:web相关
- –storage.xx:存储相关
- –rules:告警相关
- –alertmanager.xx:告警相关
- –query.xx:查询相关
prometheus配置文件(yaml格式)
- global:全局配置
- alerting:告警配置
- rule_files:告警规则
- scrape_configs:配置数据源,配置抓取客户端(target),可以是静态配置和动态发现
global字段
- scrape_interval:全局默认的数据拉取间隔
- [ scrape_interval: <duration> | default = 1m ]
- scrape_timeout:全局默认的单次数据拉取超时
- [ scrape_timeout:\ | default = 10s ]
- external_labels:用于外部系统标签的,不是用于metrics数据
- [ <labelname>: <labelvalue> … ]
- query_log_file:PromQL查询记录到的文件
- [ query_log_file: <string> ]
通用占位符定义如下:
- boolean:可以接受值的布尔值true或false
- duration:持续时间相匹配正则表达式((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0),例如1d,1h30m,5m,10s
- filename:当前工作目录中的有效路径
- host:由主机名或IP后跟可选端口号组成的有效字符串
- int:整数值
- labelname:与正则表达式匹配的字符串 [a-zA-Z_][a-zA-Z0-9_]*
- labelvalue:一串unicode字符
- path:有效的网址路径
- scheme>:可以采用值的字符串http或https
- secret>:是秘密的常规字符串,例如密码
- string:常规字符串
- tmpl_string:使用前已模板扩展的字符串
scrape_configs字段:拉取数据配置
-
job_name:定义job名称,是一个拉取单元
- 默认配置:
- scrape_interval 依赖全局配置
- scrape_timeout 依赖全局配置
- metrics_path 默认为/metrics
- scheme 默认为http
- 默认配置:
-
honor_labels:服务端拉取过来的数据也会存在标签,配置文件中也会有标签,这样就可能发生冲突
- true就是以抓取数据中的标签为准
- false就会重新命名抓取数据
- [ honor_labels: <boolean> | default = false ]
-
scheme:抓取数据所用的协议,默认为http
-
params:可选HTTP URL参数
- [ <string>: [<string>, …] ]
-
basic_auth:抓取认证
password和password_file互斥只可以选择其一
basic_auth:
[ username: <string> ]
[ password: <secret> ]
[ password_file: <string> ] -
bearer_token:认证令牌
bearer_token和bearer_token_file互斥只可以选择其一
[ bearer_token: <secret> ]
[ bearer_token_file: /path/to/bearer/token/file ] -
tls_config:tls认证配置
tls_config:
[ ca_file: ]
[ cert_file: ]
[ key_file: ]
[ server_name: ]
[ insecure_skip_verify: ]
#禁用证书验证 -
proxy_url:通过代理拉取数据
- [ proxy_url: <string> ]
服务发现
Prometheus支持多种服务现工具(sd就是service discovery的缩写)- azure_sd_configs:
- consul_sd_configs:
- dns_sd_configs:
- ec2_sd_configs:
- openstack_sd_configs:
- file_sd_configs:
- gce_sd_configs:
- kubernetes_sd_configs:
- marathon_sd_configs:
- nerve_sd_configs:
- serverset_sd_configs:
- triton_sd_configs:
static_configs:静态配置发现
- targets:
指定静态目标
[ - ‘<host>’ ]
labels:
给抓取出来的所有指标添加指定的标签
[ <labelname>: <labelvalue> … ]
配置参考:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config
配置参考:https://www.dazhuanlan.com/2019/12/12/5df11ada207ce/配置cAdvisor
vi prometheus.yml - job_name: 'cAdvisor' static_configs: - targets: ['192.168.12.3:4194'] #填写多个cadvisor的主机地址用逗号隔开 #节点无须任何安装,配置文件添加,注意配置基于scrape_configs字段下一层 systemctl restart prometheus.service
查看targets信息
最基本的监控配置完成
配置grafana(docker)
docker run -d \ --name=grafana \ -p 3000:3000 \ grafana/grafana
http://localhost:3000/login(账号密码:admin)
安装插件
docker exec -it grafana bash grafana-cli plugins install grafana-kubernetes-app docker restart grafana #web进入插件管理,开启
监控cAdvisor
- 找cAdvisor资源的dashboards模板
- https://grafana.com/grafana/dashboards?search=cAdvisor
- 代码编号:10566
- 导入面板:Home->Dashboards->Import
简单的监控就出来了
node_exporter没做,不然图形会好看点,部分显示N/A
-
prometheus安装配置
2019-03-23 20:51:33prometheus的特点 和其他监控系统相比,普罗米修斯的特点包括: 多维数据模型(时序列数据由度量名和一组键/值... 目标服务器可以通过发现服务或者静态配置实现 多种可视化和仪表盘支持 prometheus相关组件 普...prometheus的特点
和其他监控系统相比,普罗米修斯的特点包括:
- 多维数据模型(时序列数据由度量名和一组键/值组成)
- 在多维度上灵活的查询语言(PromQl)
- 不依赖分布式存储,单主节点工作。
- 通过基于HTTP的拉方式采集时序数据
- 可以通过中间网关进行时序列数据推送(推压)
- 目标服务器可以通过发现服务或者静态配置实现
- 多种可视化和仪表盘支持
prometheus相关组件
普罗米修斯生态系统由多个组件组成,其中许多是可选的:
- Prometheus主服务,用来抓取和存储时序数据
- 客户端库用来构造应用程序或出口代码(go,java,python,ruby)
- 推网络可用来支持短连接任务
- 可视化的仪表板(两种选择,promdash和grafana。目前主流选择是grafana。)
- 一些特殊需求的数据出口(用于HAProxy,StatsD,Graphite等服务)
- 实验性的报警管理端(alartmanager,单独进行报警汇总,分发,屏蔽等)
prometheus的各个组件基本都是用golang编写,对编译和部署十分友好。并且没有特殊依赖。基本都是独立工作。
https://prometheus.io/download/
prometheus-2.8.0.linux-amd64.tar.gz
参考文档
https://prometheus.io/docs/prometheus/latest/querying/basics/
[root@server1 ~]# tar zxf prometheus-2.3.2.linux-amd64.tar.gz
[root@server1 ~]# cd prometheus-2.3.2.linux-amd64
[root@server1 prometheus-2.3.2.linux-amd64]# ls
console_libraries LICENSE prometheus promtool
consoles NOTICE prometheus.yml[root@server1 prometheus-2.3.2.linux-amd64]# cp prometheus promtool /usr/local/bin/
[root@server1 prometheus-2.3.2.linux-amd64]# prometheus --version
prometheus, version 2.3.2 (branch: HEAD, revision: 71af5e29e815795e9dd14742ee7725682fa14b7b)
build user: root@5258e0bd9cc1
build date: 20180712-14:02:52
go version: go1.10.3[root@server1 prometheus-2.3.2.linux-amd64]# promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: 0 rule files found[root@server1 prometheus-2.3.2.linux-amd64]# ./prometheus --config.file "prometheus.yml" --web.enable-lifecycle
[root@server1 prometheus-2.3.2.linux-amd64]# ps -aux | grep prom
root 1217 0.0 0.0 112648 960 pts/0 R+ 22:16 0:00 grep --color=auto prom -
Prometheus Visit prometheus.io for the full documentation, examples and guides. Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects ...
-
安装及使用: Prometheus WIKI 配套课程: Prometheus自主无人机二次开发课程,本课程偏重本项目中的基础知识和操作实践,适合本项目入门者,购买课程后会定期安排线上答疑活动(语音交流、方便透彻!) 课程报名 ...
-
监控神器普罗米修斯Prometheus安装配置
2019-01-07 14:22:05一、基础环境 环境/组件 版本 下载地址 操作系统 CentOS 7.3 ... Prometheus 2.6.0 https://prometheus.io/download/#prometheus go...一、基础环境
环境/组件 版本 下载地址 操作系统 CentOS 7.3 http://archive.kernel.org/centos-vault/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso Prometheus 2.6.0 https://prometheus.io/download/#prometheus go 1.11.4 https://golang.org/dl/ Grafana 5.4.2 https://dl.grafana.com/oss/release/grafana-5.4.2-1.x86_64.rpm 二、安装go
1、解压安装
tar -C /usr/local/ -xvf go1.11.4.linux-amd64.tar.gz
2、配置环境变量
vim /etc/profile export PATH=$PATH:/usr/local/go/bin source /etc/profile
3、验证
go version
三、安装Prometheus
1、安装
tar -C /usr/local/ -xvf prometheus-2.6.0.linux-amd64.tar.gz ln -sv /usr/local/prometheus-2.6.0.linux-amd64/ /usr/local/Prometheus
2、启动
普罗米修斯默认配置文件 vim /usr/local/Prometheus/prometheus.yml
/usr/local/Prometheus/prometheus --config.file=/usr/local/Prometheus/prometheus.yml &
3、验证
浏览器打开IP:9090端口即可打开普罗米修斯自带的监控页面
四、安装Grafana
普罗米修斯默认的页面可能没有那么直观,我们可以安装grafana使监控看起来更直观
1、安装
rpm -ivh --nodeps grafana-5.4.2-1.x86_64.rpm
2、启动
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable grafana-server.service sudo /bin/systemctl start grafana-server.service
3、访问grafana
浏览器访问IP:3000端口,即可打开grafana页面,默认用户名密码都是admin,初次登录会要求修改默认的登录密码
4、添加prometheus数据源
(1)点击主界面的“Add data source”
(2)选择Prometheus
(3)Dashboards页面选择“Prometheus 2.0 Stats”
(4)Settings页面填写普罗米修斯地址并保存
(5)切换到我们刚才添加的“Prometheus 2.0 Stats”即可看到整个监控页面
五、一些常用监控举例
1、监控linux机器(node-exporter)
https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
(1)被监控的机器安装node-exportertar -xvf node_exporter-0.17.0.linux-amd64.tar.gz -C /usr/local/
(2)启动node-exporter
/usr/local/node_exporter-0.17.0.linux-amd64/node_exporter &
(3)普罗米修斯配置文件添加监控项
vim /usr/local/Prometheus/prometheus.yml
默认node-exporter端口为9100
- job_name: 'Prometheus' static_configs: - targets: ['192.168.0.102:9100'] labels: instance: Prometheus
重启普罗米修斯
(4)grafana导入画好的dashboard- dashboard json
- 链接:https://pan.baidu.com/s/1Dlm0IHTgRmc0q2P82cDjKg 提取码:myv6
修改名字,选择我们前文创建好的数据源,点击导入即可
如果没有任何显示,是grafana缺少相关显示需要用到的插件piechart,grafana的默认插件目录是/var/lib/grafana/plugins,可以将下载好的插件解压到这个目录,重启grafana即可 - piechart插件:
- 链接:https://pan.baidu.com/s/1tvZWI9vhAqvJhojKmDlmew 提取码:tlyl
service grafana-server restart /usr/sbin/grafana-cli plugins ls #查看已安装插件
再刷新grafana页面,即可看到我们刚才设置好的node监控
2、监控windows机器(wmi-exporter)
https://github.com/martinlindhe/wmi_exporter/releases
(1)被监控windows机器安装wmi-exporter,会自动创建一个开机自启的服务
(2)普罗米修斯配置文件添加配置项vim /usr/local/Prometheus/prometheus.yml
默认wmi-exporter端口为9182
- job_name: 'Prometheus' static_configs: - targets: ['192.168.0.102:9182']
重启普罗米修斯
(3)grafana导入画好的dashboard,选择普罗米修斯数据源- 链接:https://pan.baidu.com/s/1nfTE2dqcr6NYldlBm_lnfw 提取码:ohv4
3、监控MySQL(mysqld-exporter)
https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz
(1)被监控mysql机器安装mysqld-exportertar -C /usr/local/ -xvf mysqld_exporter-0.11.0.linux-amd64.tar.gz
(2)设置配置文件,user为数据库登录用户,password为这个用户的密码
vi .my.cnf [client] user=root password=123456
(3)启动mysqld-exporter
/usr/local/mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter --config.my-cnf="/usr/local/mysqld_exporter-0.11.0.linux-amd64/.my.cnf" &
(4)prometheus配置文件中加入mysql监控并重启
vim /usr/local/Prometheus/prometheus.yml
默认mysqld-exporter端口为9104
- job_name: 'MySQL' static_configs: - targets: ['192.168.0.103:9104']
(5)设置数据源
grafana界面添加mysql数据源
添加需要被监控的数据库及相关信息
(6)导入已经画好的dashboard,数据源选择刚刚创建好的mysql数据源即可- 链接:https://pan.baidu.com/s/1GBzogDLsYS3IvwH4WbdPLw 提取码:ef6e
4、监控Redis(redis_exporter)
链接:https://pan.baidu.com/s/12y7HxtQlBjFwr_i8ClM8Kw 提取码:13v2
(1)安装redis_exportertar -C /usr/local/ -xvf redis_exporter-v0.15.0.linux-amd64.tar.gz
(2)启动redis_exporter
默认redis_exporter端口为9121
./redis_exporter redis//192.168.0.103:6379 & -web.listenaddress 192.168.0.103:9121
(3)prometheus配置文件中加入redis监控并重启
vim /usr/local/Prometheus/prometheus.yml
默认redis-exporter端口为9121
- job_name: 'Redis' static_configs: - targets: ['192.168.0.103:9121']
(4)grafana导入画好的dashboard
- 链接:https://pan.baidu.com/s/1LIkVC0o3lyTT59JbX0mSpg 提取码:gf1d
六、一些网站
- grafana dashboard:https://grafana.com/dashboards
- grafana plugins:https://grafana.com/plugins
-
Prometheus系列:Prometheus安装配置
2020-03-28 17:25:31安装 启动 查询 下载地址 https://prometheus.io/download/ 安装 [root@localhost ~]# tar -xvzf prometheus-2.17.1.linux-amd64.tar.gz [root@localhost ~]# cd prometheus-2.17.1.linux-amd64 ....目录
下载地址
CSDN下载地址:https://download.csdn.net/download/VIP099/12277926
官方网站下载地址:https://prometheus.io/download/
安装
[root@localhost ~]# tar -xvzf prometheus-2.17.1.linux-amd64.tar.gz [root@localhost ~]# cd prometheus-2.17.1.linux-amd64
启动
[root@localhost ~]# ./prometheus
启动后,Prometheus UI默认运⾏在9090端口。浏览器可以直接打开访问⽆账号密码验证
查询
-
监控组件Prometheus安装配置
2020-01-30 23:11:39监控组件普罗米修斯Prometheus Prometheus是Google BorgMon监控系统的开源版本。伴随着容器及Kubernetes技术的兴起,Prometheus越来越受到大家的...Prometheus服务端安装 下载服务端 wget -c https://github.com/pr... -
安装 配置 配置 记录规则 预警规则 模板例子 模板参考 规则的单元测试 查询 基本概念 操作符 函数 举例 HttpAPI 存储 联邦 管理API 集成 API稳定性 可视化 表达式浏览器 Grafana 控制模板 操作 安全...
-
监控服务器配置(一)-----Prometheus安装配置
2019-06-18 20:17:00最近和朋友一起做的监控配置,拿出来共享一下 1.下载prometheus安装包(linux版)到 /opt/minitor/prometheus 。 下载地址:https://download.csdn.net/download/a15565772151/11111904 不知道为啥,csdn没法自己设置...
-
Sublime Text3常用快捷键
-
Redis中list实现栈&队列&数组&阻塞、单播队列
-
MHA 高可用 MySQL 架构与 Altas 读写分离
-
Python--公共方法
-
H3CSE题库+考题模拟器.zip
-
【MyBatis】架构分层及主要对象
-
一天学完MySQL数据库
-
libFuzzer视频教程
-
井字游戏-源码
-
摄影-源码
-
ansible-k8s-dev-源码
-
CsLiB
-
cmtaFA2-源码
-
分享一个自己做的简易敏捷开发管理工具——AgileLite
-
Samba 服务配置与管理
-
【布道者】Linux极速入门
-
django-rest-api的重量-源码
-
换个角度看敏捷
-
日志收集器-源码
-
Liunx 优化思路与实操步骤