prometheus的特点
和其他监控系统相比,普罗米修斯的特点包括:
- 多维数据模型(时序列数据由度量名和一组键/值组成)
- 在多维度上灵活的查询语言(PromQl)
- 不依赖分布式存储,单主节点工作。
- 通过基于HTTP的拉方式采集时序数据
- 可以通过中间网关进行时序列数据推送(推压)
- 目标服务器可以通过发现服务或者静态配置实现
- 多种可视化和仪表盘支持
prometheus相关组件
普罗米修斯生态系统由多个组件组成,其中许多是可选的:
- Prometheus主服务,用来抓取和存储时序数据
- 客户端库用来构造应用程序或出口代码(go,java,python,ruby)
- 推网络可用来支持短连接任务
- 可视化的仪表板(两种选择,promdash和grafana。目前主流选择是grafana。)
- 一些特殊需求的数据出口(用于HAProxy,StatsD,Graphite等服务)
- 实验性的报警管理端(alartmanager,单独进行报警汇总,分发,屏蔽等)
prometheus的各个组件基本都是用golang编写,对编译和部署十分友好。并且没有特殊依赖。基本都是独立工作。
我们是通过grafana web直观监控alertmanager实时预警
介绍完我们开始安装
https://prometheus.io/download/
下载相对应的版本
下载完解压
tar -zvxf prometheus-2.2.1.linux-amd64.tar.gz
修改promtheus.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).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# 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'.
metrics_path: '/prometheus'
static_configs:
- targets: ['localhost:9090']
配置完 然后启用
nohup ./prometheus --config.file=prometheus.yml &
然后访问 :http://ip:9090
部署grafana
$ wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm
$ sudo yum install initscripts fontconfig
$ sudo rpm -Uvh grafana-4.4.3-1.x86_64.rpm
启动服务
service grafana-server start
http://ip:3000 默认账号和密码 admin/admin配置web页面
部署alertManager
prometheus 官网下载 alertmanager-0.15.0-rc.1.linux-amd64.tar.gz
tar zxvf alertmanager-0.15.0-rc.1.linux-amd64.tar.gz
刚解压的时候可能alert.yml 直接复制simple.yml就行
global:
smtp_smarthost: 'smtp.qq.com:465'
smtp_from: '[email protected]'
smtp_auth_username: '[email protected]'
smtp_auth_password: 'XX'#是授信码 而不是密码
smtp_require_tls: false
templates:
#你的tmpl地址
- '/usr/local/alertmanager-0.15.0-rc.1.linux-amd64/template/*.tmpl'#路由配置
route:
group_by:['alertname','cluster','service']
group_wait:30s
group_interval:30s
#间隔发送时间
repeat_interval:1m
接收方:接收
方接收方:
- 名称:'接收方'
email_configs:
- 至:
'[email protected]'webhook_configs:#http请求
send_resolved:true
网址:“XX”
配置完就可以启动
nohup ./alertmanager --config.file =。/ alert.yml&
今天就先写到这个后期会更新监控项目