
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 버전으로 신규 등록

