2022. 3. 13. 20:54ㆍ리눅스
◎ systemd 소개
- init 프로세스의 대체(PID 1) : 부팅시 직렬로 처리
- systemd : 부팅시 병렬화 처리로 부팅 속도 향상
특징
● cgroup을 통한 자원관리 및 프로세스 트래킹
● 자동 서비스 종속성 관리
● 선택적 데몬 실행
● 별도의 서비스 없이 필요시 데몬 시작
● systemctl을 이용해 서비스 제어 관리
※ 종속성(의존성)
어떠한 프로그램을 실행하기 위해서는 이전에 또 다른 프로그램이
실행되어 있어야 하는 것
이러한 프로그램을 설치하기 위해서는 사전에 그 종속성에 있는
다른 프로그램이 설치 되어 있어야 설치 할 수 있다.
◎ systemctl
- systemd 메인 프로세스는 시스템을 unit 이라는 개체를 통해서
시스템을 관리 한다.
ex) cd /ect/sysconfig/network-scripts 를 하게 되면
/etc/sysconfig/network-scripts.path 라는 path unit를 생성
● systemd unit 위치
▶ /usr/lib/systemd/system => 생성되는 유닛들을 제외한 유닛들의 원본
▶ /etc/systemd/system => 부팅시에 자동적으로 실행되는 유닛들의 위치
▶ /run/systemd/system => 실시간으로 생성되는 유닛들에 대한 위치
● systemctl 옵션
▶ --all 또는 -a : 실행되지 않거나 설치되어 있진 않는 유닛들을 확인해 볼 수 있다.
▶ --type 또는 -t : 유닛 종류(명), 특정 유닛 내용들로만 확인해 볼 수 있다.
▶ list-unit-files : 유닛들에 대한 활성화 여부를 확인 할 때 쓴다.
▶ list-dependencies : 종속성(의존성)을 확인 할 때 쓴다.
● systemctl sub-command
- systemctl sub-command *.service(가리키는 서비스) 이러한 형태로 사용한다.
- state(상태)
▶ enabled : 부팅시에 실행 되게 한다.
▶ disabled : 부팅시에 실행이 되지 않도록 한다.
▶ static : 사용자가 실행하지 않고 다른 유닛에 의해서 실행 될 수 있도록 준비한다.
▶ masked : 동시에 실행되면 충돌되는 서비스가 실행되지 않도록 잠겨놓는
상태로 만드는 것
- 그 외
▶ status : 서비스에 상태를 확인해 볼 수 있다.
▶ start : 서비스를 시작 시킨다.
▶ stop : 서비스를 종료 시킨다.
▶ restart : 서비스를 재시작 시킨다.
▶ reload : 수정한 서비스를 재설정 시킨다.
▶ enable : 서비스를 활성화 시킨다.
▶ disable : 서비스를 비활성화 시킨다.
▶ mask : 서비스를 masked 시킨다. = 잠겨놓는다.
▶ unmask : 마스크되있는 서비스를 해제 시킨다. = masked 해제
◎ log
- 시스템에 일어나는 이벤트들에 대한 기록
- 이슈 발생시에 해당 시간에 일어났었던 일을 파악하기 위한 첫번째 수단으로 이용
- 로그가 저장되는 위치 : /var/log
● log 관련 서비스(데몬)
- systemd -journald => 시스템에 발생되는 모든 로그를 수집하는 서비스
- rsyslog => 수집된 로그들을 저장하는 역할을 하는 서비스(저장되는 위치는 /var/log)
- 그 외 로그들이 저장되는 위치
▶ 디버그, 인증관련, 메일관련, 정기적인 예약 부트를 제외한 모든 로그
=> /var/log/messages
▶ 인증 관련 로그 => /var/log/secure
▶ 메일 관련 로그 => /var/log/maillog
▶ 주기적 예약(cron) 관련 로그 => /var/log/cron
▶ 부트 관련 로그 => /var/log/boot.log
● rsysolg 서비스(데몬)
- 기능(facility), 우선순위(priority)를 조합해서 저장하는데
여기서 기능은 log의 종류를 뜻하고 우선순위는 어떤 메세지에 대한 심각도를 뜻한다.
▶ 기능 (facility)
authpriv | 인증 |
auth, security | login |
cron | cron,at 과 같은 스케쥴링 |
daemon | telnet,ftp 와 같은 데몬서비스 |
kern | 커널 |
메일 | |
local1-8 | 부팅 |
lpr | 프린트 |
mark | syslog에 의해 만들어진 날짜유형 |
user | 사용자 |
▶ 우선순위 (priotiy)
0 | emerg(ency) |
1 | alert |
2 | critcal |
3 | error |
4 | warning |
5 | notice |
6 | info |
7 | debug |
- 우선순위를 지정하면 해당 우선순위에 있는 상위의 우선순위들
또한 모두 기록되게 된다.
※ 로그파일 저장위치에 "-"가 있는 경우
바로 저장되는 것이 아니라 메모리 범퍼에 담겨있다가 일정시간이 지나면
한꺼번에 저장한다는 것이다.
- rsyslog.conf 설정 변경후에 반영하기 위해서는 시스템을 재시작하거나
systemctl restart rsyslog.service 를 해야 한다.
● logger 명령어
- 로그를 발생하는 명령어
- logger [option] [message] 식으로 사용한다.
- 옵션
▶ -p : priotiy(우선순위)를 메시지와 함께 기록 한다.
▶ -f : 지정한 file에 로그를 기록 한다.
▶ -t : tag를 각각의 라인마다 logger의 프로세스 ID를 기록한다.
▶ -i : 각각의 라인마다 logger의 프로세스 ID를 기록한다.
▶ -s : 시스템 로그뿐만 아니라 표준 출력으로 메시지를 기록한다.
● 로그 파일 저장 체계
- 로그 순환(locate)
1. 로그 파일의 크기가 과도하게 커지지 않도록 제한하기 위해 일정기간이 지나면
해당 로그 파일을 압축해서 보관한다.
2. 또한 그 일정 기간이 지난 후에는 그 압축했던 로그파일을 삭제한다.
- 단. ryslog를 통해서 로그들을 저장하고 있기는 하지만 모든 로그를 확인할 수 있는
것은 아니다. 이에 대한 것으로 디버그에 대한 것은 볼 수가 없다.
● journalctl 명령어
- 수집된 로그를 확인하는 명령어
- 옵션
▶ -n 숫자 : 최근 내역서 숫자 만큼 출력한다.
▶ -p 우선순위 : 해당 우선순위 이상으로 출력한다.
notice ~ warning까지는 굵은 글씨체로 표기
error 이상은 빨간색으로 표기한다.
▶ -f : 실시간으로 모니터링 한다.
▶ --since yyyy-mm-dd : 해당 날짜부터 현재까지 출력한다.
▶ --since yyyy-mm-dd --untill yyyy-mm-dd : since 부터 until 까지 출력한다.
※ /run/log/journal 영구저장 하는 방법
mkdir /var/log/journal
chmod g+s /var/log/journal
chown :systemd-journal /var/log/journal
systemctl restart systemd-journald.service
단, 이렇게 해서 영구저장시 전체 시스템의 10%의 용량을 넘지 않아야하고
남아 있는 용량의 15% 또한 넘지 않아야 한다.
'리눅스' 카테고리의 다른 글
LVM(Logical Volume Manage) (0) | 2022.03.07 |
---|---|
리눅스 파일 시스템 (0) | 2022.03.03 |
작업예약(작업스케쥴링) (0) | 2022.03.02 |
확장 권한과 접근 제어 리스트 (0) | 2022.02.24 |
사용자 계정관리 (0) | 2022.02.22 |