개발
서버 개발 일지
Nginx 서버 로그 기록 설정 및 커스터마이징
139 views as of October 10, 2024.
Nginx 서버를 운용하다보면 참 여러가지 서버 트래픽이 발생한다.
제일 무난한 관리방법은 역시 모든 엑세스에 대해서 철저하게 로깅해놓고 지속적으로 모니터링하면서 필요한 타이밍에 제어를 하는것이다.
경험이 많으신 서버 관리자는 더 효율적인 방법과 자료로 질이 나쁜 트래픽이나 엑세스 요청을 유효하게 거르시겠지만 나같은 경우에는 이미 실서비스를 운용하면서 맨땅에 헤딩하는식으로 이런 자료과 경험을 쌓아가야해서 자연적으로 로깅을 잘하고 모니터링할 수 있는 환경을 구축하는것이 중요했다.
뭐 거두절미하고 관련 설정을 여기에 기록해보자한다.
http {
...
# log_format 설정
log_format main '[$time_local] $remote_addr "$host" '
'"$request" $status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
access_log /var/log/nginx/access.log main;
# 특정 확장자에 대한 로그 비활성화 설정
map $request_uri $loggable {
"~*^.+\.(jpg|jpeg|png|gif|css|js|map|svg|ico|woff|woff2|ttf|eot)(\?.*)?$" 0; # 해당 파일 확장자일 때 0 (로그 비활성화)
default 1; # 그 외 요청일 때는 1 (로그 활성화)
}
# 로그 비활성화 조건을 모든 서버에 적용
access_log /var/log/nginx/access.log main if=$loggable;
...
Copy
참 여러번 수정한
nginx.conf
로그 설정이다.우선 로그라는것은 보기 좋아야하므로 로그를 아래와 같은 순서로 나오게 조율했다.
1.[타임스탬프]
2.접속자IP
3.요청Domain
4.요청내용(Method, URI, Protocol)
5.HTTP응답코드
6.응답바이트
7.이전URL
8.유저에이전트
[09/Oct/2024:20:59:56 +0000] 0.0.0.0 "domain.or.kr" "GET / HTTP/1.1" 200 158303 "https://www.google.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
[09/Oct/2024:20:59:57 +0000] 0.0.0.0 "domain.com" "GET /spb3/sboard3/write.php?db=regist&page=3&mode=write&time=1549556661 HTTP/1.1" 301 169 "-" "Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)"
Copy
실제로 찍히는
access.log
데이터는 위와 같다. (아이피정보랑 도메인명은 바꿨습니다)이 내용을 이제 적절히 파싱해서 쓰면 적절한 모니터링을 할 수 있는 정보가 생성되는 것이다.
나같은 경우는 이 로그정보를 하루에 한번씩 주기적으로 1000개 정도를 짤라내서 ERP 내부에서 조회할 수 있게 파싱한다음에 아래와같이 표로 출력해서 모니터링 한다.
주로 이상한 URI로 요청하는 엑세스나 유저 에이전트 검사를 통해 과도하게 크롤링을 하는 봇들을 추려서 아이피 차단을 걸곤한다.
AWS IP 차단 방법 (서버 아이피 차단) - eruLabo
기존에 웹 서버 단계에서 아이피를 차단하는 방법을 기록한 적이 있다. 이 방법의 단점은 일일히 서버 설정을 열어서 차단해야된다는 문제가 있고, 서버 단에서 엑세스 거부를 날리기 때문에 웹서버 자체가 일단 접...
https://erulabo.com/184
지금 상상으로는 이런 서버 엑세스로그에 AI를 접목시켜서 알아서 이상건을 추려내는 그런 시스템을 떠올리기는하는데 최소한의 자원으로 이런 내용을 어떻게 구현할지 참 고민이 많긴하다.
어찌되었든 터미널화면에서 모니터링을 이제 안해도된다라는거는 나에겐 행복한일인건 분명하다.
#개발 #서버 #Nginx #로그 #Log
0
개의 댓글
Collection. 서버 개발 일지
01.
413 Request Entity Too Large 문제에 대해
2019
02.
ssh 터미널 접근시 발생하는 문제에 대해
2019
03.
Nginx 404 에러 페이지 리다이렉트
2019
04.
Nginx SSL 적용
2019
05.
파이썬으로 웹사이트 상태 체크하기
2019
06.
Nginx 서브 디렉토리 역방향 프록시 설정
2019
07.
PHP7.2 로 판올림 이후 PhpMyAdmin 이슈
2019
08.
Nginx 환경에서 웹폰트 확장자 CORS 이슈
2019
09.
Nginx 체인 인증서 적용
2019
10.
Nginx 특정 IP 차단 하기
2019
11.
proc_open(): fork failed errors ~ 포크 실패 에러
2020
12.
Ubuntu에서 환경변수 PATH 추가 적용하는 방법
2020
13.
Nginx 캐시 설정법
2020
14.
도커(docker)로 SSL 인증서 발급하는 과정.
2021
15.
Ubuntu 스왑 메모리(Swap Memory) 설정
2023
16.
Ubuntu 디스크 용량 확인하는 몇가지 명령어
2023
17.
도커(docker) 인증서 발급 조회 삭제 명령어
2024
18.
Ubuntu 로그 100개 떼어보기
2024
19.
SSL 인증서 비밀번호 제거 방법
2024
20.
Nginx 서버 로그 기록 설정 및 커스터마이징
2024