본문 바로가기

분류 전체보기

(170)
Elasticsearch-dsl, Django 삽질 복기(2) 분석하려는 로그 메시지에 포함된 json 형식의 데이터를 사용하려는 과정에서 두 가지 문제에 부딪혔다. 1. Search API 에서 json 키값을 field로 이용하는 방법. 2. template 단에서 json 키값별로 핸들링하는 방법. 로그 포맷에 대한 표준이 없다보니 로그 데이터의 패턴이 다양한데 그 중 간단한 형태 하나를 예로 보자. 2020-02-03 13:39:14 [INFO ] [OPERATION] - {"logType":"[REMOVE JOB]","mchnId":"T985","mchnTp":"YT","type":"DELETE","jobKey":"MEDU7911824120200203121004"} 이전 글에 적은 적 있지만 Logstash 설정에서 grok 을 이용해서 json 형식의 데..
Elasticsearch-dsl, Django 삽질 복기(1) 로그 분석 기능 개발 중. 향후 통합 로그 관리 기능을 염두에 두고 Elastic Stack 으로 밑그림을 그리고 시작했는데 당장의 요건은 장애 발생 후 로그 파일을 토대로 원인 추적, 분석이 핵심이다보니 편리한 하향식 검색 기능이 중요한 상황이다. Kibana 만으로 화면 구성하는 것은 한계가 있다고 판단하고 Elastic Search(이하 ES) API 이용한 화면 개발 쪽으로 가닥 잡고 레퍼런스 검색. https://apirobot.me/posts/django-elasticsearch-searching-for-awesome-ted-talks ES 잘 모르는데, Django 개발 안해봤는데, Vue.js 써본 적 없는데 ... 그래도 이 글이 제일 깔끔해보이기에 따라 가보기로 했다. 우선 글 대로 따..
logstash, File Input plugin 사용 예 Elastic Stack 으로 간단한 로그 모니터링 기능 구성해서 담당자들에게 보여주고 의견 들어보니 로그 지속적인 수집 및 시각화는 불필요하고 분석 대상 로그를 파일 단위로 실시간 파싱, Search API 학습 없이 장애 원인 추적 및 분석할 수 있는 기능 등이 우선 필요하다는군요. 요구사항만 놓고 보면 정규식과 (*)nix 유틸 조합한 쉘스크립트로 간단하게 처리 가능해보이긴 하지만 Elastic Stack 도입을 위한 포석을 깔기 위해 Elastic Stack을 가능한 활용해보기로 하고 작업 진행 중입니다. 진행 내용 메모. Windows 환경이라 batch 파일 이용해서 다음과 같이 구성해보았습니다. @echo off set LF=%1 set LOG_FILE=%LF:\=/% set HOST=ES_..
Windows에서 java 프로세스 강제 종료 Windows 에서 Logstash 프로세스를 중단시키는 스크립트 짜던 김에 간단히 정리. 실행 중인 java 애플리케이션을 강제 종료하려면 다음과 같은 방법으로 간단히 되지 않을까 싶다. C:>taskkill /IM java.exe /F 파워쉘이라면 이렇게 PS> Stop-Process -Name "java" -Force 그런데, 특정 java 프로세스만 죽이려면? jdk 설치 되어 있다면 가장 간단한 방법이 jps 를 이용하는거. C:>for /f "tokens=1" %i in ('jps -m ^| find "Logstash"') do ( taskkill /F /PID %i ) jps 사용 안한다면 파워쉘로 이런 식으로. PS>(Get-WmiObject Win32_Process -Filter "Nam..
[grok]로그 파싱 위한 간단한 grok 패턴 예 애플리케이션 로그 통합뷰를 제공하기 위해 기존 애플리케이션 로그들 패턴을 정리하는 중. 2019-11-11 11:23:52 [INFO ] [INF_M1] - {"msgType":"RECV_SENSOR_INFO","msgJson":"{\"mchnId\":\"T768\",\"mchnTp\":\"M1\",...}"} 2019-11-16 00:00:00 [WARN ] [INF_M1] - Producer - Action: Send Object, {"msgType":"RECV_SENSOR_INFO","msgJson":"{\"mchnId\":\"T768\",\"mchnTp\":\"M2\",...}"} 2019-11-11 12:31:00 [WARN ] [INF_M2] - Producer, Action, Send Obj..
[Batch]batch 에서 python 스크립트 처리 호출 결과 이용 방법 batch 파일에서 python 스크립트를 실행하고 그 처리 결과에 따라 batch 스크립트 실행 종료 또는 계속 수행 여부를 판단해야할 일이 생겼다. 리턴값을 리다이렉션을 이용해서 사용하는 방법( https://stackoverflow.com/questions/32559614/how-can-i-get-return-value-string-from-called-python-by-batchfile )이 우선 눈에 띄었는데 그리 깔끔해보이진 않는다. 그리고 일단 저 방식을 쓰기 위해선 기존에 짜놓았던 python 스크립트에 리턴값을 추가로 지정해줘야 하는 것도 지금 문제에서는 적절해보이지 않았고. 좀 더 뒤져보다가 깔끔한 방법을 찾았다. https://bear.im/bearlog/2007/152/getting..
[Elastic Stack]Logstash 에서 json 필터 적용 애플리케이션 로그 관리를 위해 Elastic Stack 을 적용해보려고 시도 중. 예전에 사전 학습 거의 없이 톰캣 로그로 기능 맛보기 해볼 때는 몰랐는데 막상 실제 로그 이용해보려 하니 막막해져서 우선 Elastic Stack 관련 책으로 기본 학습부터 도전. 그런데 Elastic Search 책들이 대부분이고 Kibana 나 Logstash 다룬 책들은 거의 눈에 띄지 않네요. 몇 권의 Elastic Search 책들 골라 클러스터, 노드 관리 등은 건너 뛰고 인덱스, 매핑, 검색 기능 등만 빠르게 훑어본다고 봤는데 그러고 나니 머릿 속이 더 하얗게 되는 느낌. 책 덮고 적용 도전. Kibana 에서 인덱스 관리하는 부분, Dev Tools, Discover 사용법 등 간단히 학습. Logstash ..
[python]xml, yaml 다뤄보기 프로그램 내에서 사용되는 패러미터를 설정하는 xml 파일이 있다. 각 개발자는 로컬에서 개발할 때 설정값을 xml 에 직접 선언해놓고 쓰는데 싸이트 배포를 위해 빌드 시에는 가변성 유지를 위해 설정값을 별도의 파일로 관리하고 있는 중. 이를 위해 빌드용 환경 파일을 수작업으로 관리해왔는데 이걸 좀 개선해서 개발자가 패러미터를 추가/삭제 등을 했을 때 자동으로 반영하기 위해 빌드용 환경 파일을 동적으로 생성해주는 프로그램을 하나 짜보았다. 개발자 환경 파일과 패러미터 관리 파일을 비교하여 개발자 환경 파일과 차이 나는 경우 패러미터 관리 파일에 변경분을 반영하고 그걸 다시 반영한 빌드용 환경 파일 생성. - 싸이트 배포 빌드용 환경 파일 0: print(var_file, "- Remove Variables..