Prometheus+Categraf的架构配置。categraf做为Prometheus的采集器

先说一下写这篇文章的初衷:这个要配置起来的话其实很简单一条命令就搞定了。但是我在网上搜了一下发现跟这个相关文章一个都没有,全是在categraf官网上照着复制粘贴一下。完全跟我的需求完全不一样。最后花了我两天的时间才给搞好(必须吐槽一下)

1.部署Prometheus

大家可以直接去Prometheus的官网上下载二进制的软件包

普罗米修斯的官网

进去之后根据自己的情况进行选型,不同的选型对应的软件包不一样。(我这里用的是2。45版本的包) 

Prometheus+Categraf的架构配置。categraf做为Prometheus的采集器_第1张图片下载完成后将软件包上传到机器。上传完成后进行解压。

tar -xf prometheus-2.45.0.linux-amd64.tar.gz #解压软件包
cd prometheus-2.45.0.linux-amd64/ #进入到解压后的目录

这里我们只是将categraf作为Prometheus。Prometheus的监控配置和告警规则就不多说。此时我们的配置文件就不需要改动只需要将Prometheus的二进制脚本运行起来就可以了。

./prometheus --web.enable-remote-write-receiver 
#注意重点来了“--web.enable-remote-write-receiver” 这个参数是一定要添加的,如果不添加Prometheus就接受不到categraf推送过来的数据。
大家可通过./prometheus --help 查看支持的一些参数配置

运行起来之后就可以通过本机地址加9090端口登陆Prometheus的WEB UI界面

Prometheus+Categraf的架构配置。categraf做为Prometheus的采集器_第2张图片

 这就是Prometheus的WEB UI界面,此时Prometheus的部署已经完成了

2.部署categraf

categraf的部署也是非常简单,通过二进制包安装

登陆categraf的官网下载对应的安装包

https://github.com/flashcatcloud/categraf/releases:下载地址

Prometheus+Categraf的架构配置。categraf做为Prometheus的采集器_第3张图片

下载完成后上传到服务器,并解压。

tar -xf categraf-v0.3.22-linux-amd64.tar.gz #解压文件
cd categraf-v0.3.22-linux-amd64/  #进入到压缩目录

[root@node1 categraf-v0.3.22-linux-amd64]# ls
categraf  conf
此时目录下有两个文件
categraf :二进制脚本
categraf :配置目录

 进入配置文件修改配置

vim conf/config.toml #进入配置文件

#找到此行配置
[[writers]]
url = "http://127.0.0.1:17000/prometheus/v1/write"

#改成如下配置
[[writers]]
url = "http://localhost:9090/api/v1/write"
localhost:为部普罗米修斯的服务器的ip地址
9090:普罗米修斯的端口(默认9090)
/api/v1/write :对接的api接口(因为 Prometheus 的 RemoteWrite 数据接收地址是 /api/v1/write)

执行运行脚本

./categraf

 现在Prometheus和categraf已经对接上了。

我们现在回到Prometheus的WEB UI界面,查询一个参数看看categraf是否将监控信息推给Prometheus

Prometheus+Categraf的架构配置。categraf做为Prometheus的采集器_第4张图片

 此时我cpu是打满的状态,因为我在主机上执行了dd if=/dev/zero of=/dev/null 所以是正常的。到这一步categraf对接Prometheus已经全部完成了。

全文的重点来了

 我们此时在Prometheus WEB UI界面执行查询语句的时候就不能用PromQL查询了,要用categraf的语法来查询。

categraf的安装目录conf目录下有许多插件目录,此时我们可以通过./categraf  --test --inputs cpu 命令来测试这个插件有哪些监控指标

举个栗子:

此时我conf下面有这么的监控指标

[root@node1 conf]# ls
categraf.service   input.docker               input.kubernetes            input.ntp              input.snmp
config.toml        input.elasticsearch        input.linux_sysctl_fs       input.nvidia_smi       input.sockstat
config.toml.bak    input.exec                 input.logstash              input.oracle           input.sqlserver
input.aliyun       input.googlecloud          input.mem                   input.phpfpm           input.switch_legacy
input.appdynamics  input.greenplum            input.mongodb               input.ping             input.system
input.arp_packet   input.haproxy              input.mtail                 input.postgresql       input.systemd
input.cadvisor     input.http_response        input.mysql                 input.processes        input.tomcat
input.clickhouse   input.ipmi                 input.net                   input.procstat         input.vsphere
input.cloudwatch   input.ipvs                 input.net_response          input.prometheus       input.whois
input.conntrack    input.jenkins              input.netstat               input.rabbitmq         input.xskyapi
input.consul       input.jolokia_agent_kafka  input.netstat_filter        input.redis            input.zookeeper
input.cpu          input.jolokia_agent_misc   input.nfsclient             input.redis_sentinel   logs.toml
input.disk         input.kafka                input.nginx                 input.rocketmq_offset  traces.yaml
input.diskio       input.kernel               input.nginx_upstream_check  input.self_metrics
input.dns_query    input.kernel_vmstat        input.nsq                   input.smart

如果说我想看内存的监测指标有哪些呢?
此时我们执行“./categraf --test --inputs mem”
#这些都是他返回的值,因为太多没有列全
12:01:43 mem_used agent_hostname=node1 667467776
12:01:43 mem_commit_limit agent_hostname=node1 3063525376
12:01:43 mem_high_free agent_hostname=node1 0
12:01:43 mem_vmalloc_chunk agent_hostname=node1 0
12:01:43 mem_total agent_hostname=node1 1832091648
12:01:43 mem_buffered agent_hostname=node1 4096
12:01:43 mem_shared agent_hostname=node1 28631040
12:01:43 mem_write_back_tmp agent_hostname=node1 0
12:01:43 mem_active agent_hostname=node1 381001728
12:01:43 mem_sreclaimable agent_hostname=node1 91746304
12:01:43 mem_cached agent_hostname=node1 626421760
12:01:43 mem_committed_as agent_hostname=node1 2669568000

此时我们就可以拿着这些指标去Prometheus WEB UI上去监控

Prometheus+Categraf的架构配置。categraf做为Prometheus的采集器_第5张图片

 如果后面对接Grafana平台,告警阈值也是根据categraf的指标来写的。

以上就是我部署的时候遇到的一些问题,希望对你们能够有所帮助。啊!拜拜。

你可能感兴趣的:(prometheus,grafana)