서버상에서 가장 간단하게 쓸 수 있는 프로그램이 sar 입니다. 리눅스에도 보통 기본으로 설치가 되지요. 이것은 데이타를 주기적으로 얻어와 바이너리 데이타로 기록하여 필요한 값만 뽑아낼 수 있습니다. 그래프가 필요없고 자기가 알아서 프로그램하여 필요한 것만 보겠다하면 사용할만하지요.
그런데 이게 아니라 GUI형태로 해서 웹에서 볼 수 있도록 한다면 여러가지를 사용해야합니다.
여기서 필요한 개념들.
SNMP
MRTG
RRDTOOL
개별 자원들 모니터링을 하는 것이라면 스크립트로 데이타를 수집할 수도 있는데 서버가 여러대인 경우에는 불편하지요. 이런 경우에는 SNMP를 사용하는것이 편리한듯.
데이타수집
데이타처리
그래프
이런 단계를 거칠건데 그래프와 관련하여 MRTG를 많이 썼지만 요즘에는 RRDTOOL을 많이 씁니다. 아주 간단히 말해서 mrtg는 두개의 값만 그래프로 그릴수 있다면 RRDTOOL은 이런 제한이 없고 유연함이 좋지요.
현재 저같은 경우는 sar는 5분에 한번씩 데이타 기록.
시스템서비스, 네트워크, 개별서버 자원등은 nagios 라는 툴을 이용하여 문제가 생긴 경우 핸드폰 메시지로 보내도록.
시스템자원의 변화는 MRTG 또는 RRDTOOL(RRDTOOL은 데이타에 대한 정의만 하는 것이라면 데이타수집프로그램, 그래프 자동으로 그려주는 프로그램등이 필요합니다. 여기에 사용되는 것들이 HotSanic, 크리켓 등이 있습니다)와 HotSanic 등을 이용하고 있습니다.
그런데 가장 중요한것은 모니터링하여 결과를 보면 뭐합니까. 그것을 제대로 분석하지 못한다면.
ㅇ 원격 서비스 모니터링
port 별 : http, ssh, telnet, ftp, dns, smtp/imap/imaps/pop3/pops/mysql/oracle
( 접속시간. Warning, critical)
ㅇ 로컬 자원 모니터링
- 디스크 : 각 파티션별 사용비율
- CPU : user / system / idle / 입출력 대기 프로세스 (vmstat,ps 에서 w)
- Mem : (used비율
- Swap : swap
- 네트워크 : inbound/outbond 트래픽 (tcp커넥션, udp 커넥션)
- I/O : 디바이스별 io (tps, read, write)
- load average: 1,5,15분
- 기타 : 현재 로그인한 사용자, total process,
- 프로세스 : 특정 프로세스 개수, 세셧 개수(httpd 프로세스숫자와 netstat 의 개수)
ㅇ 프로그램 모니터링
- mysql : 데몬 체크, 로그인점점, 캐쉬히트율(Key_reads/Key_read_request), Select_full_join, Table_locks_waited , max connection, slow query, 초당 query 수, 임시테이블수, data 디렉토리 용량
- oracle : 대몬체크, 로그인점검, cache 점검, tablespace 용량 점검
- DNS : 초당 쿼리. denied zone transfer
- Mail(sendmail,qmail) : mailq 개수, 메일전송횟수, 메일트래픽. rejected mail host
- 프로그램별 로그 : 각 프로그램별 재시작시간(mysql error.log, apache error.log 등)
- 가상서버별 트래픽, page view, hit
- ftp : 트래픽, hit
ㅇ 로그메시지
- /var/log/message 에서 kernel 로그
- login 실패 체크 (lastb 등) : ip,host, 대몬별
- reboot 점검
- tcp wrapper 로그(refused connection
- 로그메시지/보안체크는 cron 이용 주기점검
ㅇ 보안체크
- tripwire 로 파일무결성 점검 (제외할 디렉토리 설정)
- rpm qa 를 이용하여 변경된 패키지 점검함
- 계정에 변화된 내용 점검
- port scanning 점검
- chkrootkit 이용하여 rootkit 점검
- setuid/setgid
- 스니핑 점검
ㅇ freebsd
- /etc/passwd, /etc/shadow, /etc/group 파일 점검 변화된 내용 보여주기
- /etc/aliases 변화된 내용 보여주기
- df h 보여주기
- network interface 상황
- mailq
- rejected mail hosts
- denied zone transfer (여기까지 daily run output)
- setuid/setgid, uid가 0인 사용자, 패스워드 없는 사용자,
- kernel log 메시지
- login failure / refused connections (security run output)
ㅇ 기타
- 각 isp 별로 ping 속도 체크하기
- snort
- iptables
- nessus
- opennms
- rrdtool
- 시스템 로그 모니터링 : .history 등등
ㅇ 시스템 모니터링 프로그램 설정방법
- 주요 서비스 원격 모니터링 : nagios에서 포트 모니터링 +distributed(nsca)
- 로컬 자원 : nagios에서 passive 체크 / RRDTOOL 이용
- 시스템 체크 : cron 이용하여 스크립트 실행
ㅇ nagios 세팅
- 전체환경설정 : cgi.cfg / nagios.cfg
- 모니터링 서버 : host, hostgroup, hostextinfo.cfg
- 모니터링 담당자 : contacts, contactgroup
- 모니터링 서비스 : service,
- 명령어 추가 : checkcommands.cfg, misccommands.cfg
- 그대로 두어도 되는 명령어 : resource.cfg, timeperiods.cfg
- 추가 설정해야할 명령어 : dependencies.cfg (서버간의 의존성), escalations.cfg (알람에 추가 기능)
- 기능 사용 : active, passive / distributied monitoring (nsca, nrpe) > ssh 이용
- RRDTOOL 사용은? : 스크립트 방식, nagios 수집 데이터 이용. SNMP
** 기타 플러그인 : nagat (설정파일 편집)
** DB연동 : status, downtime
** 각 user별로 필요한 link만 보이도록 수정. 한글화.
** error 및 recovery 목록 DB
** 각 시스템별 세부정보보기(하드웨어 스펙)
** 타 UNIX/WINDOWS 시스템
예전에 토론된 내용들이 있지요
여기서 제가 전에 썼던글.
http://bbs.kldp.org/viewtopic.php?t=28315
서버상에서 가장 간단하게 쓸 수 있는 프로그램이 sar 입니다. 리눅스에도 보통 기본으로 설치가 되지요. 이것은 데이타를 주기적으로 얻어와 바이너리 데이타로 기록하여 필요한 값만 뽑아낼 수 있습니다. 그래프가 필요없고 자기가 알아서 프로그램하여 필요한 것만 보겠다하면 사용할만하지요.
그런데 이게 아니라 GUI형태로 해서 웹에서 볼 수 있도록 한다면 여러가지를 사용해야합니다.
여기서 필요한 개념들.
SNMP
MRTG
RRDTOOL
개별 자원들 모니터링을 하는 것이라면 스크립트로 데이타를 수집할 수도 있는데 서버가 여러대인 경우에는 불편하지요. 이런 경우에는 SNMP를 사용하는것이 편리한듯.
데이타수집
데이타처리
그래프
이런 단계를 거칠건데 그래프와 관련하여 MRTG를 많이 썼지만 요즘에는 RRDTOOL을 많이 씁니다. 아주 간단히 말해서 mrtg는 두개의 값만 그래프로 그릴수 있다면 RRDTOOL은 이런 제한이 없고 유연함이 좋지요.
현재 저같은 경우는 sar는 5분에 한번씩 데이타 기록.
시스템서비스, 네트워크, 개별서버 자원등은 nagios 라는 툴을 이용하여 문제가 생긴 경우 핸드폰 메시지로 보내도록.
시스템자원의 변화는 MRTG 또는 RRDTOOL(RRDTOOL은 데이타에 대한 정의만 하는 것이라면 데이타수집프로그램, 그래프 자동으로 그려주는 프로그램등이 필요합니다. 여기에 사용되는 것들이 HotSanic, 크리켓 등이 있습니다)와 HotSanic 등을 이용하고 있습니다.
그런데 가장 중요한것은 모니터링하여 결과를 보면 뭐합니까. 그것을 제대로 분석하지 못한다면.
시스템/네트워크 모니터링
http://tunelinux.pe.kr/wikix/index.php?display=SystemMonitoring
---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net
아직 정리는 안되었지만 모니터링 항목들
아직 정리는 안되었지만 전에 정리하다만 것을 올립니다. 참고하라구요.
## 모니터링 필요한 항목
http://tunelinux.pe.kr
문태준
ㅇ 원격 서비스 모니터링
port 별 : http, ssh, telnet, ftp, dns, smtp/imap/imaps/pop3/pops/mysql/oracle
( 접속시간. Warning, critical)
ㅇ 로컬 자원 모니터링
- 디스크 : 각 파티션별 사용비율
- CPU : user / system / idle / 입출력 대기 프로세스 (vmstat,ps 에서 w)
- Mem : (used비율
- Swap : swap
- 네트워크 : inbound/outbond 트래픽 (tcp커넥션, udp 커넥션)
- I/O : 디바이스별 io (tps, read, write)
- load average: 1,5,15분
- 기타 : 현재 로그인한 사용자, total process,
- 프로세스 : 특정 프로세스 개수, 세셧 개수(httpd 프로세스숫자와 netstat 의 개수)
ㅇ 프로그램 모니터링
- mysql : 데몬 체크, 로그인점점, 캐쉬히트율(Key_reads/Key_read_request), Select_full_join, Table_locks_waited , max connection, slow query, 초당 query 수, 임시테이블수, data 디렉토리 용량
- oracle : 대몬체크, 로그인점검, cache 점검, tablespace 용량 점검
- DNS : 초당 쿼리. denied zone transfer
- Mail(sendmail,qmail) : mailq 개수, 메일전송횟수, 메일트래픽. rejected mail host
- 프로그램별 로그 : 각 프로그램별 재시작시간(mysql error.log, apache error.log 등)
- 가상서버별 트래픽, page view, hit
- ftp : 트래픽, hit
ㅇ 로그메시지
- /var/log/message 에서 kernel 로그
- login 실패 체크 (lastb 등) : ip,host, 대몬별
- reboot 점검
- tcp wrapper 로그(refused connection
- 로그메시지/보안체크는 cron 이용 주기점검
ㅇ 보안체크
- tripwire 로 파일무결성 점검 (제외할 디렉토리 설정)
- rpm qa 를 이용하여 변경된 패키지 점검함
- 계정에 변화된 내용 점검
- port scanning 점검
- chkrootkit 이용하여 rootkit 점검
- setuid/setgid
- 스니핑 점검
ㅇ freebsd
- /etc/passwd, /etc/shadow, /etc/group 파일 점검 변화된 내용 보여주기
- /etc/aliases 변화된 내용 보여주기
- df h 보여주기
- network interface 상황
- mailq
- rejected mail hosts
- denied zone transfer (여기까지 daily run output)
- setuid/setgid, uid가 0인 사용자, 패스워드 없는 사용자,
- kernel log 메시지
- login failure / refused connections (security run output)
ㅇ 기타
- 각 isp 별로 ping 속도 체크하기
- snort
- iptables
- nessus
- opennms
- rrdtool
- 시스템 로그 모니터링 : .history 등등
ㅇ 시스템 모니터링 프로그램 설정방법
- 주요 서비스 원격 모니터링 : nagios에서 포트 모니터링 +distributed(nsca)
- 로컬 자원 : nagios에서 passive 체크 / RRDTOOL 이용
- 시스템 체크 : cron 이용하여 스크립트 실행
ㅇ nagios 세팅
- 전체환경설정 : cgi.cfg / nagios.cfg
- 모니터링 서버 : host, hostgroup, hostextinfo.cfg
- 모니터링 담당자 : contacts, contactgroup
- 모니터링 서비스 : service,
- 명령어 추가 : checkcommands.cfg, misccommands.cfg
- 그대로 두어도 되는 명령어 : resource.cfg, timeperiods.cfg
- 추가 설정해야할 명령어 : dependencies.cfg (서버간의 의존성), escalations.cfg (알람에 추가 기능)
- 기능 사용 : active, passive / distributied monitoring (nsca, nrpe) > ssh 이용
- RRDTOOL 사용은? : 스크립트 방식, nagios 수집 데이터 이용. SNMP
** 기타 플러그인 : nagat (설정파일 편집)
** DB연동 : status, downtime
** 각 user별로 필요한 link만 보이도록 수정. 한글화.
** error 및 recovery 목록 DB
** 각 시스템별 세부정보보기(하드웨어 스펙)
** 타 UNIX/WINDOWS 시스템
---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net
댓글 달기