컬쥐네 다락방
리눅스 | 서비스 관리 / systemd , log 본문
systemd
init 프로세스의 대체
특징
부팅시 병렬화 처리 => 부팅 속도 향상
cgroup을 통해 자원관리 및 프로세스 트래킹
자동 서비스 종속성 관리
* 종속성 : 어떠한 프로그램를 실행하기 위해서 이전에 또 다른 프로그램이 실행되어 있어야 한다.
선택적 데몬 실행
데몬은 서버 프로세스 웹 서버, 네임 서버 DB 서버 등을 지칭.
systemd 메인 프로세스는 시스템을 unit 이란 개체를 통해 시스템을 관리한다.
state
enabled - 부팅시에 실행된다
disabled - 부팅시에 실행되지 않는다
static - 사용자가 실행하지 않고 다른 유닛에 대해서 실행될 수 있도록
unit
systemctl sub-command *.service
sub-command
status : 상태 확인
start : 시작
stop : 종료
restart : 재시작
reload : 재설정
enable : 활성화
disable : 비활성화
mask : masked
unmakse : masked 해제
list-dependencies : 종속성(의존성) 확인
service를 start 해주면 pid 번호와 함께 status 명령어로 상태를 확인할 수 있게 된다.
[root@localhost ~]# systemctl status iscsid.service
● iscsid.service - Open-iSCSI
Loaded: loaded (/usr/lib/systemd/system/iscsid.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:iscsid(8)
man:iscsiadm(8)
[root@localhost ~]# systemctl start iscsid.service
[root@localhost ~]# systemctl status iscsid.service
● iscsid.service - Open-iSCSI
Loaded: loaded (/usr/lib/systemd/system/iscsid.service; disabled; vendor preset: disabled)
Active: active (running) since 수 2022-03-02 14:16:47 KST; 1s ago
Docs: man:iscsid(8)
man:iscsiadm(8)
Process: 29216 ExecStart=/usr/sbin/iscsid (code=exited, status=0/SUCCESS)
Main PID: 29218 (iscsid)
Tasks: 2
CGroup: /system.slice/iscsid.service
├─29217 /usr/sbin/iscsid
└─29218 /usr/sbin/iscsid
3월 02 14:16:47 localhost.localdomain systemd[1]: Starting Open-iSCSI...
3월 02 14:16:47 localhost.localdomain systemd[1]: Failed to read PID from file /var/run/iscsid.pid: Invalid argument
3월 02 14:16:47 localhost.localdomain iscsid[29217]: iSCSI daemon with pid=29218 started!
3월 02 14:16:47 localhost.localdomain systemd[1]: Started Open-iSCSI.
특정 서비스를 설치하고 앞으로도 계속해서 해당 서비스를 실행 설정할 때
systemctl start xxxx.service
systemctl enable xxxx.service
log
시스템에 일어나는 이벤트들에 대한 기록
이슈 발생시에 해당 시간에 일어났었던 일을 파악하기 위한 첫 번째 수단이다.
log 관련 서비스
systemd-journald : 시스템에 발생되는 모든 로그를 수집하는 역할 (/run/)
rsyslogd : 수집된 로그들을 저장하는 역할 (/var/)
/var/log/messages : 디버그, 인증, 메일, 정기적 예약, 부트를 제외한 모든 로그가 저장되는 위치
/var/log/sevure : 인증 관련
/var/log/maillog : 메일 관련
/var/log/cron : 주기적 예약 관련
/var/log/boot.log : 부트 관련
rsyslog
기능과 우선순위를 조합해서 저장한다.
facility (기능)
authpriv (인증) , auth,security (로그인), cron (cron, at 등 스케쥴링), daemon(telnel,ftp등 데몬 서비스), kern (커널), mail (메일), local1-8 (부팅), lpr (프린트), mark (syslog에 의해 만들어지는 날짜 유형), user(사용자)
priority (우선순위) : 메세지에 대한 심각도. 0부터 7까지 등급을 나눠 관리한다
0 : emerg , 1: alert, 2: critical, 3: error, 4: warning, 5: notice, 6: info, 7: debug
rsyslog.conf 설정 변경후 반영하려면 restart를 해줘야한다.
- systemctl restart rsyslog.service
rsyslog.conf에서 RULE을 검색하면 나오는 부분이다. log에 따라 저장 위치나 규칙을 설정해놓은 부분
facility.priority 형식으로 작성한다.
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog -가 붙어있으면
바로 저장하지 않고
다른 곳에 임시 저장해놨다가
한 번에 기록한다.
로그 파일 저장 체계
로그 순환(logrocate) :
리눅스로 서버를 돌리면 로그 파일이 굉장히 많이 생성된다.
서버 용량은 한정되어 있고, 로그들은 계속해서 쌓이다보니 로그로 인해 하드 용량이 부족한 경우가 생겨 성능 저하가 발생할 수 있다. 매번 수동으로 로그파일을 이동시키는 것은 번거롭기 때문에 로그파일들을 날짜를 지정하여 주기적으로 압축, 백업, 삭제, 메일로 보내는 등의 작업을 할 수 있도록 한다.
rsyslog를 통해서 로그들을 저장하고 있기는 하지만 모든 로그를 확인 할 수 있는 것은 아니다.
systemd-journald 서비스에서 저장하는 로그를 볼 수 있다. 메모리 영역에서 로그들을 수집.
systemd-journald 서비스
journalctl : 확인
옵션 :
- n 숫자 : 최근 내역에서 숫자 만큼 출력
- p 우선순위 : 해당 우선순위 이상으로 출력
notice ~ warning : 볼드체로 표기
error 이상 :
- f : 실시간으로 모니터링
--since yyyy-mm-dd : 해당 날짜부터 현재까지 출력
--since yyyy-mm-dd --until yyyy--mm-dd : since부터 until까지 출력
/run/log/journal : 영구 저장 경로
영구 저장시 저장 용량 설정
전체 파일시스템의 10%를 넘어서거나 남아있는 공간의 15%를 넘어가면 저장할 수 없다.
'클라우드 > 리눅스' 카테고리의 다른 글
리눅스 | 소프트웨어 추가 / 삭제 (RPM, YUM) (0) | 2022.03.03 |
---|---|
리눅스 | 부트 프로세스 (0) | 2022.03.03 |
리눅스 | PV, VG, LV (0) | 2022.02.25 |
리눅스 | 시스템 디스크 / 파티션, 스왑 메모리 (0) | 2022.02.24 |
작업 예약 - cron (0) | 2022.02.24 |