zabbix 에서 제공하는 smart template은 smartctl(smartmontools)에서 표출하는 지표를 수집한다.
HDD, SSD, NVMe 등의 디스크 지표를 수집 할 수 있어 디스크 모니터링에 유용하게 쓰일수 있다.
참조 : https://www.zabbix.com/integrations/smart
설치 조건 및 환경
조건
zabbix 5.0 이상
zabbix agent2
smartmontools 7.1 이상
설치 환경
Proxmox-VE 7.4
zabbix 5.4
설치
zabbix agent2 설치
pve(7.4) repository 는 zabbix agent 를 기본 제공하지만 zabbix agent2를 제공하지는 않는다.
따라서 zabbix agent2를 설치하여야 한다.
기존 zabbix agent 삭제
apt remove zabbix-agent
zabbix 5.4 repository 설치
pve 7.4 는 debian 11(Bullseye) 가 기반이므로 여기를 참조하여 설치한다.
repository 다운로드
wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian11_all.deb
repository 설치
dpkg -i zabbix-release_5.4-1+debian11_all.deb
apt update
zabbix agent 설치
apt install zabbix-agent2
smartmontools 설치
pve 7.4는 기본적으로 smartmontools 7.2버전을 기본 제공한다.
smartctl -V
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.104-1-pve] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
설정
zabbix agent2 root 설정
zabbix agent2는 기본적으로 zabbix/zabbix 의 UID/GID 를 사용하지만 편의를 위해 root로 띄운다.
User, Group을 zabbix -> root 로 수정한다.
vim /lib/systemd/system/zabbix-agent2.service
[Service]
...
User=root
Group=root
systemctl reload 한다.
systemctl daemon-reload
zabbix config 설정
zabbix agent 설정 파일은 /etc/zabbix/zabbix_agent2.conf 에 있으며 기본적인 설정 후 Smart Plugin 에 대한 추가 설정을 한다.
smartctl의 경로를 찾지 못하는 경우를 대비하여 위치를 지정한다.
Plugins.Smart.Path="/usr/sbin/smartctl"
서버 디스크 상태에 따라 수집에 오래 걸릴수 있으므로 timeout 값을 늘려준다.
Timeout=30
Plugins.Smart.Timeout=30
zabbix agent2를 재시작한다.
systemctl restart zabbix-agent2
수집 테스트
smart.disk.get 값을 agent 서버에서 테스트 해본다.
zabbix_agent2 -v -t smart.disk.get
...
2023/11/20 16:13:23.202716 starting manager
2023/11/20 16:13:24.000545 [2] processing update request (1 requests)
2023/11/20 16:13:24.000575 [2] registering new client
2023/11/20 16:13:24.000618 [2] adding new request for key: 'smart.disk.get'
2023/11/20 16:13:24.000710 [2] created direct exporter task for plugin 'Smart' itemid:0 key 'smart.disk.get'
2023/11/20 16:13:24.000724 [2] created configurator task for plugin Smart
2023/11/20 16:13:24.000766 plugin Smart: executing configurator task
2023/11/20 16:13:24.000964 executing direct exporter task for key 'smart.disk.get'
2023/11/20 16:13:24.003096 failed to execute direct exporter task for key 'smart.disk.get' error: 'Failed to execute smartctl: Command execution failed: exit status 127.'
smart.disk.get [m|ZBX_NOTSUPPORTED] [Failed to execute smartctl: Command execution failed: exit status 127.]
"[m|ZBX_NOTSUPPORTED] [Failed to execute smartctl: Command execution failed: exit status 127.]" 와 같은 에러 메세지를 볼수 있는데 exit 127 인걸로 보아 smartctl 경로를 못찾기 보다는 권한 문제일 확률이 있다.
smartctl 의 zabbix 권한을 위해 sudo 를 설치한다.
apt install sudo
sudoers 를 수정하여 zabbix 에 smartctl 권한을 부여한다.
sudoers는 꼭 root에서 작업해야하며 vim 저정시 강제 저장해야한다.(wq!)
vim /etc/sudoers
...
zabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl
다시 수집 테스트 해보면 아래와 같이 정상 출력 됨을 확인할 수 있다.
zabbix_agent2 -t smart.disk.get
smart.disk.get [s|[{"device":{"info_name":"/dev/nvme0","name":"/dev/nvme0","protocol":"NVMe","type":"nvme"},"disk_name":"nvme0","disk_type":"nvme","firmware_version":"....
'Monitoring Tools > Zabbix' 카테고리의 다른 글
[zabbix] Ldap(AD) 연동 (0) | 2024.04.04 |
---|---|
[zabbix] 5.4 -> 6.4 upgrade (0) | 2024.01.18 |
[zabbix] out of memory 로 인한 무한 시작반복 에러 (0) | 2022.12.21 |
[zabbix] proxmox VE API(pvesh) 사용 VM discovery 만들기 (0) | 2022.12.14 |
zabbix | Slack Webhook을 이용하여 알람 보내기(그래프 포함) (9) | 2022.10.19 |