데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

오픈소스를 활용한 데이터 모니터링 : 기업용 모니터링 도구 Zabbix

데이터 이야기
작성자
dataonair
작성일
2018-09-18 00:00
조회
6287


오픈소스를 활용한 데이터 모니터링

기업용 모니터링 도구 Zabbix



1. 서론

여러 기업에서 데이터를 수집하거나 시스템을 운영할 때 다양한 문제에 직면하게 됩니다. 이러한 문제에 대한 원인을 파악하고 해결하기 위하여 로그를 분석하거나 협력업체의 도움을 받습니다. 때로는 해당문제가 발생한 지 상당한 시일이 흐른 후에 인지되는 경우도 있습니다. 물론 전용 모니터링 시스템이 구축되어 있을 경우 문제발생 위치를 파악하고 즉시 해결되기도 하지만 대다수의 중소규모 기업의 경우 이러한 상용 솔루션이 부재하며, 간단한 문제해결에도 어려움을 많이 겪습니다. 다음에 소개할 Zabbix 라는 강력한 오픈소스 도구를 활용하면 문제발생 즉시 담당자에게 통보를 할 수 있고 분석 정보를 제공받을 수 있어 연속성 있는 비즈니스 수행이 가능합니다.


Zabbix는 대표적인 모니터링 도구로서 전세계 여러 사이트에서 애용되고 있습니다. 우리나라에서도 사용률이 점차 증가하고 있으나 아직 전용 커뮤니티가 생성될 만큼 성숙되지는 않았습니다. Zabbix 웹프론트엔드는 한글화를 지원하며 쉽게 메뉴 수정이 가능합니다. 수많은 서버와 네트워크 장비에 바로 사용할 수 있는 플러그인이 존재하며, 대시보드를 이용한 실시간 시각화를 지원합니다. Grafana 등의 유명한 시각화 프론트엔드를 연계하여 화려한 시각화를 구현할 수도 있습니다.


column_img_3557.jpg


[그림1] Grafana를 연계한 모니터링 시각화


모니터링 시스템의 핵심적인 기능은 인프라 환경의 하드웨어 및 소프트웨어 장애를 탐지하고 통보하는 것에 있습니다. 대표적인 도구에 NMS(Network Management System)가 있으며, SNMP등의 정보를 사용하여 문제점을 분석하고 오류를 표시해줍니다. 모니터링 도구가 없다면 시스템의 정상여부 확인이 거의 불가능하며, 장애 예측을 위한 분석이 매우 어려워집니다.


데이터 수집의 연속성, 데이터 무결성, 시스템 운영의 안정성, 문제점에 대한 시각화 등을 위하여 기업의 표준화된 통합 모니터링 시스템은 필수적입니다. 이러한 모니터링 시스템 도입 비용을 최소화하며 기업의 환경에 맞게 커스터마이징을 쉽게 하기 위하여 오픈소스 도구가 절실히 필요합니다.
이처럼 데이터수집, 시스템모니터링, 이벤트관리, 히스토리관리, 데이터시각화 등 여러 곳에서 다양하게 활용 가능한 무료 모니터링 도구인 Zabbix를 기업에 적용하고 구현할 수 있는 방안에 대해 공유하고자 합니다.



2. Zabbix의 기능 및 구성요소

column_img_3558.jpg


[그림2] Zabbix의 모니터링 영역

Zabbix는 각종 서비스, 클라우드, 컨테이너, 가상머신, 하드웨어, 데이터베이스, 애플리케이션 등의 모니터링이 가능하며 이를 위해 측정값수집, 오류탐지, 시각화, 통보 및 치료, 보안 및 인증, 자동탐색, 분산모니터링, 외부연계API 등의 기능을 지원합니다. Hadoop의 Flume과 유사한 정보수집 에이전트가 있으며, 이를 이용하여 원격실행, 서버별 데이터수집이 가능합니다. 분산처리를 지원하여 수천대의 호스트도 문제없이 실시간으로 모니터링과 이벤트 탐지, 통보를 수행합니다. 다른 상용 모니터링 시스템과 견주어 보아도 Zabbix는 안정적이며, 기간별 조회 속도 등의 성능이 잘 나옵니다.


column_img_3559.jpg


Zabbix의 핵심적인 기능은 Zabbix 서버 프로세스와 에이전트 프로세스에서 지원됩니다. 사용자 설정 및 이벤트 등록은 웹프론트엔드에서 이루어지며 이러한 프로세스의 실행을 위해 전용 Zabbix 서버가 필요합니다. 윈도우 상에서 WSL이나 Docker 등의 가상화를 이용하여 수행할 수도 있습니다. CentOS, Ubuntu 등의 여러 리눅스 배포판을 위한 패키지로 설치할 수 있고 공개된 소스를 이용하여 유닉스 계열 서버에서도 직접 컴파일하여 설치할 수 있습니다. 특히 에이전트는 거의 모든 장치 및 OS를 지원하며, 지원되지 않더라도 스크립트 등의 커스터마이징된 프로세스를 이용하여 Zabbix 서버로 전송이 가능합니다. 단순 프로세스에 대한 모니터링뿐만 아니라 기업내의 모든 비즈니스 프로세스 모니터링 통합, 외부기관과의 연계 상황, 라우터/스위치/방화벽 등의 거의 모든 네트워크 장치, 전체 OS 상태와 같이 원한다면 모든 것을 감시할 수 있습니다.


모니터링 기능 중에서 사용자 통보는 장애예방과 장애시간 최소화를 위해 매우 중요합니다. Zabbix는 화면에 알람을 표시하는 것만이 아닌 장치별, 프로세스별, OS별 등으로 담당자를 지정하여 이벤트 전송이 가능합니다. 전송 매체도 카카오, 라인 등의 SNS 메시징 서비스를 연계할 수 있습니다.


column_img_3560.jpg


[그림3] Zabbix의 구성요소



Zazbbix는 핵심 프로세스인 Zabbix server와 Agent로 이루어져 있으며, 분산환경 적용을 위해 필요한 Zabbix proxy와 명령행 유틸리티인 Zabbix sender와 Zabbix get 등을 제공합니다. Zabbix 서버로 수집되는 정보를 저장하기 위하여 MySQL, MariaDB, SQLite, PostgreSQL 등의 여러 데이터베이스를 지원합니다. Zabbix 수집서버의 가용성을 위하여 이중화된 환경을 구성할 수도 있습니다. 반드시 필요한 구성요소로는 Zabbix server 와 Agent 이며, Agent가 없이 단순 SSH 등의 신뢰연결을 통하여 Host 로부터의 데이터 수집을 할 수도 있습니다.


column_img_3561.jpg




3. Zabbix 활용

3.1 Zabbix 용어 이해

Zabbix에서 쓰이는 용어에 대해 살펴보겠습니다. Zabbix는 초기 학습곡선이 약간 가파르나, 용어 및 인프라에 대한 기본지식이 있으면 누구나 쉽게 구성할 수 있습니다. 특히 사전 정의된 가상화 환경 이미지를 이용하면 약간의 환경설정 수정만으로 원하는 모니터링을 바로 시작할 수 있습니다.


column_img_3562.jpg

3.2 Zabbix 모니터링을 위한 설정

Zabbix의 가장 기본이 되는 단위는 Host 입니다. 모니터링 대상이 될 Host를 먼저 설정한 후 Item을 정의합니다. 해당 Host에 에이전트를 수행하고 Zabbix Server와 연동하면 Host로부터 측정값이 수집되게 됩니다. Trigger 를 사용하여 Threshold 를 정의하고 Event를 연결한 후 Action을 정의하여 특정 이벤트에 대한 사용자 통지 등을 구현합니다. 이를 위해 Zabbix는 사전정의된 다양한 Template 과 Trigger를 제공합니다.


EMMA 등의 SMS 및 MMS 서비스를 사용하고 있다면 Media 추가로 실시간 메시지 통지가 가능합니다. Telegram, 카카오톡 등의 OpenAPI를 사용하여 메신저로 이벤트 상세내용과 그래프 이미지를 전송할 수도 있습니다.


column_img_3563.jpg


[그림4] Zabbix에서 Telegram으로 전송된 장애 메시지 및 그래프


column_img_3564.jpg


[그림5] Zabbix 메뉴에서의 Problems를 통한 현재 상태 조회

3.3 Zabbix 활용 방안

Zabbix는 NMS 등의 네트워크나 서버 모니터링뿐만 아니라 서버내의 애플리케이션, OS 로그분석, 빅데이터 기초자료 수집검증 등에도 사용될 수 있습니다. 자원의 사용률과 추이를 분석하여 차후 인프라 확장의 필요성을 도출할 수 있고, 장애예방 및 장애분석에 활용될 수 있습니다. 이슈관리와 장애관리로도 사용할 수 있는데 시계열 중심의 이슈 발행과 해당 이슈의 해결 상태를 한눈에 확인이 가능합니다.


column_img_3565.jpg




4. 결론

기업에서 다양한 용도로 사용가능한 모니터링 도구 Zabbix를 살펴보았습니다. 인프라 담당자에게는 서버의 안정적인 운영을, 애플리케이션 운영 담당자에게는 배치처리 및 프로세스 정합성을, DBA 에게는 DBMS의 상태점검 및 부하상황을, 빅데이터 담당자에게는 자료수집 및 분석현황을, 경영진에게는 직관적 시각화를 지원해 줄 수 있는 Zabbix는 훌륭한 오픈소스 모니터링 도구입니다. 오픈소스 모니터링 도구에는 이외에도 Nagios, WhaTap, Cacti, Zenoss 등이 존재하지만 무궁무진한 확장성을 가진 Zabbix는 최소의 비용으로 최대의 신뢰성과 안정성을 이끌어 낼 수 있는 완벽한 오픈소스 모니터링 도구라고 소개할 수 있습니다.


프로젝트를 통한 신규 시스템 구축의 최종 완료는 해당 시스템의 모니터링 환경이 구축되었을 때 입니다. 적은 비용 투입으로 대규모의 기업에서 활용가능한 Zabbix 는 단순 기업내의 서버 모니터링과 빅데이터 환경의 데이터수집 정합성 추적, VDI 가상화 환경 모니터링, Docker 등의 컨테이너 모니터링을 즉시 수행할 수 있도록 운영자, 개발자, 관리자가 알아야 할 핵심 소프트웨어 중의 하나입니다.



출처 : 한국데이터진흥원

제공 : 데이터 전문가 지식포털 DBguide.net