Reminiscence

작성일 : 2008.02.11
작성자 : mrmsm

가끔씩 운영중인 리눅스 서버에서 데몬이 죽을때가 있습니다.

제 경우에는 Whois 데몬과 SMS발송용 처리 데몬 등등..

실제 자체적인 복구기능이 없는 데몬들이 많이 있지요..

그런 데몬들이 실질적으로 메모리에 상주되어 있는지만 체크하여 관리자에게 메일로 알려 주는 스크립트를

아주 간단하게 작성하여 보았습니다.

필요하신 분들은 수정하셔서 사용하시기를..

#!/bin/bash
#데몬 PID 값

WHOIS_PID=`ps -C 데몬이름 -o pid=`
C_DATE=`date "+%Y-%m-%d %H:%M:%S"`
HOST_NAME=`hostname`
#관리자 메일 주소
MAIL_TO=
TESTMAIL@lovetonight.net
#보내는 서버데몬 이메일 주소(가칭)
MAIL_FROM="
TESTADMIN@lovetonight.net"

#관리자에게 보낼 알람메일 내용
MAIL_CONTENT="Return-Path: <$MAIL_FROM>
From: DDA<$MAIL_FROM>
To: $MAIL_TO
Subject: [DDA] $HOST_NAME 서버의 데몬에 장애가 발생하였습니다.[$C_DATE]
MIME-Version: 1.0
Content-Type: text/html; charset=euc-kr
작성시각 : $C_DATE<br>
작성자 : Whois Daemon Monitor<br>
내용 : <br>
Whois 데몬에 이상이 발생하여 자동으로 재시작 하였습니다. <br>
메일을 보는 즉시 해당 서버를 점검하여 주시기 바랍니다.<br>
<br>
작업이 완료되면, 이에 대한 조치내역을 보고하여 주시기 바랍니다.<br>
."


# $WHOIS_PID의 문자열이 0일 경우, 즉, PID가 없을 경우
if [ -z $WHOIS_PID ]
then
      echo "[$C_DATE] 에러문구 ." >> /var/log/whoism_log.log
      echo -e "$MAIL_CONTENT" | sendmail -f $MAIL_FROM $MAIL_TO
fi

말그대로 해당 프로세스이름을 가진 데몬이 떠 있는지를 확인하기 위한 스크립트 입니다.

데몬이 떠 있으면 PID값이 확인되고, 그렇다면 정상적인것으로 간주 하는 것이지요.

스크립트를 사용하시는것은 Crontab에 등록하시어 5분 또는 10분에 1회씩 체크하도록 하시면 됩니다.

머.. 보잘것 없는 스크립트이긴 하지만 가끔 유용하게 써먹기도 하니 필요하신 분들만 ^^;;

만약 하나의 서버에서 체크해야 하는 프로세스가 여러개일 경우 프로세스 네임을 인자값으로 받아들여 정해진 프로세스네임을 체크하는것이 아닌 받아들인 인자값을 체크 하도록 하시면, 여러개의 데몬도 하나의 스크립트 파일로 운영이 가능합니다.

허접한 스크립트 입니다. 필요하신 분들은 퍼가셔도 좋습니다.
(리플은 달아주세요  ㅜ_ㅜ)
신고

댓글 0개가 달렸습니다.

OpenSource NMS 툴

Linux2007.08.31 17:14

[공개 네트워크 모니터링 툴 활용]  숨겨진 진주를 찾아라


이더리얼이나 MRTG, NTOP 등 잘 알려진 공개 네트워크 모니터링 툴 외에도 Nagios나 JFFNMS, Zabbix 등의 잘 알려지지 않은 많은 공개 프로그램들이 있다. 이들 또한 많은 네트워커들의 사랑을 받고 있는 툴들로 유명 공개 툴에 못지않은 기능을 제공하는 제품도 쉽게 찾을 수 있다. 앞에서 소개하지 못한 여러 공개 네트워크 모니터링 툴을 간단히 살펴보겠다.


네트워크로 점차 다양하고 많은 장비가 연결되고, 사용자의 수가 늘어나면서 네트워크 관리자의 책임이 점차 무거워지고 있다. 이미 다양한 네트워크 모니터링 툴을 주위에서 쉽게 찾을 수 있으며, 모니터링뿐 아니라 관리 기능까지 제공하는 툴도 있다. 더구나 조금만 노력한다면 유명 상용제품에 뒤지지 않는 유용한 공개 네트워크 모니터링 툴도 찾아볼 수 있다.

일례로 유명 공개 소프트웨어 프로젝트 사이트인 소스포지(sourceforge.net)에는 네트워킹 분야에만 970개의 프로젝트가 진행되고 있으며, 300여개의 프로젝트가 활발한 활동을 벌이고 있다. 여기에는 최근 인기를 끌고 있는 Nagios, net-snmp, MIDAS, Excalibur, Zabbix, JFFNMS 등의 프로젝트 외에도 AirSnort나 KDE WiFi Manager와 같은 무선 LAN 환경을 위한 모니터링 툴 프로젝트도 쉽게 찾아볼 수 있다.

상용 제품에 뒤지지 않는 공개 툴
네트워크 모니터링 툴은 장비의 작동 상태와 CPU 사용량, 네트워크 트래픽 처리량, 그리고 패킷 분석 등의 기능을 제공하는 툴을 얘기한다. 이같은 기능을 한꺼번에 모두 제공하는 툴도 있지만, 공개 네트워크 모니터링 툴 중에는 일부 기능만을 제공하거나 별도의 플러그인을 통해 다양한 기능을 제공하는 툴도 있다.

네트워커들에게는 고전적인 ping이나 traceroute, df, du, ps, netstat 등의 간단한 명령어부터, MRTG와 같은 네트워크 트래픽 모니터링 툴, 그리고 상용 툴로는 오픈뷰나 유니센터 TNG, 티볼리 등의 강력하고 다양한 기능을 제공하는 네트워크 관리 툴, 그리고 윈도우 환경에서의 간단한 네트워크 모니터링을 위한 What's up이나 스니퍼 등의 제품들이 있다.

이같은 네트워크 모니터링 툴은 네트워크의 상태를 진단하는 네트워크 관리의 목적 외에도 최근에는 보안을 위한 목적으로도 많이 사용되고 있기 때문에, 네트워크 관리자라면 한두가지의 툴 정도는 확실하게 익히고 있어야 한다.

특히 상용 제품에 뒤지지 않는 기능과 완성도를 제공하는 툴을 공개 소프트웨어 중에서도 쉽게 찾을 수 있기 때문에 네트워크 관리자라면 업무의 효율을 높이기 위해 간단한 공개 네트워크 모니터링 툴의 종류와 사용법을 알아 둘 필요가 있다.

이제 몇가지 중요 공개 네트워크 모니터링 툴에 대해 알아보자.

Cheops
Cheops는 오픈소스 네트워크 사용자 인터페이스로 네트워크 환경을 관리하기 위한 다양한 기능을 제공한다는 것이 특징으로 네트워크 관리를 위한 스위스 아미 나이프를 지향하고 있다.

Cheops는 리눅스의 GNOME 환경에서 운영되며, GIMP 툴킷인 GTK+로 구현된 네트워크 관리 툴이다. 이 툴은 복잡한 네트워크 환경에서 원하는 네트워크로 바로 이동하기 쉽도록 다중 페이지를 지원하며, 네트워크에 연결된 호스트의 운영체제를 직접 찾아 적합한 아이콘으로 표시해준다.

또한 복잡한 대형 네트워크 환경에서 빠르고 쉽게 원하는 호스트를 찾을 수 있는 기능을 제공한다. 이외에도 일반적인 TCP 포트 스캔 기능을 제공하며, UCD SNMP 라이브러리를 사용하는 SNMP 브라우저를 내장하고 있다. 또한 HP 오픈뷰와 흡사한 SNMP 플러그인 지원 기능을 제공한다.

한편 소스포지에서는 Cheops의 업그레이드 버전이라고 할 수 있는 Cheops-ng 프로젝트를 진행하고 있다(cheops-ng.sourceforge.net).

네트워크 관리자를 위한 스위스 아미 나이프 Cheops


운영 환경 : 리눅스(GNOME)
홈페이지 : www.marko.net/cheops/

Nagios
성능이나 기능에 비해 비교적 잘 알려지지 않은 Nagios는 얼마 전까지만 해도 NetSaint라는 이름으로 불리던 리눅스 기반 네트워크 모니터링 툴이다.

Nagios는 기본적으로 SMTP, POP3, HTTP, NNTP, PING 등의 네트워크 서비스의 상태를 모니터링할 뿐 아니라 플러그인을 통해 다양한 서비스에 대한 모니터링 기능을 확장할 수 있다. 또 서버의 CPU 사용량, 프로세스, 디스크 사용량, 메모리 사용량 등을 확인할 수 있고, 별도의 장비를 설치할 경우에는 전산실 등 서버 주변의 온도도 확인할 수 있다.

또한 네트워크 구성을 2D나 3D로 한눈에 볼 수 있도록 원형이나 트리 구조로 보여줄 뿐 아니라 각각의 네트워크 장비와 서버 운영체제별로 아이콘을 제공한다. 특이 아이콘 모음을 이미지팩이라는 별도의 패키지로 제공하고 있으며, 이미지팩에 따라 다양한 방식으로 구성도가 그려진다.

플러그인으로 다양한 기능 제공하는 Nagios


운영 환경 : 리눅스, 유닉스
홈페이지 : www.nagios.org

Nmap
Nmap(Network Mapper)은 네트워크와 보안 정책 관리를 위한 오픈소스 유틸리티다. 대형 네트워크에 대한 빠른 검색을 위해 설계된 Nmap은 로(raw) IP 패킷을 통해 네트워크에 연결된 어떤 호스트가 연결돼 있는지, 어떤 서비스가 제공되고 있는지, 혹은 어떤 운영체제가 실행되고 있는지, 어떤 방식의 패킷 필터/파이어월이 사용되고 있는지 등의 다양한 정보를 제공한다.

Nmap은 또한 다양한 컴퓨터로 포팅돼 있으며, 다양한 콘솔과 GUI 버전이 나와 있다.

수백에서 수천대가 넘는 컴퓨터가 연결된 대형 네트워크까지 지원하는 Nmap은 리눅스와 윈도우는 물론이고 FreeBSD, OpenBSD, 솔라리스, IRIX, 맥OS X, HP-UX, NetBSD, 썬OS, Amiga 등 거의 모든 운영체제를 지원한다.

네트워크와 보안 정책 관리를 위한 Nmap


운영 환경 : 리눅스, 유닉스, 윈도우, 맥OS X
홈페이지 : www.insecure.org/nmap/

JFFNMS
JFFNMS(Just For Fun NMS)는 PHP로 구현된 프로그램으로 기본적으로 cron을 이용해 일정 간격으로 SNMP 데이터를 저장하고 이를 그래프로 보여주는 툴이다.

MySQL이나 PostgreSQL을 지원하는 JFFNMS는 아파치와 PHP, MySQL가 구축된 환경이라면 쉽게 프로그램을 설치할 수 있다. 따라서 운영체제에 독립적이고 리눅스나 윈도우, 유닉스 환경에서 운영할 수 있다.

아직 다른 툴에 비래 그래픽적인 요소도 뒤떨어지고, 보여주는 정보에 있어서도 미치지 못하지만 서버 관리자용 프로그램으로는 충분한 기능을 제공한다. 더우기 JFFNMS는 단순화된 인터페이스와 꼭 필요한 정보만을 보여주기 때문에 더욱 간편하게 호스트와 네트워크의 상황을 파악할 수 있다는 장점도 된다.

PHP 스크립트로 제작된 네트워크 모니터링 툴, JFFNMS


운영 환경 : 리눅스, 유닉스, 윈도우(PHP4, MySQL 이나 PostgreSQL)
홈페이지 : jffnms.sourceforge.net

Zabbix
아직 정식 버전이 나오지 않은 Zabbix는 MRTG와 비견되는 다양한 네트워크 정보를 제공한다는 것을 특징이다. 여기에 Nagios처럼 서버와 애플리케이션 정보까지 제공한다는 것이 Zabbix의 장점이다.

Zabbix는 기본적으로 SMTP, IMAP, POP3, HTTP, SSHD 등의 기본적인 프로토콜과 SNMP v1/v2를 지원하는 장비들에 대해서는 기본적인 설치만으로도 모니터링이 가능하고, 기타 서비스나 서버 상태를 모니터링하기 위해서는 운영체제별로 Zabbix 에이전트를 설치해 해당 정보를 수집할 수 있다.

현재 Zabbix 에이전트가 지원하는 운영체제로는 공식적으로 리눅스와 윈도우, OpenBSD, FreeBSD, HP-UX, AIX, 솔라리스, SCO 오픈 서버, 맥OS X 등으로 대부분의 운영체제를 지원하고 있다. 하지만 Zabbix는 서버 에이전트는 윈도우 등의 플랫폼도 지원하고 있지만, 리눅스와 유닉스만을 지원하고 있다.

Zabbix는 또한 장기간의 모니터링 로그를 저장할 수 있으며, 이를 위해 MySQL이나 PostgreSQL을 지원한다.

장기간의 모니터링 로그 분석이 가능한 Zabbix


운영 환경 : 리눅스, 유닉스(MySQL 혹은 PostgreSQL)
홈페이지 : zabbix.sourceforge.net

신고

댓글 0개가 달렸습니다.

[펌] NMS 툴

분류없음2007.08.31 17:13

MIDAS NMS라고 open source NMS 겸 침입탐지 솔루션이 있군.


http://blog.empas.com/freekang74/6804508

에 누군가가 삽질하면서 인스톨해본 수기가 있고,


홈페이지는 http://midas-nms.sourceforge.net/  이다.

=====

이거 말고 bigsister라고 있는데... 이것도 막강한 것 같군, 특히 command들이 쓸만한 듯. NT도 되고.



홈페이지 : http://bigsister.graeff.com/

여기는 설명이 잘 나와 있는 곳 : http://www.joerg.cc/html/bigsis/index.html

요건 깔아본 놈의 수기 : http://blog.empas.com/freekang74/1410465?d=2004-09


====

Tripwire 라는 것도 있음.

홈페이지 : http://www.tripwire.com/

소스코드 : http://sourceforge.net/projects/tripwire/


=====

각종 NMS 관련 솔루션들...

http://www.findnetworkmonitoring.com/services/monitoring/profilehelp.php


  • Big Sister: Big Sister is an SNMP-aware network and system monitor. It provides a simple view of the current network status, notifies you of problems, generates status history, and can display a variety of system performance data.
    Big Sister Website: (http://bigsister.graeff.com/)

  • Cacti: Cacti is a PHP frontend to Tobias Oetiker's RRDTool software, which is used for network monitoring/graphing. Monitoring information is stored in a database, allowing you to display the data in graph format as you see fit.
    Cacti Website: (http://www.raxnet.net/products/cacti/)

  • Dsniff:

    Dsniff is a collection of tools for network auditing and penetration testing.


    Dsniff Website: (http://naughty.monkey.org/~dugsong/dsniff/)

  • Ethereal:

    Ethereal is an Open Source network protocol analyzer and packet dumper.


    Ethereal Website: (http://www.ethereal.com/)

  • Ettercap:

    Ettercap is a multipurpose sniffer/interceptor/logger for switched LANs. It supports active and passive dissection of several protocols and includes many features for network and host analysis.


    Ettercap Website: (http://ettercap.sourceforge.net/)

  • Ganglia:

    Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids. It is based on a hierarchical design targeted at federations of clusters. It relies on a multicast-based listen/announce protocol to monitor state within clusters and uses a tree of point-to-point connections amongst representative cluster nodes to federate clusters and aggregate their state. It leverages widely used technologies such as XML for data representation, XDR for compact, portable data transport, and RRDtool for data storage and visualization. It uses carefully engineered data structures and algorithms to achieve very low per-node overheads and high concurrency. The implementation is robust, has been ported to an extensive set of operating systems and processor architectures, and is currently in use on over 500 clusters around the world. It has been used to link clusters across university campuses and around the world and can scale to handle clusters with 2000 nodes.


    Ganglia Website: (http://ganglia.sourceforge.net/)

  • Honeyd:

    Honeyd is an Open Source "honeypot", which is capable of detecting and responding to network attacks. Honeyd improves security by providing mechanisms for threat detection and assessment. It also deters adversaries by hiding real systems in the middle of virtual systems.


    Honeyd Website: (http://www.honeyd.org/)

  • JFFNMS:

    JFFNMS is a Network Management System that can be used to monitor any standards compilant SNMP device, server, TCP port or custom poller. It is written in PHP and features a database backend (MySQL or PostgreSQL), graphical interface (interface traffic, monitoring status, event console, etc.) and integrated syslog logging.


    JFFNMS Website: (http://www.jffnms.org/)

  • MIDAS:

    MIDAS is a cross-platform network monitoring and intrusion detection server. It has many features, including failover support, RRD graphing, support for Nagios plugins and Big Brother clients, and a wide range of built-in checks.


    MIDAS Website: (http://midas-nms.sourceforge.net/)

  • Mon:

    mon is a general-purpose scheduler and alert management tool used for monitoring service availability and triggering alerts upon failure detection. mon was designed to be open and extensible in the sense that it supports arbitrary monitoring facilities and alert methods via a common interface, all of which are easily implemented with programs in C, Perl, shell, etc., SNMP traps, and special mon traps. mon provides support for distributed monitoring servers.


    Mon Website: (http://www.kernel.org/software/mon/)

  • MRTG: MRTG is a tool primarily designed to monitor the level of traffic on network links, although it can be used to graph a variety of different metrics (e.g. temperature). It generates HTML pages containing graphical images of traffic statistics for reporting purposes.
    MRTG Website: (http://www.mrtg.org)

  • Nagios:

    Nagios is a popular open source host, service and network monitoring program. It offers many features, including a plugin architecture for custom checks, customizable notifications, notification escalation, problem acknowledgements, flap detection, reporting tools, and more. It includes a web interface front-end, which allows user-level "views" of the monitoring system. Nagios has support for distributed and redundant/failover monitoring configurations.


    Nagios Website: (http://www.nagios.org)

  • Nessus:

    Nessus is a vulnerability scanner which can remotely audit a given network and determine whether it can be broken in to or misused it in some way. It is very fast, reliable and has a modular architecture that allows you to fit it to your needs.


    Nessus Website: (http://www.nessus.org/)

  • Nmap:

    Nmap ("Network Mapper") is an Open Source utility for network exploration or security auditing. It was designed to rapidly scan large networks, although it works fine against small networks and single hosts. Nmap can determine what hosts are available on the network, what services (application name and version) they are offering, what operating system (and OS version) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics.


    Nmap Website: (http://www.insecure.org/nmap/)

  • ntop: ntop is a network traffic probe that is capable of displaying network traffic statistics, capturing (dumping) network traffic, etc. Includes a web interface with traffic reporting tools.
    ntop Website: (http://www.ntop.org)

  • OpenNMS:

    OpenNMS is an open source project dedicated to the creation of an enterprise grade network management platform. In addition to providing traditional SNMP-based functionality, OpenNMS has the ability to actively monitor services being provided on the network.


    OpenNMS Website: (http://www.opennms.org)

  • Prelude:

    Prelude is a full featured Intrusion Detection System distributed under the GPL License. Prelude is developed primarily under GNU/Linux, but also supports the *BSD, as well as any POSIX compliant platforms. It has been designed from the ground up to be optimized for distributed environments, completely modular, robust, and fast.


    Prelude Website: (http://www.prelude-ids.org/)

  • Samhain: Samhain is an innovative Hybrid Intrusion Detection system designed to be very modular, distributed, rock solid and fast.
    Samhain Website: (http://la-samhna.de/samhain/)

  • Snort:

    Snort is an open source network intrusion detection system, capable of performing real-time traffic analysis and packet logging on IP networks. It can perform protocol analysis, content searching/matching and can be used to detect a variety of attacks and probes, such as buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting attempts, and much more.

    Snort can be used as a packet sniffer, a packet logger, or as a network intrusion detection system.


    Snort Website: (http://www.snort.org/)

  • tcpflow:
    tcpflow Website: (http://www.circlemud.org/~jelson/software/tcpflow/)

  • Zabbix: Zabbix is an all-in-one 24x7 monitoring solution. Some of its features include system integrity monitoring, SNMP monitoring, data visualization, mapping, capacity planning, and alerts. It can be installed on any UNIX platform and support monitoring agents on most popular operating systems.
    Zabbix Website: (http://www.zabbix.com/)

  • 신고

    댓글 0개가 달렸습니다.