0. 개요
기존 모니터링인 Nagios에서 시스템 메트릭 모니터링을 하기 위하여 Prometheus+Grafana+NodeExporter로
내부 서버 모니터링을 시작했습니다. 온프레미스 장비들에 node_exporter 설치 후 시스템 메트릭을 수집하는 도중, /var/log/messages에 다음과 같은 ACPI 관련 커널 오류가 발생하는것을 확인 할 수 있었습니다.
ACPI Error: SMBus or IPMI write requires Buffer of length 66, found length 32 (20090903/exfield-286)
이 오류는 ACPI(Advanced Configuration and Power Interface)와 관련된 SMBus(System Management Bus) 또는 IPMI(Intelligent Platform Management Interface) 요청 중 버퍼 길이 불일치로 인해 발생합니다.
1. 문제원인
Node Exporter가 /sys/class/hwmon 경로에서 하드웨어 센서 값을 수집할 때 일부 하드웨어 플랫폼 또는 펌웨어가 이러한 쿼리를 완벽하게 지원하지 못하여 커널 오류가 발생합니다. 주로 펌웨어버젼이 낮을경우에 발생합니다.
2. 해결방법
이 문제를 해결하려면 Node Exporter에서 하드웨어 모니터링(hwmon) 수집기를 비활성화해야 합니다.
1) node_exporter 서비스파일 수정
1. Node_exporter 서비스 파일 오픈
sudo vi /etc/systemd/system/node_exporter.service
2. ExecStart 라인을 찾아 다음과 같이 --no-collector.hwmon 옵션을 추가합니다:
ExecStart=/usr/local/bin/node_exporter --no-collector.hwmon
만약 Centos6와 같은 구버젼의 Daemon파일은 아래와 같은절차로 진행합니다.
1. Node_exporter 데몬파일 오픈
vi /etc/init.d/node_exporter
2. start 함수에 --no-collector.hwmon 설정 추가
start(){
echo -n"Starting $PROGNAME: "
cd /usr/shared/node_exporter/
daemon --user $USER --pidfile="$LOCKFILE" "$PROG --no-collector.hwmon &>$LOGFILE &"
echo $(pidofproc $PROGNAME) >$LOCKFILE
echo
}
2) 서비스 리로드 및 재시작
1. systemd 데몬을 리로드하여 변경사항을 적용합니다.
sudo systemctl daemon-reload
2. node_exporter 서비스를 재시작 합니다.
sudo systemctl restart node_exporter
위 작업 진행 후 더이상 /var/log/messgaes에 관련 로그가 발생하지 않습니다.
3. 결론
Node Exporter에서 hwmon 수집기를 비활성화하여 과도한 로그 발생을 방지했습니다. 하드웨어 센서 모니터링이 비활성화되는 단점이 있지만, ACPI 상호작용이 Node Exporter와 호환되지 않는 시스템에서는 실용적인 해결책입니다.
'System > Monitor' 카테고리의 다른 글
[prometheus/grafana] "Found Duplicate Series for the Match Group" (0) | 2025.03.11 |
---|---|
nagios-nrpe) Request packet version was invalid (0) | 2024.01.12 |