Prometheus(五):监控物理机并进行数据展示

目录

  • 1 ipmi export安装配置
    • 1.1 ipmi exporter简介
    • 1.2 安装
    • 1.2 创建yaml文件
    • 1.3 systemd启动配置 ipmi_exporter.service
    • 1.4 启动 ipmi_exporter 服务
    • 1.5 Prometheus配置
      • 创建target:
      • 修改Prometheus配置文件
    • 1.6 Grafana配置
    • 1.7 IPMI说明
      • 1、IPMI
      • 2、ipmitool
        • 远程电源管理
        • 远程引导
        • 读取系统状态类
        • 系统日志类
        • 启动设置类
        • 系统相关的命令
        • 网络接口相关命令
        • 通道相关命令
        • 看门狗相关命令
        • 用户管理相关命令

1 ipmi export安装配置

1.1 ipmi exporter简介

ipmi exporter是用来收集物理机信息的一个exporter,有两种收集方式,一种是安装在Prometheus server上,来进行远程收集,并把数据发送给Prometheus;另一种是安装在远程物理机上,收集单台服务器的信息发送给Prometheus。

前面提到使用 vmware exporter 收集VMware Vsphere的信息,主要是收集Vsphere上创建的虚拟机的信息等相关信息。如果想要监控 Vsphere 所在物理机是否宕机,则需要使用 impi exporter来监控

参考文档:
https://github.com/srkaviani/prometheus_exporters/tree/main/ipmi_exporter
https://github.com/prometheus-community/ipmi_exporter/tree/master
https://github.com/prometheus-community/ipmi_exporter/
ipmi exporter下载:https://github.com/prometheus-community/ipmi_exporter/releases
freeipmi参数文档:https://github.com/elitak/freeipmi

1.2 安装

注意

  • 1.此方法的ipmi exporter是安装在Prometheus server所在服务器上,来收集远程物理机的ipmi信息的
  • 2.此方法依赖freeipmi来收集ipmi信息

环境:

  • freeipmi:1.6.9
  • go:1.11.5(1.81未测试)
  • ipmi exporter:1.6.1(链接:https://github.com/prometheus-community/ipmi_exporter/releases/download/v1.6.1/ipmi_exporter-1.6.1.linux-amd64.tar.gz )
# 安装
# centos安装
# 安装freeipmi
yum -y install gcc libgcrypt-devel  
wget https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.9.tar.gz
tar -xvf freeipmi-1.6.9.tar.gz
cd freeipmi-1.6.9/
./configure
make
make install
# 建议安装
yum  -y install ipmitoolvim /etc/profile
export FREEIPMI_PATH=/usr/local/freeipmi/
export FREEIPMI_BIN=$FREEIPMI_PATH/sbin/
export PATH=$PATH:$FREEIPMI_BIN
source /etc/profile# Ubuntu安装
sudo find / -name freeipmi|xargs rm -rf
apt-get remove freeipmi
sudo dpkg --get-selections | grep freeipmi
sudo apt-get --purge remove  freeipmi
# 安装freeipmi
sudo apt update  
sudo apt -y install build-essential libgcrypt-dev
# 注意:Ubuntu22.04不使用libgcrypt11-dev,而是用libgcrypt-dev
# 不建议使用apt安装:sudo apt -y install freeipmi
wget -P /usr/local/src/ https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.9.tar.gz
cd /usr/local/src/
tar -xvf freeipmi-1.6.9.tar.gz
cd freeipmi-1.6.9/
./configure --prefix=/usr/local/freeipmi
make
make install
# 建议安装:
apt -y install ipmitool# go环境安装
wget -c https://storage.googleapis.com/golang/go1.11.5.linux-amd64.tar.gz
tar -C /usr/local/ -zxvf go1.11.5.linux-amd64.tar.gz # centos配置环境变量
vim /etc/profile.d/go.sh
export PATH=$PATH:/usr/local/go/bin
source /etc/profile.d/go.sh# Ubuntu配置环境变量
vim ~/.bashrc
export FREEIPMI_PATH=/usr/local/freeipmi
export PATH=$PATH:$FREEIPMI_PATH/sbin:/usr/local/go/bin
# 刷新使环境变量生效
source  ~/.bashrc# ipmi exporter安装
wget -P /usr/local/src/ https://github.com/prometheus-community/ipmi_exporter/releases/download/v1.6.1/ipmi_exporter-1.6.1.linux-amd64.tar.gz
cd /usr/local/src/
tar -zxf ipmi_exporter-1.6.1.linux-amd64.tar.gz
mv ipmi_exporter-1.6.1.linux-amd64 /usr/local/ipmi_exporter# freeipmi使用源码包安装后,可以做的测试:
ipmimonitoring -h xx.xx.xx.xx -u xxxx -p xxxx -a STRAIGHT_PASSWORD_KEY -l admin -D LAN_2_0
ipmimonitoring -h xx.xx.xx.xx -u xxxx -P -a STRAIGHT_PASSWORD_KEY -l admin -D LAN_2_0
bmc-info -h xx.xx.xx.xx -u xxxx -p xxxx -a STRAIGHT_PASSWORD_KEY -l admin -D LAN_2_0ipmitool -I lanplus -H xx.xx.xx.xx -U xxxx -P xxxx sensor get "CPU1 DTS"
ipmitool -I  lanplus -H xx.xx.xx.xx -U xxxx -P xxxx sol info
ipmitool -I  lanplus -H xx.xx.xx.xx -U xxxx -P xxxx dcmi power reading

freeipmi参数内容可参考文档:https://www.gnu.org/software/freeipmi/manpages/man5/freeipmi.conf.5.html
freeipmi的参数说明(不包括ipmitool,这些参数都可以

在/usr/local/freeipmi/etc/freeipmi/freeipmi.conf文件中设置):

  • -h:远程主机IP
  • -u:用户名
  • -p:密码
  • -P:回车后输入,不需要执行写在命令行里面
  • -a:输入密码的类型,支持:None、STRAIGHT_PASSWORD_KEY(输入正常的密码,无加密类型)、MD5、MD2
  • -l:权限级别,支持:USER, OPERATOR, ADMIN
  • -D:指定要使用的驱动程序类型。 当前可用的带外驱动程序是 LAN 和 LAN_2_0,它们 分别执行 IPMI 1.5 和 IPMI 2.0。当前可用的 带内驱动程序是KCS,SSIF,OPENIPMI,SUNMC和INTELDCMI。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1.2 创建yaml文件

官方文档ipmi_remote.yml地址:https://github.com/srkaviani/prometheus_exporters/blob/main/ipmi_exporter/ipmi_remote.yml

vim /usr/local/ipmi_exporter/ipmi_remote.yml
# 根据需要进行修改
modules:default:user: "xxxx"pass: "xxxx"driver: "LAN_2_0"privilege: "admin"timeout: 10000collectors:- bmc- ipmi- chassisexclude_sensor_ids:- 2- 29- 32- 50- 52- 55dcmi:# Use these settings when scraped with module=dcmi.user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN_2_0"collectors:- dcmithatspecialhost:# Use these settings when scraped with module=thatspecialhost.user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN"collectors:- ipmi- selworkaround_flags:- discretereadingcustom_args:ipmi:- "--bridge-sensors"advanced:# Use these settings when scraped with module=advanced.user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN"collectors:- ipmi- selcollector_cmd:ipmi: sudosel: sudocustom_args:ipmi:- "ipmimonitoring"sel:- "ipmi-sel"#  使用上述内容即可,下面的可以进行参考
modules:default:user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN_2_0"172.170.240.1:user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN_2_0"collectors:- bmc- ipmi- dcmi- chassis- selcustom_args:bmc:- "bmc-info"ipmi:- "ipmimonitoring"dcmi:- "ipmi-dcmi"chassis:- "ipmi-chassis"sel:- "ipmi-sel"

参数说明:
1.modules: cloudatlas模块配置,这里配置的是 IPMI 采集器。
2.default: 默认配置,这里包含了一些通用的参数。
3.user: IPMI 用户名。
4.pass: IPMI 密码。
5.privilege: IPMI 权限,这里设置为 “admin”,表示管理员权限。其他可能的权限包括 “user”(用户权限)和 “operator”(操作员权限)。
6.driver: IPMI 驱动,这里设置为 “LAN_2_0”,表示使用网络(LAN)驱动。其他可能的驱动包括 “sci”(串行接口)和 " virtueio"(虚拟化接口)。
7.collectors: 这个部分列出了要收集的数据项(metric collectors)。在这个例子中,配置了以下数据项:

  • bmc: 基础管理控制器(BMC)数据。
  • ipmi: IPMI 传感器数据。
  • dcmi: 直接核心内存接口(DCMI)数据。
  • chassis: 机箱数据。
  • sel: 系统事件日志(System Event Log)数据。
    注意:-D处如果不指定为LAN_2_0,可能会报错:authentication type unavailable for attempted privilege level

1.3 systemd启动配置 ipmi_exporter.service

systemd启动配置 /etc/systemd/system/ipmi_exporter.service

vim /etc/systemd/system/ipmi_exporter.service[Unit]
Description=ipmi_exporter
Wants=network-online.target
After=network-online.targetStartLimitIntervalSec=500
StartLimitBurst=5[Service]
User=root
Group=root
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/ipmi_exporter/ipmi_exporter \--config.file=/usr/local/ipmi_exporter/ipmi_remote.yml \--web.listen-address=0.0.0.0:9290 \--freeipmi.path=/usr/local/freeipmi/sbin/[Install]
WantedBy=multi-user.target

1.4 启动 ipmi_exporter 服务

systemctl daemon-reload
systemctl restart ipmi_exporter.service
systemctl enable --now ipmi_exporter
systemctl status ipmi_exporter.service

1.5 Prometheus配置

创建target:

#
mkdir /usr/local/prometheus/sd_file/ipmi
vim /usr/local/prometheus/sd_file/ipmi/ipmi_targets_240.yml- targets:- xx.xx.xxx.xx- xx.xx.xxx.xxlabels:job: ipmi_exporter_240

修改Prometheus配置文件

cat prometheus.yml- job_name: ipmi_exporter_240params:module: ['default']scrape_interval: 1mscrape_timeout: 30smetrics_path: /ipmischeme: httpfile_sd_configs:- files:- /usr/local/prometheus/sd_file/ipmi_targets_240.ymlrefresh_interval: 5mrelabel_configs:- source_labels: [__address__]separator: ;regex: (.*)target_label: __param_targetreplacement: ${1}action: replace- source_labels: [__param_target]separator: ;regex: (.*)target_label: instancereplacement: ${1}action: replace- separator: ;regex: .*target_label: __address__# impi exporter安装服务器IPreplacement: xx.xx.xx.xx:9290action: replace

1.6 Grafana配置

导入模板:15765
模板地址:https://grafana.com/grafana/dashboards/15765-ipmi-exporter/

可根据需要修改模板

1.7 IPMI说明

1、IPMI

IPMI(Intelligent Platform Management Interface)
智能平台管理接口 (IPMI) 是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI 信息通过基板管理控制器 (BMC)(位于 IPMI 规格的硬件组件上)进行交流。使用低级硬件智能管理而不使用操作系统进行管理,具有两个主要优点: 首先,此配置允许进行带外服务器管理;其次,操作系统不必负担传输系统状态数据的任务。IPMI的核心是一个专用芯片/控制器(叫做服务器处理器或基板管理控制器(BMC)),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统。简单来说,ipmi可以理解为管理物理服务器硬件的一个模块。
IPMI功能:

  • 监控服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等;
  • 可以通过串口、Modem以及Lan等远程环境管理服务器系统,如远程开关机;

2、ipmitool

ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 规范(最新的规范为 ipmi 2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能.

ipmitool –I open sensor list 
#命令可以获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息。
ipmitool –I open sensor thresh 
#设置ID值等于id的监测项的各种限制值。
ipmitool –I open chassis status 
#查看底盘状态,其中包括了底盘电源信息,底盘工作状态等
ipmitool –I open chassis restart_cause 
#查看上次系统重启的原因
远程电源管理
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power off 
# 关机,直接切断电源
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power soft 
# (软关机,即如同轻按一下开机按钮)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power on 
# (硬开机)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power reset 
# (硬重启)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power status 
# (获取当前电源状态)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 chassis power cycle
(注意power cycle 和power reset的区别在于前者从掉电到上电有1秒钟的间隔,而后者是很快上电)
远程引导

当次生效

ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev pxe 
# (网络引导)
ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev disk 
# (硬盘引导)
ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev cdrom 
#(光驱引导)
读取系统状态类
ipmitool sensor list   #显示系统所有传感器列表
ipmitool fru list   #显示系统所有现场可替代器件的列表
ipmitool sdr list   #显示系统所有SDRRepository设备列表 
ipmitool  pef list      #显示系统平台时间过滤的列表
系统日志类
ipmitool sel elist   #显示所有系统事件日志
ipmitool sel clear   #删除所有系统时间日志
ipmitool sel delete ID     #删除第ID条SEL
ipmitool sel time get      #显示当前BMC的时间
ipmitool sel time set  XXX  #设置当前BMC的时间
启动设置类
ipmitool chassis bootdev bios  #重启后停在BIOS 菜单
ipmitool chassis bootdev pxe #重启后从PXE启动
系统相关的命令
ipmitool mc info       #显示BMC版本信息
ipmitool bmc reset cold      #BMC 热启动
ipmitool bmc reset warmBMC    #冷启动
网络接口相关命令
ipmitool lan print 1    #显示channel1的网络配置信息
ipmitool lan set  1ipaddr 10.32.2.2    #设置channel1的IP地址
ipmitool lan  set 1 netmask 255.255.0.0   #设置channel1的netmask
ipmitool lan set 4 defgw ipaddr255.255.0.254    #设置channel4的网关
ipmitool lan set  2 defgw macaddr  <macaddr> #设置channel2的网关mac address
ipmitool lan set 2 ipsrc dhcp         #设置channel2的ip 源在DHCP
ipmitool lan set 3 ipsrc static        #设置channel2的ip是静态获得的
通道相关命令
ipmitool channel info #显示系统默认channel
ipmitool channel  authcap channel-number privilege  #修改通道的优先级别
ipmitool channel  getaccess channel-number user-id #读取用户在通道上的权限
ipmitool channel setacccess channel-number  user-id callin=on ipmi=on link=onprivilege=5   #设置用户在通道上的权限
看门狗相关命令
ipmitool  mc watchdog get #读取当前看门狗的设置
ipmitool watchdog  off   #关掉看门狗
ipmitool watchdog reset  #在最近设置的计数器的基础上重启看门狗
用户管理相关命令
ipmitool user list chan-id   #显示某通道上的所有用户
ipmitool set password <user id>[<password>] #修改某用户的密码
ipmitool disable      <user id>  #禁止掉某用户
ipmitool enable       <user id>  #使能某用户
ipmitool priv         <user id> <privilegelevel> [<channel number>] #修改某用户在某通道上的权限
ipmitool test         <user id> <16|20>[<password]> #测试用户

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++项目——集群聊天服务器项目(五)网络模块与业务模块

今天来正式书写集群聊天服务器网络模块与部分业务模块的代码 环境搭建C项目——集群聊天服务器项目(一)项目介绍、环境搭建、Boost库安装、Muduo库安装、Linux与vscode配置-CSDN博客 Json第三方库 muduo网络库 MySQL数据库 一、工程目录创建 项目通过CMake编译&#xff0c…

C语言:自定义类型:联合体和枚举

目录 联合体 联合体是什么&#xff1f; 联合体的大小计算 枚举 枚举是什么&#xff1f; 为什么要使用枚举&#xff1f; 联合体 联合体是什么&#xff1f; 联合体也是个自定义类型&#xff0c;它和结构体类似&#xff0c;都是由多个成员构成&#xff0c;可以有不同的内置…

【OJ】动归练习二

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 91.解码方法1.1 分析1.2 代码 2. 62.不同路径2.1 分析2.2 代码 3. 63.不同路径 II3.1 分析3.2 代码 1. 91.解码方法 1.1 分析 题目所述就是把一串数字反向解码为字母映射出来&#xff0c;有多少种方法。 题目也说&…

nav仿真(2)

开启仿真和建图 打开第一个窗口启动仿真&#xff1a; source devel/setup.bash export TURTLEBOT3_MODELburger roslaunch turtlebot3_gazebo turtlebot3_world.launch # 启动仿真打开第二个窗口&#xff0c;开始建图&#xff1a; source devel/setup.bash export TURTLEBOT3_…

mysql存储引擎、行锁与索引的关系

一、存储引擎概念介绍 MySQL中的数据用各种不同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力&#xff0c;这些不同的技术以及配套的功能在MySQL中称为存储引擎 存储引擎是MySQL将数据存储在文件系统中的存储…

隐语技术架构

隐语架构 产品定位 算法层 计算层 密码原语 互联互通–资源层 总结

数据结构(五)——树与二叉树的应用

5.5 树与二叉树的应用 5.5.1 哈夫曼树 结点的权&#xff1a;有某种现实含义的数值。 结点的带权路径长度&#xff1a;从树的根到该结点的路径长度&#xff08;经过的边数&#xff09;与该结点上权值的乘积。 树的带权路径长度&#xff1a;树中所有叶结点的带权路径长度之和…

linux系统------------Mysql数据库介绍、编译安装

目录 一、数据库基本概念 1.1数据(Data) 1.2表 1.3数据库 1.4数据库管理系统(DBMS) 数据库管理系统DBMS原理 1.5数据库系统&#xff08;DBS) 二、数据库发展史 1、第一代数据库 2、第二代数据库 3、第三代数据库 三、关系型数据库 3.1关系型数据库应用 3.2主流的…

Saltstack 最大打开文件数问题之奇怪的 8192

哈喽大家好&#xff0c;我是咸鱼。 今天分享一个在压测过程中遇到的问题&#xff0c;当时排查这个问题费了我们好大的劲&#xff0c;所以我觉得有必要写一篇文章来记录一下。 问题出现 周末在进行压测的时候&#xff0c;测试和开发的同事反映压测有问题&#xff0c;请求打到…

一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧

作为一名互联网技术爱好者&#xff0c;我对数据的探索充满热情。在本文中&#xff0c;我将以豆瓣读书为案例&#xff0c;详细介绍如何利用Python爬虫、Pandas和Excel这三大工具&#xff0c;一键化地实现数据采集和存储。豆瓣读书作为一个备受推崇的图书评价平台&#xff0c;拥有…

亮剑AIGC,紫光云能否胜人一筹?

【全球云观察 &#xff5c; 科技热点关注】 扎实创新每一步&#xff0c; 先人一步快人一步。 2023年全球科技行业最火的莫过于生成式AI&#xff0c;即Artificial Intelligence Generated Content。在迈向生成式AI的道路上&#xff0c;虽然说不上千军万马&#xff0c;但是国内…

Python学习笔记------文件操作

编码 编码就是一种规则集合&#xff0c;记录了内容和二进制间进行相互转换的逻辑。 编码有许多中&#xff0c;我们最常用的是UTF-8编码 计算机只认识0和1&#xff0c;所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码&#xff0c;将计算机保存的0和1&#xff0c…

2.4 如何运行Python程序

如何运行Python程序&#xff1f; Python是一种解释型的脚本编程语言&#xff0c;这样的编程语言一般支持两种代码运行方式&#xff1a; 1) 交互式编程 在命令行窗口中直接输入代码&#xff0c;按下回车键就可以运行代码&#xff0c;并立即看到输出结果&#xff1b;执行完一行…

ReentrantLock加锁分析

1、ReentrantLock中其实是有一个AQS的子类实例的成员变量sync&#xff1b; 2、实际是调用的Sync中的lock&#xff1b;Sync是AQS的子类&#xff1b;Sync有两个子类&#xff0c;公平与非公平&#xff1b;默认为非公平&#xff1b;如下是非公平加锁分析&#xff1b; public Reentr…

Visual Basic6.0零基础教学(4)—编码基础,数据类型与变量

编码基础,数据类型与变量 文章目录 编码基础,数据类型与变量前言一、VB中的编程基础二、VB的基本字符集和词汇集1、字符集2、词汇集 VB中的数据类型VB中的变量与常量一.变量和常量的命名规则二.变量声明1.用Dim语句显式声明变量三. 常量 运算符和表达式一. 运算符 1. 算术运算符…

获取Book里所有sheet的名字,且带上超链接

应用背景&#xff1a; 当一个excel有很多sheet的时候&#xff0c;来回切换sheet会比较复杂&#xff0c;所以我希望excel的第一页有目录&#xff0c;可以随着sheet的增加&#xff0c;减少&#xff0c;改名而随时可以去更新&#xff0c;还希望有超链接可以直接跳到该sheet。 可以…

06-验证浮点数输入

鉴于shell脚本的限制和本事&#xff0c;浮点数&#xff08;或“实数”&#xff09;的验证过程乍一看似乎让人望而生畏&#xff0c;不过考虑到浮点数只不过是由小数点分隔的两个整数&#xff0c;再配合能够在脚本中引用其他脚本的能力&#xff08;validint&#xff09;&#xff…

【爬取网易财经文章】

引言 在信息爆炸的时代&#xff0c;获取实时的财经资讯对于投资者和金融从业者来说至关重要。然而&#xff0c;手动浏览网页收集财经文章耗时费力&#xff0c;为了解决这一问题&#xff0c;本文将介绍如何使用Python编写一个爬虫程序来自动爬取网易财经下关于财经的文章 1. 爬…

前端基础 Vue -组件化基础

1.全局组件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src&…

【QA】MySQL导出某数据库的所有数据为sql文件,包含建库命令、建表命令。

文章目录 前言Windows系统下 | mysqldump导出数据库数据Docker中导入初始化数据【补充】通过命令行&#xff0c;执行sql文件&#xff0c;将数据导入到数据库在MySQL外面执行在MySQL中执行 前言 我们在用docker部署mysql项目的时候&#xff0c;往往需要对数据库进行数据初始化。…