标题
《小鑫发现》之Prometheus+Grafana监控告警套装
介绍
最近遇到了问题,就是MySQL,Redis,MongoDB这类服务,遇到故障的时候,不能及时通知,和预警。这次就介绍一个当下比较流行的方案,并且集成起来还很方便,类似那种ServiceMesh的边车方案,那就是Prometheus。这类解决方案有很多,这个教程是我一目了然就看得懂的。
这套技术分别是Prometheus是时序性数据库,用于存储服务数据,Grafana是优秀的可视化界面,官方的样例json比较多,很方便。
版本和下载链接
- prometheus-2.24.0.linux-amd64.tar 下载地址
- grafana-7.3.6.linux-amd64.tar 下载地址
- alertmanager-0.21.0.linux-amd64.tar 下载地址
- mysqld_exporter-0.12.1.linux-amd64.tar 下载地址
- node_exporter-1.0.1.linux-amd64.tar 下载地址
- redis_exporter-v1.15.1.linux-amd64.tar 下载地址
本次搭建环境是Linux的服务器,上面已经安装好了Redis,MySQL服务,所以这类的服务的安装就略过,根据自己的场景去选择。
准备环境
服务器创建两个文件,别问为啥,个人喜好
Prometheus文件夹里存的是
node_exporter文件夹里存的是
不懂的,可以先按照我这个创建文件目录。解压的命令tar -zxvf
构建Prometheus
配置
解压 tar -zxvf ./prometheus-2.24.0.linux-amd64.tar.gz
配置文件 vim ./prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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']
运行
启动命令 ./prometheus --web.enable-lifecycle
–web.enable-lifecycle 命令是开启热部署,方便后面更新配置
效果
输入地址127.0.0.1:9090 查看效果
一般都是看targets,然后可以看到Endpoint里有本机的状态,是up,表示正常启动了(其他几个红的,因为是我之前构造的配置,已经保存,所以就有信息了,初次