서비스를 운영하다 어떠한 API가 많이 사용될까 궁금한적이 있었다.
리눅스 명령어를 잘 몰라서 grep으로 대충 로그파일 뒤져서 눈으로 대충 아 몇개구나 파악하곤했었는데
조금더 확실한 방법을 알게되었다.
nginx 로그를 보면 대충 이런식의 API 콜 기록이 남아있는걸 확인할 수 있다.
개인적으로 운영하는 서비스라서 로그가 듬성듬성 있지만, 회사에서 운영하는 서비스의 경우에는 초단위로 엄청난 로그가 수집된다.
이를 통계 내려면 어떻게 해야될까?
cat access.log(로그파일 PATH) | cut -d " " -f 7 | sort | uniq -c | sort
이렇게 명령어를 날려보면?
호출된 수가 많은 순서대로 정렬되어서 해당 내용이 출력된다.
따라서 어떤 API가 가장 많이 호출되고 있는지 알 수 있다.
위에 명령을 하나씩 뜯어보자.
cat access.log(로그파일 PATH)
- cat 파일명을 입력하면 날 것의 파일 내용을 그대로를 출력 해준다. 게시글의 맨 상단 사진에 모습처럼 결과물이 나온다.
- 이 외에에도 유사하거나 관련 있는 명령어는 아래와 같다.
- zcat (압축파일 .gz .tgz을 출력해주는 명령어)
- xzcat (.xz)
- unzip (zip)
cut -d " " -f 7
cut은 말그대로 특정 범위에 내용을 잘라서 보여줄때 사용한다.
-d 옵션 : cut으로 넘어온 각각의 줄을 -d 옵션으로 지정한 구분자로 분할한다. " " 빈 공백을 넣게되면 각 줄마다 공백으로 구분하여 분할하게 된다.
-f 옵션 지정한 위치의 부분들을 모아서 출력한다 -f 7을 하게되면 아래 그림에서 봤을때 7번째 열만 출력 해주게 된다.
이러한 결과물이 나오게 된다.
sort
- 말 그대로 내용을 정렬 해준다. 기본 정렬 방식은 작은것 부터 큰순으로(오름차순) 정렬된다.
-r 또는 --reserse옵션 : 내림차순 정렬
uniq -c
- uniq는 중복을 제거해주는 옵션이다.
-c 또는 --count 옵션 : 중복을 제거하면서 각 내용이 몇 번 등장했는지 카운팅을 해준다.
'개발 공부 기록하기 > - Linux' 카테고리의 다른 글
Ubuntu 22.04LTS Server 자동 로그인 하기 (0) | 2023.09.06 |
---|---|
VI 문자열 일괄 변경하기 (0) | 2020.01.11 |
[UBUNTU SERVER] 노트북 덮개(LID) 닫을때 대기모드 진입 방지 (0) | 2016.03.18 |
리눅스 서버 셋팅 (2) | 2016.02.15 |