一、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的目录,我是在根目录下的/data/program文件夹中安装

cd /data/program
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.4.3-1.x86_64.rpm
yum install grafana-enterprise-8.4.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

界面如下,默认登陆账号密码都是:admin

五、prometheus下载安装

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

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

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

# 这是官网上提供的最简配置
global:scrape_interval:     15sevaluation_interval: 15srule_files:# - "first.rules"# - "second.rules"scrape_configs:- job_name: prometheusstatic_configs:- targets: ['localhost:9090']

设置prometheus开机自启

// 创建文件 /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System[Service]
ExecStart=/data/program/prometheus/prometheus \--config.file=/data/program/prometheus/prometheus.yml \--web.listen-address=:9090Restart=on-failure
[Install]
WantedBy=multi-user.target
// data/program/prometheus 是我prometheus的安装路径,可以按需修改
systemctl daemon-reload  // 加载新的systemd配置
systemctl enable prometheus  // 设置开机自启
systemctl start prometheus  // 启动prometheus
systemctl status prometheus  // 查看启动状态

在yml文件中可以配置占用的端口号,记得在防火墙设置放开该端口,我的是9090
可以通过ip:9090的方式在浏览器中打开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=/data/program/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,确定是否运行成功(记得在防火墙开放端口)

为prometheus添加监控项(装了prometheus的主机),我是在一台机器配置的下方targets我只留了一个,多台服务器的可以配置多个targets

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

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

在grafana管理界面添加prometheus为数据源datasource

点击下方Save&test

 成功后列表会多出一个配置

在grafana管理界面添加node_exporter的dashboard模板(id 8919)

选择要展示的数据项

保存

点击右上角Save保存,命名。

 
然后就可以看到被监控服务器的图表信息了

Grafana + prometheus在Centos搭建服务器监控系统(一)---安装、配置相关推荐

  1. 技术分享 | 使用 Zabbix + Grafana 搭建服务器监控系统

    搭建 Linux 服务器监控的目的是防止以下现象:自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高,最终导致服务器卡死. 所以基于这个痛点,想知道当前的 C ...

  2. monit 内存 监控_如何借助Monit搭建服务器监控系统?(1)

    许多Linux管理员依赖一种集中式远程监控系统(比如Nagios或Cacti),检查网络基础设施的健康状况.虽然集中式监控系统为管理员在处理许多主机和设备时简化了工作,但专用的监控设备显然成了单一故障 ...

  3. cacti config.php,cacti监控系统的安装配置

    1.cacti简介 1).cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户. ...

  4. Telegraf+InfluxDB+Grafana搭建服务器监控平台

    Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...

  5. GPE服务器监控系统搭建

    GPE服务器监控系统搭建 使用 Prometheus + Grafana + Exporter 监控服务器的运行状态 相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing, ...

  6. 普罗米修斯监控系统_一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式...

    前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...

  7. Prometheus( 普罗⽶修斯) 监控系统----介绍安装、Grafana出图

    Promethus(普罗⽶修斯)监控系统 能够安装prometheus服务器 能够通过安装node_exporter监控远程linux 能够通过安装mysqld_exporter监控远程mysql数据 ...

  8. Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql

    Telegraf+InfluxDB+Grafana快速搭建实时监控系统  监控postgresql 转载于:https://www.cnblogs.com/gaoyuechen/p/10081026. ...

  9. 不用羡慕BAT,自己手工也能搭建伪基站监控系统

    本文讲的是不用羡慕BAT,自己手工也能搭建伪基站监控系统,编者按:伪基站是个很烦人的东西.基于海量移动终端用户,近两年BAT3在国内搭建了强大的伪基站监控系统,在打击犯罪上贡献不少.这篇文章中,作者将 ...

最新文章

  1. java thread.await_使用Thread.Sleep进行等待的替代方法
  2. @MySQL为表字段添加索引
  3. ESP8266的网状网络(Mesh Network)
  4. 笔记-计算机网络基础-5G
  5. Git内部原理之深入解析Git对象
  6. java 中random类使用_Java中的天使和魔鬼:Unsafe类
  7. 【Numpy学习记录】np.transpose讲解
  8. 操作html标签之找到标签(续)
  9. Spring Data Solr教程:动态查询
  10. File System Auditor 安装全程截图
  11. 前端进阶必备技能:Vue中如何定制动画效果
  12. android 自定义dialog 定时关闭,Android 快速实现自定义 Dialog
  13. C 语言怎么可能被淘汰呢?
  14. html color 转换,Color颜色转换的三种方式(c#)
  15. 淘宝全屏代码天猫首页全屏代码不显示全屏怎么做设置自适应通栏990布局 全屏代码1920
  16. facade设计模式学习(作者:KiddLee 来源:博客园  酷勤网收集 2007-09-03)
  17. MySQL函数计算24小时平均浓度对应的IAQI和AQI
  18. 创宇区块链|Inverse Finance 安全事件分析
  19. 【C语言】消失的数字
  20. html5设置单元格行高,单元格的行高怎么设置 EXCEL文档怎么统一设置行高

热门文章

  1. 一次设计演进之旅 | 张逸
  2. oracle sql下划线,oracle通配符?oracle like 下划线?oracle escape用法?通配符like的使用教程...
  3. mysql 栅格数据结构_图解Mysql索引的数据结构!看不懂你来找我
  4. 小红书笔记打开显示连接不到服务器,小红书笔记看不到全文怎么回事啊?怎么发布小红书笔记?...
  5. python基本类型的定义
  6. UEFI装系统不能从U盘启动的解决办法
  7. python中parse是什么意思_python的urlparse
  8. 特斯拉中国工厂普通工人月薪1万块;OpenAI招聘移动工程师,手机或成AI新入口;Fuchsia F10发布|极客头条
  9. 支付宝推出轻会员,先享优惠再结算。
  10. java 判断字符串中是否包含emoj表情及过滤