서비스 확인

imRAD 서비스(데몬) 상태를 확인하려면 user mode에서 show service를 실행하세요.

LYSH@MyHostName# show service
name            status      version         enablement  runtime-log   uptime
dhcpv4          active      6.1.2059.137    linked      enabled       since Thu 2021-04-08 16:11:35 KST; 1 weeks 4 days ago
dhcpv6          active      6.1.2059.137    linked      enabled       since Mon 2021-04-05 14:55:22 KST; 2 weeks 1 days ago
failover        inactive    6.1.1939.49     linked      enabled       -
logexp          active      1.1.2043.208    linked      enabled       since Mon 2021-03-29 09:21:54 KST; 3 weeks 1 days ago
radiusd         active      3.0.21.1751     linked      enabled       since Tue 2021-04-13 14:53:06 KST; 1 weeks 0 days ago
smgr            active      6.0.2060.1      linked      enabled       since Tue 2021-03-23 16:01:00 KST; 3 weeks 6 days ago
startup         active      1.1.1955.1      enabled     enabled       since Mon 2021-02-01 08:07:05 KST; 2 months 17 days ago

"status"는 서비스의 상태를 나타내며 active, reloading, inactive, failed, activating, 또는 deactivating 중 하나로 표시됩니다. 현재 서비스가 실행 중이면 "active"로 표시되며 정상적으로 중지된 경우 "Inactive"로 표시됩니다. 만일 서비스가 비정상적으로 종료되면 "failed"로 표시됩니다.[1]

"enablement"는 서비스가 자동시작(enabled) 혹은 수동시작(linked)인지를 의미합니다.[1] 자동시작은 장비가 재부팅 이후 서비스가 자동으로 시작된다는 의미입니다. "Disabled"된 서비스는 사용하지 않음을 의미합니다.

enablement Auto-start Manual-Start
Enabled Yes Yes
Linked No Yes
Disabled No No

서비스가 운영중인 상태에서 자신의 동작에 대해 로그를 기록 할 수 있는데 그 로그를 "Runtime Log"라 합니다. 이러한 로그는 "사용함"으로 설정되어야만 기록되는데 그 상태를 "runtime-log"에서 표시합니다. "Runtime Log"에 대한 자세한 사항은 아래 세션을 참고하세요.

"uptime"은 서비스가 얼마나 오래동안 동작 중인지 혹은 비정상 종료된 경우 언제 서비스가 중지되었는지를 표시합니다.

systemctl status {name} 또는 show service status {name} 명령어를 실행하면 특정 서비스에 대해 자세한 상태 정보를 출력 할 수 있습니다.

LYSH@MyHostName# systemctl status smgr
● smgr.service - System Management service
     Loaded: loaded (/lib/systemd/system/smgr.service; linked; vendor preset: enabled)
     Active: active (running) since Tue 2021-03-23 16:01:00 KST; 3 weeks 6 days ago
   Main PID: 203770 (ly_smgr)
      Tasks: 1 (limit: 9387)
     Memory: 28.9M
     CGroup: /system.slice/smgr.service
             └─203770 /usr/bin/php7.2 /usr/sbin/ly_smgr sys

서비스 이름을 제외하고 show service status 명령어를 실행하면 모든 실행 중인 서비스의 상태를 확인 할 수 있습니다.

LYSH@MyHostName# show service status
● MyHostName
   State: degraded
    Jobs: 0 queued
  Failed: 1 units
   Since: Mon 2021-02-01 08:07:01 KST; 2 months 24 days ago
  CGroup: /
          ├─1282556 bpfilter_umh
          ├─user.slice
          │ └─user-1000.slice
          │   ├─user@1000.service …
          │   │ └─init.scope
          │   │   ├─3743524 /lib/systemd/systemd --user
          │   │   └─3743526 (sd-pam)
          ├─init.scope
          │ └─1 /sbin/init
          └─system.slice
            ├─irqbalance.service
            │ └─777 /usr/sbin/irqbalance --foreground
            ├─dhcpv4.service
            │ └─3865233 /usr/sbin/ly_dhcpv4 --daemon --ipv4
            ├─apache2.service
             .....................


서비스 제어

시작, 중지, 재시작

user mode에서 systemctl 명령어를 이용해 서비스를 제어 할 수 있으며 제어가 가능한 서비스 목록은 다음과 같습니다. 각 서비스에 대한 설명은 imRAD services를 참고하세요.

  • smgr
  • dhcpv4
  • dhcpv6
  • failover
  • startup
  • logexp
  • radiusd
  • mysql
  • apache2
  • rsyslog
LYSH@MyHostName# systemctl start smgr		// Starting the smgr service.
LYSH@MyHostName# show service			// display all services

LYSH@MyHostName# systemctl stop smgr		// Stopping the smgr service.
LYSH@MyHostName# show service			// display all services

LYSH@MyHostName# systemctl restart smgr		// Restarting the smgr service.
LYSH@MyHostName# show service			// display all services
Enable, Disable, Link

systemctl enable 또는 systemctl link 명령어를 이용해 서비스 시작 상태를 자동 혹은 수동으로 변경 할 수 있습니다. 특정 서비스를 disable 처리하면 그 서비스는 수동으로도 시작되지 않습니다.

LYSH@MyHostName# systemctl enable failover
name            status      version         enablement  runtime-log   uptime
.....
failover        inactive    6.1.1939.49     enabled      enabled       -
.....

LYSH@MyHostName# systemctl link failover
LYSH@MyHostName# show service
name            status      version         enablement  runtime-log   uptime
.....
failover        inactive    6.1.1939.49     linked      enabled       -
.....

LYSH@MyHostName# systemctl disable failover LYSH@MyHostName# show service name status version enablement runtime-log uptime ..... failover inactive 6.1.1939.49 disabled enabled - .....

주의: smgr, mysql, 그리고 apache2 서비스는 필수 서비스 이므로 수동(link)로 설정하지마세요.

제품 초기에 설정된 기본 값은 다음과 같습니다.

  • linked: dhcpv4, dhcpv6, failover, logexp, and radiusd
  • enabled: smgr, startup, mysql, and apache2


런타임 데이터(Runtime Data)

특정 서비스는 시작시 데이터베이스 또는 설정으로 부터 데이터를 로딩 후 서비스를 운영하며 서비스 동작중에 데이터베이스나 설정이 변경되면 수초내에 서비스에 바로 적용되는데 이러한 데이터를 "런타임 데이터"라고 합니다. 서비스가 정상적으로 운영중이라면 런타임 데이터는 관리인터페이스에 표시된 내용과 동일하게 표시되어야 합니다. 예로, 관리 인터페이스를 통해 하나의 DHCP 범위를 추가하면 수초내에 "런타임 데이터"에서도 동일한 범위가 나타나야합니다. 만일 시간이 지나도 데이터가 동기화되지 않으면 서비스를 재시작 해야합니다.

이러한 데이터를 표시하려면 show service {service name} {data type} 명령어를 사용해 확인 할 수 있습니다.

LYSH@MyHostName# show service dhcpv4 pool
DHCP-Scope> written at 2021-04-20 16:10:09 (KST, +0900)
--------------------------------------------------------------------------------------------------------
ssid    ipver   stateful        ptn         T(preferred)    T(valid)
sid     ena     gateway                                     start ip                  count     IA
--------------------------------------------------------------------------------------------------------
119     4       -               0           10m             6h
#250    y       192.168.5.1/24                              192.168.5.200             20        0x01

만일 런타임 데이터를 확인 할 서비스가 동작중이 아니면 show service {service name} {data type} 명령어는 아래와 같은 오류를 표시합니다.

LYSH@MyHostName# show service dhcpv4 pool
sending request> message[0], ipver[4]
[E-11] No response from service...

imRAD 서비스중 dhcpv4, dhcpv6, 그리고 failover service만 런타임 데이터를 제공합니다.

dhcpv4/dhcpv6
argument 설명
failover DHCP Failover 상태를 표시합니다.
host 모든 DHCP 범위의 IP 주소를 표시합니다. 원하는 주소를 확인하려면 키워드를 이용해 출력 할 수 있습니다.
  • status: IP 주소 상태를 나태냅니다.
    • avail: IP 주소가 할당 가능한 상태입니다.
    • decl: 임대 거부된 상태이며 "dhcpv4_decline_age"나 "dhcpv6_decline_age" 이후 할당 가능 상태로 변경됩니다.
    • bound: 사죵중인 IP 주소 입니다.
    • offer: DHCP 클라이언트 요청에 응답한 주소(DHCPv6에서는 "advert")로 아직 임대는되지 않은 주소이며 동일 클랑이언트가 다시 요청하지 않으면 일정 시간은 "avail" 상태로 변경됩니다.
    • invalid: 범위를 벗어난 IP 주소 입니다.
  • flag: IP 주소가 예약된 경우 0x2가 포함되며 제외된 경우 0x4가 포함됩니다. 예로, flag가 0x6이라면, IP 주소는 예약이면서 동시에 제외된 주소임을 나타냅니다.
  • age: 마지막 임대 후 경과된 시간(초)을 나타내며 지속적으로 증가되며 클라이언트로 부터 renew 요청 후 응답이 전송되면 그 값은 다시 0으로 초기화됩니다. 만일 age가 범위의 임대 시간을 초과하면 그 주소는 임대 만료로 간주되어 상태가 "avail"로 변경됩니다.
  • oage: offer(또는 advert) age로 특정 클라이언트에 주소를 제공했는데 요청을 하지 않으면 이 값이 증가되며 30 초가 지나면 그 주소는 "avail" 상태로 변경됩니다.
  • hit-date: 특정 클라이언트에 마지막으로 주소를 할당했거나 해제 혹은 거부된 시간 입니다.
option DHCP 옵션을 표시합니다..
reserv 모든 예약된 IP 주소를 표시하면 키워드를 이용해 특정 주소만 출력 할 수 있습니다.
setting DHCP 서비스가 읽은 환경변수(variables)DHCP 일반 설정 정보를 표시합니다.
logexp
argument Description
server 내보낸 로그 결과를 보여줍니다.
setting logexp 서비스 설정 정보를 표시합니다.
table 로그 서버에 전송한 로그 테이블 정보를 표시합니다.

런타임 로그(Runtime Log)

런타임 로그는 서비스가 운영 상태에서 실시간으로 생성한 로그를 의미하며 동작을 분석 하거나 장애 피드백을 위해 사용 할 수 있습니다. 만일 runtime-log가 disable된 경우 configuration mode에서 활성 시켜야 로그가 기록됩니다.

LYSH@MyHostName# configure
LYSH@MyHostName(config)# rtlog enable {service_name}
LYSH@MyHostName(config)# exit
LYSH@MyHostName# show log {service_name} -w

이렇게 런타임 로그를 활성시키면 code>show log 명령어를 통해 로그를 표시할 수 있습니다. 로그 출력에 대한 자세한 설명은 CLI - Log 섹션을 참고하세요.

LYSH@MyHostName# show log dhcpv4
LYSH@MyHostName# show log dhcpv4 -w

smgr, startup 그리고 radiusd 서비스에 대한 런타임 로그는 기본적으로 활성되어 있으며 radiusd에 대한 런타임 로그는 중지시킬 수 없습니다.

런타임 로그는 상당히 많은 내용이 기록되므로 필요시 활성시키고 모든 작업이 완료되면 다시 중지시킬것을 권장합니다.

서비스 변수 설정

configuration mode에서 DHCP 서비스와 logexp 서비스의 환경변수(variables)를 설정할 수 있습니다. 설정되어있는 값을 확인하려면 show system 또는 show config 명령어를 user mode에서 실행하세요.

dhcpv4 / dhcpv6
LYSH@MyHostName# configure 
LYSH@MyHostName(config)# dhcpv4 {argument} {value}	// configuring a variable of the dhcpv4 service
LYSH@MyHostName(config)# dhcpv6 {argument} {value}	// configuring a variable of the dhcpv4 service
argument 환경변수 이름
dbpool dhcpv4_dbpool, dhcpv6_dbpool
decline dhcpv4_decline_age, dhcpv6_decline_age
entid entid_from_hostname
expire dhcpv4_expire_check_intv, dhcpv6_expire_check_intv
postdhcp postdhcp_success
rcvbuf dhcpv4_socket_rcvbuf, dhcpv6_socket_rcvbuf
reservip check_reserv_ip_at_renew
sndbuf dhcpv4_socket_sndbuf, dhcpv6_socket_sndbuf
encoding from_encoding
logexp
LYSH@MyHostName# configure 
LYSH@MyHostName(config)# logexp {argument} {value}	// configuring a variable of the logexp service
argument 변수 이름
dbpool logexp_dbpool
lsyslog lsyslog_priority
syslog syslog_priority

환경변수를 설정하기전 반드시 환경변수(variables)를 확인하세요.

References