发布时间:2020-03-23
浏览次数:404
监控系统在一家公司是尤為(wèi)重要的,它能(néng)帮你在7x24小(xiǎo)时的实时的关注線(xiàn)上服務(wù)器的运行情况,当有(yǒu)问题的时候第一时间通知给相应的人员今天说下我们的主角就是我们prometheus+grafana+node_exporter
Prometheus介绍
Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作為(wèi)社區(qū)开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成為(wèi)受欢迎度仅次于 Kubernetes 的项目。
Prometheus作為(wèi)TSDB具有(yǒu)以下特点:
具有(yǒu)由指标名称和键/值对标识的时间序列数据的多(duō)维度数据模型。PromQL灵活的查询语言。不依赖分(fēn)布式存储,单个服務(wù)器节点是自主的。通过基于HTTP的pull方式采集时序数据。可(kě)以通过中间网关(Pushgateway)进行时序列数据推送。通过服務(wù)发现或者静态配置来发现目标服務(wù)对象。支持多(duō)种多(duō)样的图表和界面展示,比如Grafana等。
Prometheus的安装
下载二进制安装包
wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz
解压prometheus压缩包
$ tar zxvf prometheus-2.16.0.linux-amd64.tar.gz -C /usr/local/prometheus
添加prometheus 用(yòng)户
$ groupadd prometheus$ useradd -g prometheus -s /sbin/nologin prometheus
创建prometheus 启动文(wén)件
cat > /usr/lib/systemd/system/prometheus.service << EOF[Unit]Description=PrometheusDocumentation=https://prometheus.io/After=network.target[Service]Type=simpleUser=prometheusExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheusRestart=on-failure[Install]WantedBy=multi-user.targetEOF
启动服務(wù)并设為(wèi)开机启动
$ systemctl start prometheus$ systemctl enable prometheus
以下為(wèi)一个简单的prometheus.yml示例:
# Prometheus全局配置项global: scrape_interval: 15s # 设定抓取数据的周期,默认為(wèi)1min evaluation_interval: 15s # 设定更新(xīn)rules文(wén)件的周期,默认為(wèi)1min scrape_timeout: 15s # 设定抓取数据的超时时间,默认為(wèi)10s external_labels: # 额外的属性,会添加到拉取得数据并存到数据库中 monitor: 'codelab_monitor'# Alertmanager配置alerting: alertmanagers: - static_configs: - targets: ["localhost:9093"] # 设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口# rule配置,首次读取默认加载,之后根据evaluation_interval设定的周期加载rule_files: - "alertmanager_rules.yml" - "prometheus_rules.yml"# scrape配置scrape_configs:- job_name: 'prometheus' # job_name默认写入timeseries的labels中,可(kě)以用(yòng)于查询使用(yòng) scrape_interval: 15s # 抓取周期,默认采用(yòng)global配置 static_configs: # 静态配置 - targets: ['localhost:9090'] # prometheus所要抓取数据的地址,即instance实例项 - job_name: 'node_exporter' # job_name默认写入timeseries的labels中,可(kě)以用(yòng)于查询使用(yòng) scrape_interval: 15s # 抓取周期,默认采用(yòng)global配置 static_configs: # 静态配置 - targets: ['localhost:9100'] # prometheus所要抓取数据的地址,即instance实例项
安装 node_exporter
RHEL/CentOS
$ curl -Lo /etc/yum.repos.d/_copr_ibotty-prometheus-exporters.repo https://copr.fedorainfracloud.org/coprs/ibotty/prometheus-exporters/repo/epel-7/ibotty-prometheus-exporters-epel-7.repo$ yum install node_exporter$ systemctl start node_exporter
配置grafana
1.添加 prometheus 数据源

导入node_exporter 模板 
接下来就能(néng)看到实际的效果了,今天只给大家简单的介绍一下,接下来会為(wèi)大家详细的介绍,prometheus 的语法 自动发现 告警 以及怎么实现数据的長(cháng)时间存储。