grafana + prometheus搭建服务器监控系统(一)---安装、配置

一、Grafana介绍

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:

  1. 展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
  2. 数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
  3. 通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
  4. 混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
  5. 注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
  6. 过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

二、prometheus介绍

Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

  1. 多维度数据模型
    每一个时间序列数据都由metric度量指标名称和它的标签labels键值对集合唯一确定:这个metric度量指标名称指定监控目标系统的测量特征(如:http_requests_total- 接收http请求的总计数)。labels开启了Prometheus的多维数据模型:对于相同的度量名称,通过不同标签列表的结合, 会形成特定的度量维度实例。(例如:所有包含度量名称为/api/tracks的http请求,打上method=POST的标签,则形成了具体的http请求)。这个查询语言在这些度量和标签列表的基础上进行过滤和聚合。改变任何度量上的任何标签值,则会形成新的时间序列图。
  2. 灵活的查询语言(PromQL):可以对采集的metrics指标进行加法,乘法,连接等操作;
  3. 可以直接在本地部署,不依赖其他分布式存储;
  4. 通过基于HTTP的pull方式采集时序数据;
  5. 可以通过中间网关pushgateway的方式把时间序列数据推送到prometheus server端;
  6. 可通过服务发现或者静态配置来发现目标服务对象(targets)。
  7. 有多种可视化图像界面,如Grafana等。
  8. 高效的存储,每个采样数据占3.5 bytes左右,300万的时间序列,30s间隔,保留60天,消耗磁盘大概200G。
  9. 做高可用,可以对数据做异地备份,联邦集群,部署多套prometheus,pushgateway上报数据

三、前期准备

我将搭建三个虚拟机,一台安装grafana、prometheus,用作监控汇总展示的主机,其它两台是被监控的,上面会按需安装prometheus的exporter。

  • oracle vm virtualbox 创建虚拟机
  • cmder 命令行工具
  • centos7

创建虚拟机以及配置网络的过程这里就不赘述了

四、grafana下载安装

grafana官网 查找最新版本的grafana安装包

grafana下载链接

登录服务器1,按你喜好找一个安装grafana的目录,我是在根目录下的packages文件夹中安装

cd /packages
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.3-1.x86_64.rpm
yum install grafana-enterprise-8.3.3-1.x86_64.rpm
// 设置grafana为开机自启
systemctl daemon-reload  // 加载新的systemd配置
systemctl enable grafana-server  // 设置开机自启
systemctl start grafana-server  // 启动grafana
systemctl status grafana-server  // 查看进程启动状态

grafana启动默认会占用3000端口,可以在浏览器通过ip:3000的方式打开grafana管理界面
如果打不开,可能是防火墙没有开放3000端口

// 加上--permanent会永久开启
firewall-cmd --zone=public --add-port=3000/tcp --permanent
// 开启后要重启防火墙
firewall-cmd --reload
// 查看已开放的端口
firewall-cmd --zone=public --list-ports
grafana首页

五、prometheus下载安装

prometheus官网 查找prometheus的最新包地址

prometheus下载页

// 在/packages目录下
wget https://github.com/prometheus/prometheus/releases/download/v2.33.0-rc.0/prometheus-2.33.0-rc.0.linux-amd64.tar.gz
// 下载得到prometheus-2.33.0-rc.0.linux-amd64.tar.gz文件
tar xvfz prometheus-2.33.0-rc.0.linux-amd64.tar.gz
// 解压得到prometheus-2.33.0-rc.0.linux-amd64文件夹,用mv命令改个简单的名字
mv prometheus-2.33.0-rc.0.linux-amd64 prometheus

下一步,进入prometheus文件夹,修改prometheus.yml文件

# 这是官网上提供的最简配置
global:
  scrape_interval:     15s
  evaluation_interval: 15s

rule_files:
  # - "first.rules"
  # - "second.rules"

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']

设置prometheus开机自启

// 创建文件 /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System

[Service]
ExecStart=/packages/prometheus/prometheus \
  --config.file=/packages/prometheus/prometheus.yml \
  --web.listen-address=:9090

Restart=on-failure
[Install]
WantedBy=multi-user.target
// packages/prometheus 是我prometheus的安装路径,可以按需修改
systemctl daemon-reload  // 加载新的systemd配置
systemctl enable prometheus  // 设置开机自启
systemctl start prometheus  // 启动prometheus
systemctl status prometheus  // 查看启动状态

在yml文件中可以配置占用的端口号,记得在防火墙设置放开该端口,我的是9090
可以通过ip:9090的方式在浏览器中打开prometheus的管理界面


prometheus首页

六、安装node-exporter

在被监听的linux机器上安装node_exporter,可以监控服务器CPU、内存、磁盘、I/O等信息。node_exporter的作用是用于机器系统数据收集。
和其他exporter一样,node_exporter提供http接口提供数据,prometheus会隔段时间调接口拉取数据汇总。

在需要监控的机器的根目录,创建/packages文件夹
prometheus官网 查找node_exporter的最新包地址

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64 node_exporter

将node_exporter加入开机自启

// 创建文件 /etc/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://github.com/prometheus/node_exporter

[Service]
ExecStart=/packages/node_exporter/node_exporter
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload  // 加载新的systemd配置
systemctl enable node_exporter// 设置开机自启
systemctl start node_exporter // 启动node_exporter
systemctl status node_exporter // 查看启动状态

可以访问ip:9100,确定是否运行成功(记得在防火墙开放端口)


node_exporter启动成功

为prometheus添加监控项(装了prometheus的主机)

// 编辑prometheus.yml文件,添加下面部分
# node_exporter监听主机信息
  - job_name: "node_info"
    static_configs:
      - targets: ['172.20.10.7:9100']
        labels:
          app: node2
          hostname: node2
          role: node
      - targets: ['172.20.10.8:9100']
        labels:
          app: node3
          hostname: node3
          role: node
// 注意这个ip是启用了node_exporter的服务器地址,大家可以按需填写,命名也是自定义的
// 重启prometheus
systemctl restart prometheus

此时,在prometheus管理界面就可以找到新增的target了


添加target成功

在grafana管理界面添加prometheus为数据源datasource
在grafana管理界面添加node_exporter的dashboard模板(id 8919)
然后就可以看到被监控服务器的图表信息了


dashboard截图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容