工作记录
今天是2021年7月26日,星期一
度过一个双休,周一感觉精神饱满,元气爆棚😎
任务清单
前面的学习给我积累了很多的知识,今天的任务很快就解决啦。果然,最开心的事莫过于在下班前圆满完成任务🥳
- 将监控系统由本地移植到服务器上,实现服务器自己监控自己;
- 将监控系统持久化运行,即退出远程登录后,程序还可以一直运行;
- 要把监控系统做成直接输入IP地址加端口号就可访问的形式(公网自由访问);
- 基于上面基础,实现两个服务器间的监控,并可在公网中自由访问
任务记录
ps:在非同一局域网的条件下以实现单一服务器自我监控
这个小任务其实是在昨天,也就是上周天7月25日我就给解决了,在这里先简要记录一下
错误示范🙅♂️:考虑到这是一个跨局域网的操作,结合周五与师哥的讨论,想到的方案是修改nginx相关配置,毕竟网页报错码为502,在html配置方面在下下功夫,尝试了一下,总感觉不像是nginx方面的问题,毕竟我相信既然prometheus系统可以被大家认可,一定会考虑到这种跨局域网的情况(只能在局域网里监控,还是本地监控本地进程,那还监控个锤子🔨呀)。于是乎,我又与官方文档见面了。。。
正确示范🙆♂️:干找也找不到呀,终于在一篇讲监控多个Kubernetes集群的博客里找到了灵感,并且在博主提供的官方文档里面解决了问题
启发文章:如何使用Prometheus和Grafana监控多个Kubernetes集群
官方配置文档:federate
简要总结一下官方配置文档:
修改作为监控主机的prometheus.yml配置文件,在默认配置下添加一个新的“job”,取名“federate”
配置文件如下所示:
global:
scrape_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
scrape_interval: 5s
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="substrate_node"}'
- '{__name__=~"job:.*"}'
# job一般取名为你要监控的服务器的具体进程的job_name
static_configs:
- targets:
- '45.76.159.150:9090'
# targets后接被监控的服务器的IP加9090端口号,可接多个IP:9090
当然,被监控服务器也要安装prometheus,并且还要修改其prometheus.yml的配置:
# -- snip --
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'your_job'
# 添加被监控进程的job
scrape_interval: 5s
static_configs:
- targets: ['localhost:xxxx']
# 填写被监控进程的端口号
配置完成后,两台服务器都要运行prometheus,同时实施监控的服务器还要运行Grafana,此时跨局域网的监控部署成功。
任务一:将监控系统由本地移植到服务器上以实现单一服务器自我监控
这个好办,有前车之鉴,分分钟搞定
安装prometheus, Grafana,并进行配置
任务二:监控系统持久化运行
这个问题查阅了一部分博客文章以及与师哥简单交谈了一下
就目前而言,一般有两个常见的方法大家普遍采用,即nohup命令与screen命令,
nohup命令比较简单易用易记,因此我采用nohup命令
c语言中文网:Linux nohup命令:后台命令脱离终端运行
这篇文章总结还是比较到位的,值得借鉴学习
输入命令后台持续运行prometheus, Grafana, node-template:
nohup ./prometheus --config.file prometheus.yml &
nohup ./grafana-server web &
nohup ./target/release/node-template --dev --tmp &
# 此三个命令需要在对应文件夹中输入,此处不在赘述
任务三:公网自由访问
其实这个任务在昨天就已经解决了,我在用本地监控远程的Linux服务器时,就已经可以通过远程服务器的IP地址加端口号观察具体的抓取信息了
果不其然,输入IP可以正常访问
任务四:公网访问两台远程Linux服务器的监控系统
基于前三部的操作以及昨天的努力,可以轻松实现任务四
具体步骤都已经渗透到这几天的工作日志中啦
实现后大约这个样子🤩
Prometheus:
Grafana:
总结
开心,开始接手公司的服务器喽🥳🤩
一路走来,终于有点点小小的收获啦
等技术再成熟一点,我要写一篇用于监控区块链节点的监控系统的博客,到时候大家记得前去捧场呀🤗🤗