第二十三(平台):Centos7.X 搭建Prometheus+node_exporter+Grafana实时监控平台 1.监控目标可以采用服务发现或静态配置的方式2.支持多种DashBoard图形化友好一.核心组件1.PrometheusServer主要用于抓取数据和存储时序数据另外还提供查询和AlertRule配置管理2.client libraries用于对接PrometheusServer,可以查询和上报数据3.push gateway用于批量短期的监控数据的汇总节点主要用于业务数据汇报4.各种汇报数据的exporters汇报机器数据的node_exporter,汇报MongoDB信息的MongoDBexporter等等5.用于告警通知管理的alertmanager二.基础架构1.主要模块包含Server,Exporters,Pushgateway,PromQL,Alertmanager,WebUI等1.1.PrometheusServer主要是负责存储、抓取、聚合、查询方面1.2.Alertmanager主要是负责实现报警功能1.3.Pushgateway 主要是实现接收由Clientpush过来的指标数据在指定的时间间隔由主程序来抓取1.4.exporter数据采样器三.学习参考网站1.技术大牛博客 https://www.k8stech.net/2.中文技术文档https://www.prometheus.wang/visualiztion/grafana.html四.Prometheusnode_exporterGrafana资源监控架构图五.Centos7.x安装Prometheus1.下载安装PrometheusPROM_PATH/data/prometheus mkdir-p ${PROM_PATH}mkdir-p ${PROM_PATH}/{data,conf,logs,bin}useradd prometheus cd/usr/local/src wget https://github.com/prometheus/prometheus/releases/download/v2.13.0/prometheus-2.13.0.linux-amd64.tar.gz tar-xvf prometheus-2.13.0.linux-amd64.tar.gz cd prometheus-2.13.0.linux-amd64/cp prometheus promtool ${PROM_PATH}/bin/cp prometheus.yml ${PROM_PATH}/conf/chown-Rprometheus.prometheus/data/prometheus #SettingVariablescat/etc/profileEOFPATH/data/prometheus/bin:$PATH:$HOME/binEOF2.将Prometheus配置系统服务cat/etc/systemd/system/prometheus.serviceEOF[Unit]DescriptionPrometheusDocumentationhttps://prometheus.io/Afternetwork.target[Service]TypesimpleUserprometheusExecStart/data/prometheus/bin/prometheus--config.file/data/prometheus/conf/prometheus.yml--storage.tsdb.path/data/prometheus/data--storage.tsdb.retention90dRestarton-failure[Install]WantedBymulti-user.targetEOF3.现在使用下面的systemctl命令重新加载systemd系统并查看服务是否启动systemctl daemon-reload systemctl enable prometheus.service systemctl start prometheus.service systemctl status prometheus.servic4.查看端口是否正常netstat-plntu|grep90905.这里需要放行9090端口也可以直接关闭防火墙systemctl stop firewalld systemctl status firewall6.访问http://IP:9090出现下图就是成功了六.Centos7.x安装Node_exporter1.下载安装Node_exporterNODE_PATH/data/prometheus/node_exporter/ cd/usr/local/src/mkdir-p ${NODE_PATH}wget https://github.com/prometheus/node_exporter/releases/download/v0.18.0/node_exporter-0.18.0.linux-amd64.tar.gz tar-xvf node_exporter-0.18.0.linux-amd64.tar.gzcp node_exporter-0.18.0.linux-amd64/node_exporter ${NODE_PATH}chown-Rprometheus.prometheus ${NODE_PATH}2.配置Node_exporter系统服务cat/lib/systemd/system/node_exporter.serviceEOF[Unit]Descriptionnode_exporterDocumentationhttps://prometheus.io/Afternetwork.target[Service]TypesimpleUserprometheusExecStart/data/prometheus/node_exporter/node_exporterRestarton-failure[Install]WantedBymulti-user.targetEOF3.现在使用下面的systemctl命令重新加载systemd系统并查看服务是否启动systemctl daemon-reload systemctl enable node_exporter.service systemctl start node_exporter.service systemctl status node_exporter.service4.查看端口是否正常netstat-plntu|grep91005.这里需要放行9100端口5.1.访问http://IP:9100/metrics如果出现下图就成功啦七.配置prometheus.yml1.如果是跟着我的安装步骤走的话它的路径是/data/prometheus/conf# my global config global:scrape_interval:15s #Setthe scrape intervaltoevery15seconds.Defaultis every1minute.evaluation_interval:15s #Evaluaterules every15seconds.Thedefaultis every1minute.# scrape_timeout is settotheglobaldefault(10s).#Alertmanagerconfiguration alerting:alertmanagers:-static_configs:-targets:#-alertmanager:9093#Loadrules once and periodically evaluate them accordingtotheglobal evaluation_interval.rule_files:#-first_rules.yml#-second_rules.yml#Ascrape configuration containing exactly one endpointtoscrape:#HereitsPrometheusitself.scrape_configs:#Thejob name is added as a label jobjob_nametoanytimeseries scraped fromthisconfig.-job_name:prometheus # metrics_path defaultsto/metrics # scheme defaultstohttp.static_configs:-targets:[localhost:9090]# 主要是新增了node_exporter的job如果有多个node_exporter在targets数组后面加即可-job_name:node_exporter static_configs:-targets:[localhost:9100]八.配置Grafana1.安装Grafana博客https://www.cnblogs.com/poloyy/p/12219145.html2.如果读取失败请务必检查prometheus和Node_exporter是否有安装成功通过访问9090和9100端口的网址来判断即可