소용환의 생각저장소


Free Software, Cloud Computing, and Troubleshooting

소용환의 생각저장소


Free Software, Cloud Computing, and Troubleshooting

Vyatta 네트워크 문제 추적 Part 3 - DUMP

tcpdump를 이용한 거대 Dump의 효율적인 분석방법

네트워크와 관련된 문제를 분석할 때 Packet을 Capture해서 분석하는 것 만큼 효과적인 방법이 있을까? 이 글의 소재가 되는 (제목이 아직은 잘못 붙여진) “Vyatta Network Interface Down Issue” 역시, 결과적으로는 통신 내용을 확인하는 Packet Dump 분석을 통해 증상이나마, 증상이나마 확인할 수 있었다. [읽기]

Vyatta 네트워크 문제 추적 Part 2 - LACP

Vyatta의 LACP 단절 문제에 대한 Work Around

상용 제품의 한계로 인하여, 내게는 매우 중요한 문제이고 빠른 해결을 바라고 있지만 그것을 내가 어떻게 할 수 없는 경우가 있다. 바로 지금이 그런 상황인데, 이렇게 문제의 핵심에 접근하는 것이 제한적이거나, 원인을 정확히 알 수 없는 경우, 또는 원인을 안다 해도 근원적인 해결방법을 찾을 수 없을 때 우리가 할 수 있는 최선은 우회경로(Work Around)를 찾아 문제를 피하는 것이다. [읽기]

Vyatta 네트워크 문제 추적 Part 1

로그, 상태, 패킷 자료를 바탕으로 네트워크 관련 문제 추적하기

2018년의 첫 글은 2017년의 마지막 사건으로 시작하려고 한다. 이 마지막 사건을 “Vyatta Network Interface Down Issue“라는, 알고 보면 문제를 정확하게 기술하지 못하는, 잘못된 제목으로 일단 부를 것이다. 아무튼 (사건의 제목이 맞든 틀렸든) 어떤 프로젝트의 Vyatta 네트워킹에 문제가 발생했고, 이 글은 이차 저차 내게 넘어온 이 “네트워크 관련 문제”를 정확하게 파악하기 위한 추적 과정을 정리하는 글이다. [읽기]

Kibana Heat Map으로 3차원으로 펼쳐 보기

Elastic Stack을 활용해서 서비스 이벤트 해석하기

“모니터링은 경보가 아니라 해석“에서 들었던 기존 모니터링의 문제점 중 하나는 시계열 데이터를 효과적으로 다루지 못한다는 점이었다. 이 문제는, 데이터를 단순히 시간순으로 배열하는 것으로 그치는 문제와, 시간을 단순히 1차원으로만 본다는 점을 포함한다. 특히, 시간은 바라보는 기준이 될 뿐 우리가 관심을 갖는 것은 주기성과 리듬을 갖는 인간활동과 연관된 것이기 때문에 과거의 기록을 바탕으로 미래를 예측하기 위해서는 시간과 사건을 입체적으로 바라보는 것이 필요하다. [읽기]

Kibana Visual Builder로 이벤트 묶어 보기

Elastic Stack을 활용해서 서비스 이벤트 해석하기

앞선 글 “모니터링은 경보가 아니라 해석“에서, 기존 모니터링 환경의 한계 중 하나로 “기능 단위의 고립”과 “서비스 관점의 통찰 부재”를 들었다. 개별 구성요소에 대한 모니터링도 중요하지만, 거기서 멈추지 말고 그 요소들이 궁극적으로 이루게 되는 “서비스”와 사건들의 연관 관계, 인과 관계에 대한 분석이 사건을 해석하는데 매우 중요하다는 것을 강조하기 위함이었다. 이 글에서는, Elastic Stack, 특히 Kibana에서 서로 다른 원천으로부터 수집된 데이터를 엮어서 표현하기 위한 기법 중 하나를 정리하여 기록하려 한다. [읽기]

모니터링은 경보가 아니라 해석

Elastic Stack을 활용해서 서비스 이벤트 해석하기

사실, 나를 아는 사람들은 믿지 않을 수도 있지만, 나는 조금 강하게 말해서 운영관점의 모니터링에 대하여 매우 회의적이다. 거의 무용론자에 가깝다. 그럼에도 불구하고, 모니터링을 매우 좋아하는데, 그것은 내가 바라보는 모니터링은 문제가 발생한 것을 확인하는 모니터링이 아니라 지속적으로 대상의 꼴을 파악하고 그것이 말하는 바를 읽어내기 위한 분석시스템으로 바라보기 때문이다. [읽기]

Elastic Stack 6.0 설치하기

Elastic Stack을 활용해서 서비스 이벤트 해석하기

서로 독립적인 버전체계를 사용하면서 개별 제품의 연합군 같은 느낌이 더 강했던 ELK Stack, 즉 Elasticsearch, Logstash, Kibana는 이제 버전체계를 통일하고 Elastic Stack이라는 공식적인 명칭으로 사용하면서 더 활발하게 시장 공략을 하고 있는 것 같다. 이 글은, 지난번 소개했던 “Elastic NMS Part 1: 엔진을 켜라!“의 업데이트 성격의 글로, Elastic Stack의 현재 버전인 6.0 버전에 대한 설치과정을 정리한 것이다. [읽기]

Elastic NMS Part 6: SNMP 수신하기

Elastic Stack을 바탕으로 NMS 만들기

“아, 이건 기록을 안 해뒀네…” 하면서 그냥 잊으려 했는데, 메모를 정리하다가 발견해버렸다. ㅠ.ㅠ Elastic Stack으로 NetFlow와 SNMP 모니터링을 구성했던 이야기. NMS라고 하면서 SNMP와 NetFlow를 빼면 좀 섭하지… 했다가, 귀찮지만 닫았던 묶음글을 다시 열어서 마지막으로 이번 이야기, NetFlow와 SNMP 모니터링 하기를 더 넣는다. 이번엔 SNMP로 정말 끝! [읽기]

Elastic NMS Part 5: NetFlow 수신하기

Elastic Stack을 바탕으로 NMS 만들기

“아, 이건 기록을 안 해뒀네…” 하면서 그냥 잊으려 했는데, 메모를 정리하다가 발견해버렸다. ㅠ.ㅠ Elastic Stack으로 NetFlow와 SNMP 모니터링을 구성했던 이야기. NMS라고 하면서 SNMP와 NetFlow를 빼면 좀 섭하지… 했다가, 귀찮지만 닫았던 묶음글을 다시 열어서 마지막으로 이번 이야기, NetFlow와 SNMP 모니터링 하기를 더 넣는다. 그 중 NetFlow 먼저. [읽기]

Elastic NMS Part 4: Kibana로 Visualize하기

Elastic Stack을 바탕으로 NMS 만들기

범용 자료분석 플랫폼인 Elastic Stack의 미모를 담당하는 구성요소가 바로 Kibana이다. Kibana는 Elasticsearch와 연동하여 사용자가 자유롭게 질의를 만들어 날리고, 그 결과를 시각적으로 표현할 수 있는 클라이언트인데, “자유로운 분석 플랫폼“으로써의 Elastic Stack이 아닌, “독자적인 응용프로그램을 위한 자료분석 백엔드“로써 Elastic Stack을 활용하는 경우에는 상대적인 비중이 낮은 구성요소이다. 그래서 이 글에서는, Kibana의 기능을 겉핥기로 스쳐 지나가려고 한다. [읽기]

Elastic NMS Part 3: Mapping과 Template

Elastic Stack을 바탕으로 NMS 만들기

Elastic Stack은 사용자가 원하는 다양한 유형의 자료를 저장하고, 검색하고, 분석할 수 있는 범용의 분석 플랫폼이다. Elastic Stack은 기본적으로 다루는 자료의 형식을 제한하거나 가리지 않으며 흔히 말하는 “비정형 자료”를 “모두” 소화다고 말할 수 있지만, 의미있는 분석을 효과적으로 하기 위해서는 자료의 의미, 즉 자료형에 대한 고려가 필요하며, 개별 자료를 어떻게 다룰 것인지에 대한 정의가 필요하다. 이 글은, Elasticsearch가 자료를 다루는 방식과 자료형을 사용자가 정의하는 방법에 대하여 정리한다. [읽기]

Elastic NMS Part 2: Syslog 원격로깅

Elastic Stack을 바탕으로 NMS 만들기

앞선 Elastic NMS Part 1: 엔진을 켜라!에서는 자료분석 플랫폼 Elastic Stack을 설치하고 기본적인 동작을 확인하는 과정에 대해서 정리했다. 이제 구체적으로 이 환경의 기능을 검토할 차례인데, 내가 Elastic Stack을 활용하는 목적이 NMS, 특히 로그중앙화(Log Aggregation) 환경을 만드는 것이므로 로그를 수집하고 기본적인 파싱을 하는 과정을 먼저 진행했다. [읽기]

Elastic NMS Part 1: 엔진을 켜라!

Elastic Stack을 바탕으로 NMS 만들기

다중가입자 환경을 지원하는 쓸만한 로그중앙화 솔루션이 있을까… 한동안 찾던 중에, 적당한 것을 찾기가 쉽지 않았던 것도 있고 또 내가 원하는 세세한 부분을 반영하기에는 조금 저수준에서 접근할 필요가 있겠다는 생각이 들었다. 그래서 그 기반으로 사용할 후보로 검토했던 것이, 이미 많은 프로젝트에서 Backend로 사용되고 있는, 유명한 데이터 분석도구 Elastic Stack 이었다. [읽기]

Android Nougat, Rsync Backup 하기

Rsync로 Wifi 넘어 Android 데이터 백업하기

똘똘한 전화기 Android를 처음 쓰기 시작했던 7년 전부터, 유닉스/리눅스 세상의 만능 복사기인 rsync를 이용하여 내 폰의 데이터를 백업해왔다. 그러나 처음에는 간단하게 되던 것이 Jelly Bean기반의 갤럭시S3로 갈아타면서, 그리고 이번엔 Nougat 기반의 갤럭시A5로 갈아타면서 꽤나 성가시게 됐다. 이 글에서는 이 성가셨던 내용과 내가 rsync로 데이터를 백업하기 위해 고민했던 내용과 결과를 기록한다. [읽기]

UART, Semi-Social OAuth2 Provider

현천 프로젝트를 위한 OAuth2 제공자 UART를 소개합니다

UART는 내가 실무에서 관리했던 서비스들의 서비스 중심 모니터링 시스템인 “현천”의 Single Sign On 서비스를 위한 인증/인가 관리체계이자 사용자/권한관리 플랫폼이다. 원래는 Ruby on Rails 기반으로 만들었던 SiSO가 실전에서 그 역할을 담당하고 있었으나 조금 다른 각도에서 기능을 보완하려던 중, 아예 Go 언어로 새롭게 작성해버렸다. 이 글에서는 UART를 개발하게 된 배경과 용도, 그리고 기능에 대하여 간략하게 소개한다. [읽기]