dnstop 명령어 설치 및 사용 방법
dnstop은 DNS 서버의 트래픽을 모니터링하기 위한 유틸리티입니다
dnstop 설치
- ubuntu에서 dnstop 설치하기
sudo apt-get update
sudo apt-get install -y dnstop
- centos에서 dnstop 설치하기
sudo yum instal epel-release
sudo yum install -y dnstop
dnstop 버전 정보
dnstop -v
$ dnstop -v
dnstop Version: 20140915
http://dnstop.measurement-factory.com/
dnstop 사용 방법
기본 명령어
sudo dnstop <interface>
<interface>는 dnstop이 캡처할 네트워크 인터페이스의 이름
dnstop 옵션
- -4 : IPv4 패킷 수
- -6 : IPv6 패킷 수
- -Q : 쿼리 수
- -R : 응답 수
- -a : IP 주소 익명화
- -b expr : BPF 프로그램 코드
- -i addr : 이 소스 IP 주소 무시
- -n name : 이 도메인의 메시지만 계산
- -p : 인터페이스를 무차별 모드로 설정하지 않음
- -P : 비대화형 모드에서 "진행률" 메시지 인쇄
- -r : 다시 그리기 간격, 초 단위
- -l N : 최대 N개의 컴포넌트까지 도메인 통계 사용
- -X : "소스 + 쿼리 이름" 통계를 표로 만들지 않음
- -f : 필터 이름
dnstop enp0s3
dnstop을 실행하여 DNS 서버의 QPS를 모니터링하는 방법은 다음과 같습니다.
sudo dnstop -l 5 -T total -r /var/log/named/query.log
위 명령어에서 -l 5는 화면에 출력할 로그 라인의 개수를 지정합니다. -T total은 총합(total)을 출력하도록 하는 옵션입니다. -r /var/log/named/query.log는 로그 파일의 경로를 지정합니다.
dnstop 명령어를 실행하면, 5초 간격으로 QPS 정보가 출력됩니다. 다음은 예시 출력입니다.
Queries: 45 new, 1844 total Thu Jun 10 22:08:15 2021
Responses: 45 new, 1844 total, 0 NXDOMAIN
Cache Hit Ratio: 77.3%
Query Name Count % Cumulative % Ttl
------------------- ----- ----- ----------- ----- ---
api.example.com 34 45.3 34 45.3 60
metrics.example.com 11 14.7 45 60.0 60
example.com 7 9.3 52 69.3 300
m.example.com 6 8.0 58 77.3 60
위 출력에서 Queries는 새로운 쿼리와 총 쿼리 수를 나타냅니다. Responses는 새로운 응답과 총 응답 수를 나타냅니다. Cache Hit Ratio는 캐시 히트 비율을 나타냅니다. Query Name은 도메인 이름과 해당 도메인 이름으로 들어온 쿼리 수를 나타냅니다.
위와 같이 dnstop을 사용하여 DNS 서버의 QPS를 모니터링할 수 있습니다.
dig 명령어 사용
dig 명령어는 DNS 서버에서 특정 도메인에 대한 쿼리를 보내고 응답을 받는 데 사용됩니다. dig 명령어를 사용하여 QPS를 확인하려면, 다음과 같은 명령어를 실행합니다.
watch -n 1 'dig scbyun.com @ns1.hosting.co.kr | grep "Query time:"'
Every 1.0s: dig scbyun.com @ns1.hosting.co.kr | grep "Query time:" Mon Feb 27 16:37:20 2023
;; Query time: 6 msec
위 명령어에서 scbyun.com은 쿼리를 보낼 도메인 이름입니다. ns1.hosting.co.kr는 DNS 서버의 IP 주소입니다. -n 1은 1초 간격으로 명령어를 실행하도록 하는 옵션입니다. 이 명령어를 실행하면, 1초 간격으로 해당 DNS 서버에 대한 QPS 정보가 출력됩니다.
'리눅스' 카테고리의 다른 글
MySQL 리플리케이션(mysql replication) 설정 방법 (0) | 2023.03.01 |
---|---|
[리눅스] InfluxDB, Grafana 및 Telegraf를 사용하여 모니터링 시스템을 구성하기 - 정리중 (0) | 2023.02.27 |
[리눅스] systemd의 로깅 설정을 변경하기 (0) | 2023.02.26 |
[리눅스] td-agent plugin(out_fluentd 플러그인) (0) | 2023.02.22 |
[리눅스] Fluentd를 Docker 컨테이너로 실행하는 방법 (0) | 2023.02.20 |