EC2 인스턴스를 Ubuntu 18.04로 업그레이드한 후 PHP 스크립트에서 데이터베이스 서버의 DNS를 확인할 때 다음과 같은 오류가 가끔 발생하기 시작했습니다.
Uncaught Exception: PDOException: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
이는 syslog의 systemd-resolved 재시작과 관련이 있습니다. 디버그 로깅을 켰지만 서비스가 하루에 여러 번 다시 시작되는 이유를 여전히 이해하지 못합니다. 재부팅과 관련된 syslog 항목은 다음과 같습니다.
Dec 6 11:31:20 ip-172-31-X-X systemd-resolved[15188]: Processing incoming packet on transaction 51967. (rcode=SUCCESS)
Dec 6 11:31:20 ip-172-31-X-X systemd-resolved[15188]: Processing query...
Dec 6 11:31:20 ip-172-31-X-X systemd-resolved[15188]: Cache miss for sqs.us-west-2.amazonaws.com IN A, Cache miss for sqs.us-west-2.amazonaws.com IN A @version:1 @timestamp:December 6th 2018, 05:31:20.000
Dec 6 11:31:20 ip-172-31-X-X systemd-resolved[15188]: Removing cache entry for gmail-imap.l.google.com IN AAAA (expired 19s ago)
Dec 6 11:31:22 ip-172-31-X-X systemd-resolved[15188]: Removing scope on link *, protocol dns, family *
Dec 6 11:31:22 ip-172-31-X-X dhclient[768]: DHCPREQUEST of 172.31.X.X on eth0 to 172.31.32.X port 67 (xid=0x66c614b9)
Dec 6 11:31:22 ip-172-31-X-X dhclient[768]: DHCPACK of 172.31.X.X from 172.31.32.X
Dec 6 11:31:22 ip-172-31-X-X systemd-resolved[15188]: Bus n/a: changing state RUNNING → CLOSED
Dec 6 11:31:22 ip-172-31-X-X systemd[1]: Stopping Network Name Resolution...
Dec 6 11:31:23 ip-172-31-X-X dhclient[768]: bound to 172.31.X.X -- renewal in 1565 seconds.
Dec 6 11:31:23 ip-172-31-X-X systemd-resolved[15465]: Got message type=signal sender=org.freedesktop.DBus destination=:1.2496 path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=NameAcquired cookie=3 reply_cookie=0 signature=s error-name=n/a error-message=n/a
Dec 6 11:31:23 ip-172-31-X-X systemd-resolved[15465]: Found new link 2/eth0
Dec 6 11:31:23 ip-172-31-X-X systemd-resolved[15465]: New scope on link *, protocol dns, family *
내 것은 /etc/resolv.conf
기본 AWS인 것으로 보이며 다음을 /run/systemd/resolve/resolv.conf
포함하는 심볼릭 링크입니다.
nameserver 172.31.0.X
search us-west-2.compute.internal
무작위로 재부팅되는 것처럼 보이는 이유와 문제를 해결하기 위해 무엇을 할 수 있는지 아는 사람이 있습니까?
답변1
제 생각에는 근본 원인은 로그에서 systemd-resolved
다시 시작된 것입니다 dhclient
. 여러분도 마찬가지일 것입니다.
이 버그 보고서를 살펴보세요https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1805183
패치를 적용한 후https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1805183/comments/8php-fpm (및 getaddrinfo)은 다시는 불평하지 않았습니다.
답변2
이 문제가 발생하고 연결된 패치를 적용하고 싶지 않은 경우 대체 솔루션을 사용하여 임시 DNS 오류를 해결할 수 있습니다.
Ubuntu에서 systemd-resolved를 비활성화합니다. 설명이 있습니다여기 우분투 자매 사이트에서.
여기에 설명을 복사하지 않겠습니다. systemd-resolved 비활성화에 대한 경고가 이미 있습니다. 이 답변에 설명을 복사하면 이 답변에 다른 중요한 업데이트가 누락될 수 있습니다.