집의 글로벌 IP 주소 변경을 Mackerel에 알립니다.
배경
그래서 Raspberry Pi에서 움직이는 mackerel-agent에서 글로벌 IP 주소 변경을 경고로 해주는 설정을 실시했습니다.
덧붙여 이하 Raspberry Pi를 전제로 기술하고 있습니다만, 스크립트 자체는 Linux 범용입니다.
Macherel에서 Raspberry Pi 모니터링
참고 : Raspberry Pi를 Mackerel로 모니터링
글로벌 IP 주소 변경 감지 스크립트 만들기
참고 : Linux에서 글로벌 IP 주소를 확인하는 방법
h tp : // g ぉ 바 ぃ p. 메 에서 글로벌 IP 주소를 얻고 변경이 감지되면 오류를 반환하는 스크립트 checkglobalip.sh를 만듭니다. Raspberry Pi에서 작동합니다.
/home/pi/bin/checkglobalip.sh
checkglobalip.sh
#!/bin/sh
IPFILE='/tmp/globalip'
PREVIP=`cat $IPFILE` 2>/dev/null
IP=`curl globalip.me` 2>/dev/null
if [ "$IP" != "" ]; then
echo "Global IP address: $IP"
if [ "$PREVIP" != "$IP" ]; then
echo $IP > $IPFILE
if [ "$PREVIP" != "" ]; then
echo "Global IP address changed from $PREVIP"
echo
whois -h whois.nic.ad.jp $IP | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.\S*' | tr '\n' ' '
exit 1
fi
fi
else
echo "Can't get IP address"
exit 1
fi
return 0
Macherel 체크 항목으로 추가
글로벌 IP 주소가 변경되면 Google CLoud Platform에 등록한 IP 주소 범위를 벗어나 API가 403을 반환하여 사용할 수 없게 됩니다. 취미의 이용으로 즉각 대응은 필요 없기 때문에, 검출은 1시간 둡니다(Macherel로 설정 가능한 최대치). 너무 자주 h tp : // g pba p. 메 에 액세스하는 것도 느껴집니다.
AM4:00경에 globallip.me가 매번 503을 돌려주기 때문에 max_check_attempts = 2로 합니다.
/etc/mackerel-agent/mackerel-agent.conf
[plugin.checks.globalip]
command = "/home/pi/bin/checkglobalip.sh"
max_check_attempts = 2
check_interval = 60
memo = "This check monitors change of global IP address."
Mackerel 재부팅
sudo systemctl start mackerel-agent
Mackerel에서 LINE Notify로 알림 알림
이런 느낌으로 알림이 도착합니다. 알림이 오면 CMAN 보고 할당 IP 네트워크 주소를 확인하고 Google Cloud Console의 'API 및 서비스' - '자격 증명'의 서버 IP 주소 목록에 추가. 우선 자신이 사용하고 있는 프로바이더로부터의 액세스라면 허가라고 합니다.
정직도 좀 좋은 방법 없는 것일까라고 생각하지 않아도 됩니다만, 과연 얼마나 추가를 계속하면, 프로바이더의 네트워크 주소를 망라할 수 있는 것일까.
추가
CMAN에서 네트워크 주소를 조사하는 것보다 whois 명령이 더 좋습니다. 체크 스크립트에도 넣었습니다.
pi@raspberrypi:~ $ whois -h whois.nic.ad.jp 122.26.128.XXX
Network Information:
a. [Network Number] 122.26.128.0/17
b. [Network Name] OCN
g. [Organization] Open Computer Network
(略)
Less Specific Info.
----------
NTT COMMUNICATIONS CORPORATION
[Allocation] 122.16.0.0/12
잘 모르겠지만 주소 범위가 OCN(122.26.128.0/17)보다 Less Specific Info에서 나오는 NTT COM(122.16.0.0/12) 쪽이 넓다. Google Cloud Platform에는 이쪽을 설정하는 편이 편하다.
상관없지만 OCN이 Open Computer Network의 약자라는 것은 처음으로 알았습니다.
Reference
이 문제에 관하여(집의 글로벌 IP 주소 변경을 Mackerel에 알립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tinoue@github/items/303cd3e3d030f4e89c59텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)