ngxtop는 nginx 서버의 실시간 top과 유사한 모니터링 도구로서 무료 오픈 소스이며 간단하고 유연하며 완전히 구성 가능하며 사용하기 쉽습니다. 이 도구는 nginx 액세스 로그를 구문 분석하여 데이터를 수집하고 nginx 서버의 유용한 메트릭을 표시하여 웹 서버를 실시간으로 지켜보도록 도와줍니다. 또한 원격 서버에서 Apache 로그를 구문 분석할 수도 있습니다.
리눅스에 ngxtop 설치 및 사용 방법
ngxtop을 설치하려면 먼저 Linux에 PIP를 설치해야 합니다. 시스템에 pip이 설치되면 다음 명령을 사용하여 ngxtop을 설치할 수 있습니다.
$ sudo pip install ngxtop
nginx 서버 요청 모니터링
ngxtop을 설치했다면 아무 인수 없이 실행하는 것이 가장 쉬운 방법입니다. 이렇게 하면 /var/log/nginx/access.log를 구문 분석하고 기본적으로 실시간으로 실행됩니다(접근 로그에 새로운 라인이 기록될 때마다 감시).
$ sudo ngxtop
샘플 출력
running for 411 seconds, 64332 records processed: 156.60 req/sec Summary: | count | avg_bytes_sent | 2xx | 3xx | 4xx | 5xx | |---------+------------------+-------+-------+-------+-------| | 64332 | 2775.251 | 61262 | 2994 | 71 | 5 | Detailed: | request_path | count | avg_bytes_sent | 2xx | 3xx | 4xx | 5xx | |------------------------------------------+---------+------------------+-------+-------+-------+-------| | /abc/xyz/xxxx | 20946 | 434.693 | 20935 | 0 | 11 | 0 | | /xxxxx.json | 5633 | 1483.723 | 5633 | 0 | 0 | 0 | | /xxxxx/xxx/xxxxxxxxxxxxx | 3629 | 6835.499 | 3626 | 0 | 3 | 0 | | /xxxxx/xxx/xxxxxxxx | 3627 | 15971.885 | 3623 | 0 | 4 | 0 | | /xxxxx/xxx/xxxxxxx | 3624 | 7830.236 | 3621 | 0 | 3 | 0 | | /static/js/minified/utils.min.js | 3031 | 1781.155 | 2104 | 927 | 0 | 0 | | /static/js/minified/xxxxxxx.min.v1.js | 2889 | 2210.235 | 2068 | 821 | 0 | 0 | | /static/tracking/js/xxxxxxxx.js | 2594 | 1325.681 | 1927 | 667 | 0 | 0 | | /xxxxx/xxx.html | 2521 | 573.597 | 2520 | 0 | 1 | 0 | | /xxxxx/xxxx.json | 1840 | 800.542 | 1839 | 0 | 1 | 0 |
종료하려면 [Ctrl + C]를 누르세요.
다른 액세스 로그 구문 분석
다음과 같이 -l
플래그를 사용하여 특정 웹 사이트나 웹 앱의 다른 액세스 로그를 구문 분석할 수 있습니다.
$ sudo ngxtop -l /var/log/nginx/site1/access.log
클라이언트의 상위 소스 IP 나열
다음 명령은 사이트에 접근하는 클라이언트의 상위 소스 IP를 나열합니다.
$ sudo ngxtop remote_addr -l /var/log/nginx/site1/access.log
running for 20 seconds, 3215 records processed: 159.62 req/sec top remote_addr | remote_addr | count | |-----------------+---------| | 118.173.177.161 | 20 | | 110.78.145.3 | 16 | | 171.7.153.7 | 16 | | 180.183.67.155 | 16 | | 183.89.65.9 | 16 | | 202.28.182.5 | 16 | | 1.47.170.12 | 15 | | 119.46.184.2 | 15 | | 125.26.135.219 | 15 | | 125.26.213.203 | 15 |
구문
로그 형식을 log_format 지시사항에 따라 사용하기 위해서는 -f
옵션을 如下과 같이 사용합니다.
$ sudo ngxtop -f main -l /var/log/nginx/site1/access.log
apache 로그 파일을 远程 서버에서 일반적인 형식으로 해석하기 위해서는 다음과 같은 명령어를 사용하시오 (사용자 이름과 원격 서버 IP를 지정하세요).
$ ssh user@remote_server tail -f /var/log/apache2/access.log | ngxtop -f common
running for 20 seconds, 1068 records processed: 53.01 req/sec Summary: | count | avg_bytes_sent | 2xx | 3xx | 4xx | 5xx | |---------+------------------+-------+-------+-------+-------| | 1068 | 28026.763 | 1029 | 20 | 19 | 0 | Detailed: | request_path | count | avg_bytes_sent | 2xx | 3xx | 4xx | 5xx | |------------------------------------------+---------+------------------+-------+-------+-------+-------| | /xxxxxxxxxx | 199 | 55150.402 | 199 | 0 | 0 | 0 | | /xxxxxxxx/xxxxx | 167 | 47591.826 | 167 | 0 | 0 | 0 | | /xxxxxxxxxxxxx/xxxxxx | 25 | 7432.200 | 25 | 0 | 0 | 0 | | /xxxx/xxxxx/x/xxxxxxxxxxxxx/xxxxxxx | 22 | 698.727 | 22 | 0 | 0 | 0 | | /xxxx/xxxxx/x/xxxxxxxxxxxxx/xxxxxx | 19 | 7431.632 | 19 | 0 | 0 | 0 | | /xxxxx/xxxxx/ | 18 | 7840.889 | 18 | 0 | 0 | 0 | | /xxxxxxxx/xxxxxxxxxxxxxxxxx | 15 | 7356.000 | 15 | 0 | 0 | 0 | | /xxxxxxxxxxx/xxxxxxxx | 15 | 9978.800 | 15 | 0 | 0 | 0 | | /xxxxx/ | 14 | 0.000 | 0 | 14 | 0 | 0 | | /xxxxxxxxxx/xxxxxxxx/xxxxx | 13 | 20530.154 | 13 | 0 | 0 | 0 |
더 많은 사용 옵션을 보고하고자 하면, 다음과 같은 명령어를 사용하여 ngxtop 도움말을 보십시오.
$ ngxtop -h
ngxtop Github 저장소: https://github.com/lebinh/ngxtop
이제 여기까지이며, 이 記事에서는 리눅스 시스템에서 ngxtop을 설치하고 사용하는 方法을 설명했습니다. 아래 댓글 폼을 사용하여 문제가 있거나 가이드에 추가적으로 생각이 있으면 알려주십시오. 또한, 유사한 도구를 발견했다면 알려주시면 감사드립니다.
Source:
https://www.tecmint.com/ngxtop-monitor-nginx-log-files-in-real-time-in-linux/