700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Grafana + prometheus在Centos搭建服务器监控系统(一)---安装 配置

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

时间:2022-05-20 19:03:16

相关推荐

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

一、Grafana介绍

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

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

二、prometheus介绍

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

多维度数据模型

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

三、前期准备

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

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

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

四、grafana下载安装

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

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

cd /data/programwget /enterprise/release/grafana-enterprise-8.4.3-1.x86_64.rpmyum install grafana-enterprise-8.4.3-1.x86_64.rpm// 设置grafana为开机自启systemctl daemon-reload // 加载新的systemd配置systemctl enable grafana-server // 设置开机自启systemctl start grafana-server // 启动grafanasystemctl 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 /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 SystemDocumentation=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 // 启动prometheussystemctl 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 /prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gztar xvfz node_exporter-1.3.1.linux-amd64.tar.gzmv node_exporter-1.3.1.linux-amd64 node_exporter

将node_exporter加入开机自启

// 创建文件 /etc/systemd/system/node_exporter.service[Unit]Description=node_exporterDocumentation=/prometheus/node_exporter[Service]ExecStart=/data/program/node_exporter/node_exporterRestart=on-failure[Install]WantedBy=multi-user.target

systemctl daemon-reload // 加载新的systemd配置systemctl enable node_exporter// 设置开机自启systemctl start node_exporter // 启动node_exportersystemctl 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的服务器地址,大家可以按需填写,命名也是自定义的

// 重启prometheussystemctl restart prometheus

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

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

点击下方Save&test

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

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

选择要展示的数据项

保存

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。