天天看点

promethues的一些小知识(一补充)metrics_path defaults to ‘/metrics’scheme defaults to ‘http’.

一、通过源码包安装

[[email protected] ~]# tar xf prometheus-2.12.0.linux-amd64.tar.gz

[[email protected] ~]# cd prometheus-2.12.0.linux-amd64/

[[email protected] prometheus-2.12.0.linux-amd64]# cp promtool prometheus /usr/local/bin/

[[email protected] prometheus-2.12.0.linux-amd64]# mkdir /etc/prometheus

[[email protected] prometheus-2.12.0.linux-amd64]# cp prometheus.yml /etc/prometheus/

检测配置文件语法

[[email protected] ~]# promtool check config /etc/prometheus/prometheus.yml

指定配置文件路径并启动

[[email protected] ~]# prometheus --config.file “/etc/prometheus/prometheus.yml”

Docker的容器也可以用ps aux 过滤出进程号,就可以用kill

热配置: curl -X POST http://localdns:9090/-/reload

//热载入配置,2.0之后,默认是关闭的,需要–web.enable-lifecycle 参数 开启

kill -HUP pid

生产环境中的prometheus启动姿势

/root/prometheus-2.11.1.linux-amd64/prometheus --web.listen-address=“0.0.0.0:9090” --web.read-timeout=5m --web.max-connections=512 --storage.tsdb.retention=15d --storage.tsdb.path=“data/” --query.max-concurrency=20 --query.timeout=2m

/root/prometheus-2.11.1.linux-amd64/prometheus    执行文件的绝对路径
--web.read-timeout=5m                          请求连接的最大等待时间防止太多的空闲连接占用资源
--web.max-connections=512                      最大连接数
--storage.tsdb.retention=15d                       开始财局监控数据后会存在内存中和硬盘中对于保留期限的设置,太长的话硬盘和存储会有较大压力,15天比较合适
--storage.tsdb.path="data/"                        存储路径这个比较重要不压迫随便乱放,不要把/目录塞满了
--query.max-concurrency=20   --query.timeout=2m  这两项是针对用户执行prometheus查询的时候做的优化,防止太多的用户同时查询,也防止单个用户执行过大的查询而一直不推出
都配置ok以后就相对稳妥
           

二、通过docker安装

安装docker然后直接起容器映射数据卷就可以

[[email protected] ~]# docker run -itd -p 9090:9090 --mount src=enha,dst=/etc/prometheus/ prom/prometheus

三、node exporter

[[email protected] ~]#tar xf node_exporter-*

[[email protected] ~]#cp node_exporter-*/node_exporter /usr/local/bin/

[[email protected] ~]#node_exporter –version

[[email protected] ~]#node_exporter –help

1.配置 文本文件收集器(大致意思就是通过shell脚本采集数据然后在这里面判断数据的阈值,来进行报警,一般Prometheus都用pushgeteway来做脚本推送)

[[email protected] ~]#mkdir -p /var/lib/node_exporter/textfile_collector

[[email protected] ~]# echo ‘metadata{role=“docker_server”,datacenter=“NJ”} 1’ > /var/lib/node_exporter/textfile_collector/metadata.prom

注:文本文件收集器,默认事加载的,我们只需要指定目录 --collector.textfile.directory=""

2.启用 system 收集器

采用 --collector.systemd.unit-whitelist=“.+“ ,使用正则表达式

3. 运行节点导出器

[[email protected]~]# node_exporter --collector.textfile.directory /var/lib/node_exporter/textfile_collector --collector.systemd --collector.systemd.unit-whitelist="(docker|sshd|rsyslog).service"
           

-collector.textfile.directory /var/lib/node_exporter/textfile_collector

–collector.systemd 开启centos7特有的systemctl监控,就是针对于可以用systemctl启动的服务的监控(直开启这个默认监控,服务个数,以及状态)

–collector.systemd.unit-whitelist="(docker|sshd|rsyslog).service" 这个参数是指针对括号内的systemctl服务进行详细监控(状态)

4.可以设置一部分过滤,由于node过于强大,所以可以在Prometheus的配置文件中修改,过滤出我们想要的信息

  • job_name: ‘prometheus’

    metrics_path defaults to ‘/metrics’

    scheme defaults to ‘http’.

    static_configs:
    • targets: [‘localhost:9090’,‘localhost:9100’]

      params:

      collect[]:

      • cpu
      • diskstats

四、监控docker

安装cadvisor

1.curl https://raw.githubusercontent.com/aishangwei/prometheus-demo/master/docker/cadvisor_run.sh

2.docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:latest

3. curl http://192.168.20.172:8080 可以显示docker所在宿主机的一些信息

4. curl http://192.168.20.172:8080/metrics

在Prometheus的配置文件中添加IP:8080 可以收集信息

标签的配置使用

(1)重新贴标签

考虑到要明智地使用标签,我们为什么要给事物重新命名呢?一句话:控制。在一个集中的、复杂的监视环境中, 您有时无法控制您正在监视的所有资源以及它们公开的监视数据。重新标记允许您在您的环境中控制、管理和 潜在地标准化度量。一些最常见的用例是: • 删除不必要的指标。 • 从指标中删除敏感或不需要的标签。 • 添加、编辑或修改指标的标签值或标签格式。

记住有两个阶段我们可以重新命名。第一阶段是重新标记来自服务发现的目标。这对于将来自服务发现的元数 据标签的信息应用到您的度量上的标签非常有用。这是在作业内部的relabel_configs块中完成的。

第二个阶段是在刮刮(scape)之后,但在保存到存储系统之前。这使我们能够确定我们保存了哪些指标,删除 了哪些指标,以及这些指标将是什么样子。这是在我们的工作中的metric_relabel_configs块中完成的。

记住这两个阶段最简单的方法是: relabel_configs发生在刮刮之前,metric_relabel_configs 发生在刮刮之后。

继续阅读