• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

yxchun

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Prometheus实现 Linux可视化监控

效果展示:

当前系统UBuntu 

需要安装prometheus和插件node_exporter、Grafana、Alertmanager 、blackbox_exporter、pushgateway

prometheus:

Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控;

Alertmanager :

警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在 Prometheus 定义,警报规则触发以后,才会将信息转发到给独立的组件 Alertmanager ,经过 Alertmanager r对警报的信息处理后,最终通过接收器发送给指定用户,另外在 Alertmanager 中没有通知组的概念,只能自己对软件重新Coding,或者使用第三方插件来实现。

blackbox_exporter:

Blackbox Exporter是Prometheus社区提供的官方黑盒监控解决方案,其允许用户通过:HTTP、HTTPS、DNS、TCP以及ICMP的方式对网络进行探测。用户可以直接使用go get命令获取Blackbox Exporter源码并生成本地可执行文件:go get prometheus/blackbox_exporter

pushgateway:

Pushgateway 是 Prometheus 生态中一个重要工具,使用它的原因主要是:

  • Prometheus 采用 pull 模式,可能由于不在一个子网或者防火墙原因,导致 Prometheus 无法直接拉取各个 target 数据。
  • 在监控业务数据的时候,需要将不同数据汇总, 由 Prometheus 统一收集。

node_exporter:

在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据
Grafana:

查询、可视化和理解数据,并获取数据警报,无论数据存储在何处。在 Grafana,都可以通过美观、灵活的数据面板创建、探索和共享所有数据。

实现步骤:

1、下载prometheus、node_exporter、Alertmanager 、blackbox_exporter、pushgateway 

地址:https://prometheus.io/download/

2、解压安装包

#创建文件夹
> mkdir /data
> mkdir /app
# 将压缩包全部上传到data中
# 将data的压缩包统一解压到app文件夹中
> for i in `ls`; do tar xf $i -C /app ;done
# 将名称简写
> cd /app
> for i in `ls`; do mv $i `echo $i | cut -d'-' -f1`; done

 

3、开启prometheus

 promeheus直接执行是前台运行的,所以这里启动需要用nohup ./prometheus & 启动后,Prometheus UI默认运行在9090端口。浏览器可以直接打开访问,无账号密码验证

> cd  /app/prometheus
> nohup ./prometheus &

访问http://IP地址:9090/

如果访问不通,查看防火墙是否关闭,可直接关闭防火墙,也可将9090端口加入到防火墙

#查看防火墙状态
》systemctl status firewalld
#将9090端口加入防火墙
》firewall-cmd --add-port=9090/tcp --permanent
#重载入添加的端口
》firewall-cmd --reload
#查询指定端口是否开启成功
>firewall-cmd --query-port=9090/tcp

4、Prometheus利用node_exporter监控其他节点

在 Prometheus 的架构设计中,Prometheus Server 并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够监控到更多信息,如主机的 CPU 使用率等,我们需要使用到 node_exporter。Prometheus 周期性的从 Exporter 暴露的 HTTP 服务地址(通常是 /metrics)拉取监控样本数据。

> cd /app/node_exporter
> cp node_exporter /usr/lcoal/bin
#启动node_exporter
> ./node_exporter &
#
默认端口是9100,指定其他端口
 >nohup ./node_exporter --web.listen-address=:7100 &

node_exporter端口为9100,访问 http://IP地址:9100/metrics (node 节点)查看抓取内容

5、将node_exporter 配置到Prometheus

> cd /app/Prometheus/
> vim prometheus.yml
# 在配置文件中加入node节点

 

重启prometheus,查看node_exporter是否加入成功

# kill prometheus
> ps -ef | grep prometheus
> kill 进程号
#启动
> cp /app/prometheus 
> nohup ./prometheus &

进入targets

 node_exporter的状态为up,node_exporter配置到prometheus成功

6、安装Grafana

#获取grafana
> wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.4.3-1.x86_64.rpm
# 安装grafana
> rpm  install grafana-enterprise-9.4.3-1.x86_64.rpm --force --nodeps
> systemctl enable grafana-server && systemctl start grafana-server
> netstat -nuptl|grep 3000

浏览器访问 http://IP:3000,默认账号密码:admin admin

7、为grafana添加数据源

 8、Import via grafana.com

 输入端口8919的,点击load

 查看仪表

 

 数据展示

 数据时间根据时间段查看

 可选:将grafana配置到prometheus

 

 步骤:

1)
> cd /app/prometheus > vim prometheus.yml
2)

 

3) 重启prometheus
> ps -ef | grep prometheus
> kill 进程ID
> cd /app/prometheus
> nohup ./prometheus &

 

posted on 2023-07-21 13:31  yxchun  阅读(285)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3