Prometheus之监控节点

技术文章 1年前 (2020) 完美者
1,988 0

标签:ssh   syslog   图片   collect   amp   收集   守护   正则表达   amd   

最近闲暇之余,或者java学累了,就会看看别的视频,最近学的Prometheus中,发现他讲的和我看的书内容基本一模一样《Prometheus监控实战》,视频也是个人出的,讲的实战一般般,有兴趣的人可以看看这本书,还有一本源码我也买了,还没有开始看。

监控节点

Prometheus使用exporter工具来暴露主机和应用程序上的指标,目前有很多可用于各种目的的exporter。现在我们将专注于一个特定的exporter:NodeExporter。它是用Go语言编写的,提供了一个可用于收集各种主机指标数据(包括CPU、内存和磁盘)的库。它还有一个textfile收集器,允许你导出静态指标,我们很快就会看到这对发送有关节点的信息很有帮助,此外它还可以从批处理作业导出指标。注意 我们有时会使用术语“节点”来指代主机。首先选择其中一台Linux主机,然后下载并安装Node Exporter。我们将选择一个Docker守护进程主机。提示 如果你不想使用exporter,那么还有很多支持Prometheus的主机监控客户端。例如,collectd也可以收集Prometheus指标。

###安装Node Exporter

你可以通过tar包来安装Node Exporter,在部分操作系统上也可以通过软件包进行安装。可以从Prometheus官网下载Node Exporter的tar包。下载并解压缩Node Exporter,然后将二进制文件移动到环境变量path包含的路径中。

wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
tar -zvxf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter
cd node_exporter
cp node_exporter /usr/local/bin/
node_exporter --version

###配置textfile收集器

我们还想配置一个特定的收集器,即textfile收集器,本章后面将使用它。textfile收集器非常有用,因为它允许我们暴露自定义指标。这些自定义指标可能是批处理或cron作业等无法抓取的,可能是没有exporter的源,甚至可能是为主机提供上下文的静态指标。收集器通过扫描指定目录中的文件,提取所有格式为Prometheus指标的字符串,然后暴露它们以便抓取。现在让我们设置收集器,首先创建一个目录来保存指标定义文件。

可以看到它包含一个指标名称(metadata)和两个标签。一个标签role定义节点的角色。在示例中,标签的值为docker_server。另一个标签datacenter定义主机的地理位置。最后,指标的值为1,因为它不是计数型、测量型或计时型的指标,而是提供上下文。让我们将这个指标添加到textfile_collector目录下的metadata.prom文件中

mkdir -p /var/lib/node_exporter/textfile_collector
echo ‘metadata{role="docker_server",datacenter="NJ"} 1‘ | sudo tee /var/lib/node_exporter/textfile_collector/metadata.prom

在这里,我们将指标传递到名为metadata.prom的文件中。提示 在真实环境中,建议使用配置管理工具来编辑该文件。例如,在配置新主机时,可以从模板创建元数据指标,这可以让你自动对主机和服务进行分类。要启用textfile收集器,我们不需要配置参数,它默认就会被加载。但我们需要指定textfile_exporter目录,以便Node Exporter知道在哪里可以找到自定义指标。为此,我们需要指定--collector.textfile.directory参数。

运行节点导出器

注:我这里只收集常见的3个服务。它们是Docker守护进程、SSH守护进程和RSyslog守护进程。使用--collector.systemd.unit-whitelist参数进行配置,它会匹配systemd的正则表达式。

nohup node_exporter --collector.textfile.directory /var/lib/node_exporter/textfile_collector --collector.systemd --collector.systemd.unit-whitelist="(docker|sshd|rsyslog).service" &>/dev/null &

###过滤收集器

Node Exporter可以返回很多指标,也许你并不想把它们全部收集上来。除了通过本地配置来控制Node Exporter在本地运行哪些收集器之外,Prometheus还提供了一种方式来限制收集器从服务器端实际抓取的数据,尤其是在你无法控制正抓取的主机的配置时,这种方式非常有帮助。Prometheus通过添加特定收集器列表来实现作业配置。

这里,我们将被抓取的指标限制在上面的收集器列表中,使用params块中的collect[]列表指定,然后将它们作为URL参数传递给抓取请求。你可以使用NodeExporter实例上的curl命令来对此进行测试。

image-20200911135648144

在 prometheus 服务器配置 scrap

image-20200911133636455

image-20200911134214164

Prometheus之监控节点

标签:ssh   syslog   图片   collect   amp   收集   守护   正则表达   amd   

原文地址:https://www.cnblogs.com/dalianpai/p/13651385.html

版权声明:完美者 发表于 2020-09-17 21:52:36。
转载请注明:Prometheus之监控节点 | 完美导航

暂无评论

暂无评论...