Revision 1539 ------------------- 수정일 : 2021-05-18 수정자 : 유희곤 - NEW: Telegraf Hang 감지 및 자동 재기동 처리기능 추가 (#33542) - FreeBSD 용 telegraf 잦은 hang 상황 발생 관련 - telegraf 상태를 1분 단위로 모니터링 하여..... - 미기동, hang 상황을 탐지하고... 자동 재기동 등의 처리 기능을 추가 - 또한 기동된지 2일 이상된 telegraf process 를 자동 재기동 처리. - 이를 위해 telegraf control 용 worker 프로세스 추가 Revision 1511 ------------------- 수정일 : 2020-10-30 수정자 : 유희곤 - NEW: FreeBSD 12.x 지원 TCP 세션 정보 수집 관련 OS 버전별 코드 분리 (#33233) - FreeBSD 12.x 에서 include/netinet/tcp_var.h 에서 tcpcb 구조체 변경이 발생 - 이로 인해 기존 FreeBSD 6.x, 10.x 에서 동작하는 TCP 세션 정보 추출 코드가 컴파일 되지 않는 문제 발생 - FreeBSD 12.x 의 /usr/src/usr.bin/netstat/inet.c 소스를 참고로.. - __FreeBSD_version 코드를 추가하여 FreeBSD 6.x, 10.x 와 FreeBSD 12.x 에서 분리된 코드로 컴파일 되도록 수정 처리함. - 수정된 파일 : SystemInfo.cpp - CHG: FreeBSD 12.x 의 gcc 9.3 사용시 warning 발생 코드 수정 (#33233) - gcc 9.3 에서 strncpy 관련 warning 발생 - strncpy 특성상 n 값 크기만큼 copy 처리되므로... 크기 계산시 sizeof-1 처리 필요 ( sizeof(dest)-1 ) - 수정된 파일 : ServiceCheck.cpp Revision 1493 ------------------- 수정일 : 2020-04-08 수정자 : 유희곤 - CHG: IP 정보 추출시 hang 발생 회피를 위해 기동시 최초 1회만 IP 정보 추출 (#32967) - NIC 할당된 IP 정보 추출을 위해 getifaddrs() 호출시 종종 지연 응답으로 인해 serive out 상황 발생 - 이를 회피하기 위해 기동시 최초 1회만 IP 정보를 추출하도록 수정 - 수정된 파일 : ServiceCheck.cpp - CHG: fsck process check 기능을 사용하지 않도록 수정 (#32973) - fsck 프로세스 동작 여부 check를 위해 popen() - fgets() 함수 사용하는 경우 - 장비 부하 상황에서 fgets() 호출 처리가 지연으로 인해 service out 상황 발생 - 이에 fsck check 는 ZFS 사용 등으로 인해 더 이상 유효하지 않으므로 check 기능 자체를 비활성화 처리함 - popen() - fgets() 사용 관련 dig, zpool 등의 호출은 지연 없는 것으로 테스트 됨. - 수정된 파일 : ServiceCheck.cpp - CHG: 컴파일 최적화 옵션 O3 -> O2 로 변경 - 일부 FreeBSD 10.x 장비에서 core 파일 생성 이슈가 있어.. 기본 최적화 옵션으로 변경. Revision 1466 ------------------- 수정일 : 2019-09-06 수정자 : 유희곤 - CHG: 로깅 처리 보완 (#32550) - 기존에는 실패 처리만 로깅하여 문제 발생 FHS 에서 hang 등의 상태 발견시 - 어느 부분에서 hang 상태인지 파악이 불가 - 이를 개선하기 위해 service, system, storage check 관련 각 action 마다 로깅 처리 추가 - 일부 check 기능의 경우 소요시간 측정 기능 추가 - 이로 인해 정상 상태인 경우 일 로그 크기가 18 MB -> 40 MB 수준으로 증가함 - 수정된 파일 : service, storage, system 정보 수집 관련 모듈 - CHG: 소스 파일 format 을 "서명없는 UTF-8" 형식으로 변경 처리함. - 소스 및 기타 모든 파일을 변환 처리함. Revision 1465 ------------------- 수정일 : 2019-09-04 수정자 : 유희곤 - CHG: DNS resolve check 기능 보완 (#32786) - 등록된 DNS 목록 중 죽은 DNS 가 존재할 경우.. 해당 장비 서비스 투입 불가 - 이에 등록된 DNS 에 대해 Alive check 를 수행하여 Alive DNS 만 추출 후 - Alive DNS 에 대해서만 resolve check 수행도록 수정 - 또한 DNS 목록 또는 Alive DNS 가 없는 경우.. 시스템에 설정된 기본 nameserver 를 통해 resolve check 하도록 수정 - 추가로 DNS resolve check 관련 로깅 보완 - 수정된 파일 : ServiceCheck.h ServiceCheck.cpp Revision 1440 ------------------- 수정일 : 2018-02-26 수정자 : 유희곤 - NEW: Storage Hang 감지를 위해 주기적인 Write/Read 테스트를 수행할 Storage Check Worker 기능 추가 (#31701) - 독립 Worker 프로세스로 동작하며 - 설정상의 FILE_STORAGE_ROOT 하위의 경로에 대해 주기적인 파일 Write / Read 테스트 수행 - 공유메모리 상에 Check Start time 정보를 기록. - 만약 Hang 걸린 경우 서비스 상태 check 모듈에서 Timeout 을 감지하여 - Service Disable 상태로 변경 처리. - NEW: ZFS 상태 감시 기능 추가 (#31701) - zpool list -Ho name,health 명령을 이용하여 content 저장 경로에 대한 health 정보 추출 후 - 상태에 따라 서비스 상태 변경 처리 - 서비스 상태 check 모듈에서 실제 작업 수행 - CHG: System 상태 정보 Hang check 기능 추가 (#31701) - system 상태 정보 수집 시간을 정보를 이용하여 - service check 모듈에서 system 정보 수집 hang 여부 check - hang 상황 탐지시 서비스 disable 상태 변경 처리 - CHG: 최신 System 상태 정보만 RCTS 로 전송되도록 수정 (#31701) - RCTS 로 system 상태 정보 전송시 최신 정보만 전송되도록 수정 - 각각 수집, 전송은 독립 모듈로 10 sec 단위로 이루어지므로.. 서로 간섭 없음 - system hang 상황인 경우.. 잘못된 과거 정보 전송을 방지하기 위함. - NEW: 서비스 상태의 Timeout 기능 추가 (#31701) - RCTS 서비스 상태 전송 모듈에서 서비스 상태에 대한 Timeout Check 수행 - timeout 발생시 서비스 disable 상태로 변경하고 RCTS 로 전송 - 서비스 상태 check 모듈의 hang 상황을 탐지하고 RCTS 로 잘못된 상태 정보를 방지하기 위함 - NEW: Disk busy 상황시 자동 Read Only 상태 변경 (#31701) - 서비스 상태 check 모듈에서 - disk busy 상태 정보를 판단하여... Disk busy 50 % 이상이고 queue 가 7 이상인 경우 - 자동으로 서비스 상태를 Read Only 로 변경 처리 - NEW: FHS 상태 감시를 위한 모니터링용 TCP port 제어 기능 추가 (#31701) - conf 에 설정된 값을 기준으로 - 서비스 상태에 따라 TCP Port 를 listen, close 처리 - 이를 통해 서비스 불가 상황시 RC 대표 Domain 자동 해지, GMS 의 Hang 상황 관제 가능 - 다만 KT 에서 사용하는 정책라우팅 정책 등의 FHS Domain 관련 alive check 에 해당 TCP Port 감시를 할 경우.. DNS resolve 문제가 발생하여... 해당 장비 서비스 투입 불가하므로.. 절대 사용하지 말 것. - NEW: service, system 상태 정보 RAW 정보 로깅 (#31701) - 장애시 원인 분석 편의를 위해 - 공유메모리 정보를 주기적으로 1 row 형식으로 로깅 처리 - NEW: fhs.conf 상에 FHS_LISTEN_PORT_FOR_STATUS_MONITORING 항목 추가(#31701) - FHS 의 상태 모니터링 관련 TCP Port 제어를 위한 Port 정보 - fhs.conf 의 [COMMON] 항목에 추가 - CHG: 수정된 fhs.conf 등록 - fhs.conf.in.R1440 Revision 1432 ------------------- 수정일 : 2018-01-10 수정자 : 유희곤 - CHG: 메모리 사용량 관제 기능 추가를 위한 Free 메모리 추출 방식 수정 (#31360) - 기존에는 free 용량만을 available memory 용량으로 추출 - 하지만.. 대부분 메모리 사용량 99~100% 으로 계산되어 유효하지 않음. - available memory = free + inactive + cached 식으로 개선 - 수정소스: SystemInfo.cpp Revision 1347 ------------------- 수정일 : 2016-04-07 수정자 : 유희곤 - CHG: Apache alive check timeout 발생관련 check flow 수정(#27149) - FreeBSD 6.2 에서 Apache alive check 실패가 자주 발생 - 이를 보완하기 위해 Apache alive check 실패 발생시 1 sec sleep 후 다시 check 하도록 기능 추가 - 수정소스: ServiceCheck.cpp Revision 1219 ------------------- 수정일 : 2015-09-10 수정자 : 유희곤 - NEW: 기존 vmasd 를 대체할 목적의 FHS 모니터링 모듈 개발 - 세부 내역: #22075 참고 - 설계서: svn://svc1svn.solbox.com/document/01 양방향/02 설계서/25 FHS 상태 정보 수집&전송/csagentd 설계서.vsdx - 통신 프로토콜: svn://svc1svn.solbox.com/document/01 양방향/02 설계서/25 FHS 상태 정보 수집&전송/[csagentd] 통신프로토콜구조.xlsx - NEW: SVN 신규 등록 - 버전 관리 정책에 따라 3.5.0 버전으로 신규 등록