目录
一、实验
1.环境
2.agent服务器安装使用ELRepo安装依赖包
3.agent服务器安装基于BPF的bcc-tools系统性能工具库
二、问题
1.安装bcc-tools后执行命令报错
一、实验
1.环境
(1)主机
表1-1 主机
主机 | 架构 | 组件 | IP | 备注 |
prometheus | 监测 系统 | prometheus、node_exporter | 192.168.204.18 | |
grafana | 监测GUI | grafana | 192.168.204.19 | |
agent | 监测 主机 | node_exporter | 192.168.204.20 |
(2)ELRepo官网地址
ELRepo | HomePage
2.agent服务器安装使用ELRepo安装依赖包
(1)查看当前系统的内核版本
uname -rs
(2)查看已安装的内核依赖包
rpm -qa | grep kernel-lt
(3)查看当前可用的内核发行版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
(3)安装依赖包
yum --enablerepo=elrepo-kernel install kernel-lt-devel \
kernel-lt-headers \
kernel-lt-tools \
kernel-lt-tools-libs
(4)再次查看已安装的内核依赖包
rpm -qa | grep kernel-lt
3.agent服务器安装基于BPF的bcc-tools系统性能工具库
(1)安装bcc-tools(内核必须升级到4.x版本以上,才可以使用。)
yum install -y bcc-tools
(2)添加环境变量
export PATH=$PATH:/usr/share/bcc/tools
(3)测试
二、问题
1.安装bcc-tools后执行命令报错
(1)报错
执行cachestat命令报错
(2)原因分析
① 原因一
如果kernel-devel 版本不一致导致的,建议下载跟操作系统内核版本对齐。
#可以yum安装
yum install "kernel-devel-$(uname -r)"
# 或者下载对应内核版本rpm包安装
# 下载地址:http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/
rpm -ivh kernel-lt-devel-5.4.265-1.el7.elrepo.x86_64.rpm
② 原因二
另一个原因是是由于内核版本的原因,kernel-5.4.X之后才会出现该问题。内核头文件中用 asm 替换 asm_inline即可,具体参考如下的BCC官网。Missing support for asm_inline in Linux 5.4 · Issue #2546 · iovisor/bcc · GitHub
(3)解决方法
1)配置文件
vim /lib/modules/5.4.265-1.el7.elrepo.x86_64/build/arch/x86/include/asm/segment.h
2)在最上新增如下配置
#ifdef asm_inline
#undef asm_inline
#define asm_inline asm
#endif
修改前:
修改后:
成功: