第一讲中我们已经让我们的Prometheus跑起来了,但是你应该还不清楚Prometheus如何去监控?如何去使用它?其实简单来说,prometheus就是一个数据库,处理你的监控数据,这种数据是Prometheus自己特有的时序数据,什么是时序数据呢?通俗的讲,就是随时间变化的数据,在坐标系上反映出来就是,x坐标是时间,纵轴Y是数据的值。
所以你现在大概明白了,Prometheus其实就是时序数据库,会定时去采集数据,然后保存下来。那么Prometheus是怎么采集数据的呢?这就是今天的内容,Prometheus通过expoter去采集数据,通过pull的方式去拉取数据,所以我们只需要在你的被监控主机上装上expoter,再打通两者之间的网络,Prometheus就可以采集到数据。
通常我们的监控会监控很多东西,比如主机的监控,服务监控,网络监控等等,这些其实大部分都有exporter,官方开发的或者第三方开发的,总之,你需要先装一个exporter,这里我们以最基础的主机监控为例,先装一个最基础的exporter。
1.依旧是官网,https://prometheus.io/download/ 找到node_exporter 下载
可以看到官网没有提供win的exporter,如果要监控win主机,可以前往github:https://github.com/prometheus-community/windows_exporter 下载win的exporter
建议下载windows_exporter-0.16.0-amd64.msi,安装完会自动注册为win服务。
2.上传exporter到你的被监控主机,这里我以本机为例,node_exporter和Prometheus装一起。
3.启动node_exporter nohup ./node_exporter &
这里报错了listen tcp :9100: bind: address already in use
也就是9100端口被使用了。命令netstat -lntp | grep 9100可以看到9100端口被nginx占用了
4.这里我就不以本台主机为例了。exporter启动以后,我们的Prometheus如何得知exporter的信息呢?那就需要在prometheus.yml里面配置exporter的ip:端口,这样服务端就可以去pull exporter的数据了。
5.用vim打开prometheus的配置文件如下图
可以看到总共分为了4个部分,第一部分是全局配置,第二步是alertmanager的配置,第三部分是告警规则的配置,第四部分是我们需要配置的exoprter的部分。这里你可以重新建一个你的job作为一个组,下面target就是你的主机ip:端口,填写exporter的信息。
可以看到Prometheus默认自监控了本机- targets: ['localhost:9090']
6.这是添加了exporter的配置文件,新增了一个已经装了node_exporter的节点。
7.重启Prometheus让设置生效。当然Prometheus还有热加载的方式,这里暂且不说。
8.访问Prometheus的前端页面,发现这个节点已经被监控上了。
state:up 代表这个节点是正常的,如果有问题,这里的状态是down