Today I Learn - 22

이정빈·2021년 3월 11일
0

클라우드 엔지니어

목록 보기
23/53
post-thumbnail

로그 관리(Log)

로그(Log) - 시스템에서 발생한 이벤트에 대한 기록
감사(Audit) - 관리자가 설정한 특정 대상에 대한 기록

로그의 필요성

보안적 측면: 침입 등에 대한 감시, 대응
운영적 측면: 시스템 장애 대응

systemd 이전의 로그

syslog(rsyslog)

systemd 이후의 로그

syslog(rsyslog)
journal

systemd-journald
journal을 담당하는 데몬
메모리에 저장
바이너리 데이터 형태로 저장 : /run/log/journal

syslog(rsyslog)
로그 데이터를 파일로 저장, 사용자에게 전달
네트워크의 다른 시스템으로 로그 전달
systemd-journald에서 발생한 로그 중 선택적으로 분류하여 처리
선택/분류 조건: 기능(Facility), 우선순위(Priority)

로그의 우선순위

숫자
우선순위
심각도
0
emerg
시스템 구동 여부에 영향을 줄 수 있는 레벨
1
alert
즉시 조치가 필요함
2
crit
심각한 오류
3
err
중요도가 낮은 오류
4
warning
경고
5
notice
정상상태에서 발생하는 메시지 중 중요도 높음
6
info
일상적인 내용
7
debug
디버깅 메시지(일상적인 내용보다 자세한 내용)

rsyslog 관련 파일

/var/log
messages : 일반적인 시스템 로그의 데이터 저장 (아래 항목 제외)
secure : 인증 관련 로그
maillog : 메일 관련 로그
cron : 예약작업 관련 로그
boot.log : 부팅 관련 로그
/etc/rsyslog.conf : rsyslog 설정 파일

rsyslog.conf 내 RULE 설정

ex) cron.* /var/log/cron
cron : 기능(Facility, 출처), 어디에서 나온 로그인가?
주요 Facility: https://en.wikipedia.org/wiki/Syslog#Facility

  • : 모든 facility
  • : 우선순위. 지정된 우선순위에 해당하는 로그를 저장
    : 모든 우선순위의 로그를 모두 지정
    0~7, emerg~debug : 지정된 우선순위 해당 로그 및 그보다 높은 우선순위의 로그를 모두 지정
    none: 해당 기능은 로그 저장하지 않음
    /var/log/cron: 기록 대상
    -<파일명> : 비동기화 저장설정
    /dev/… : 특정 장치로 로그 전송
    :omusrmsg:
    : 특정 사용자에게 로그 전송

journal

명령어 : journalctl
옵션
-n [숫자]: 최근 [숫자]개의 저널 출력
-p [우선순위] : priority. 저널 메시지의 우선순위 지정
-f : 발생하는 저널 메시지 실시간 확인
-r : 역순 출력 (최근 저널부터)
--since [시작시점] : 특정 시점부터 출력
--until [종료지점] : 특정 시점까지 출력
_COMM : 명령 이름
_EXE : 실행파일 경로
_PID : 특정 PID 관련 로그 확인
메모리에 저장 : 재부팅, 종료 후 시작 등 초기화됨
저널 영구저장 설정
기존 저널 저장위치 정보를 확인
기존 저널 저장위치인 /run/log/journal 경로와 같은 정보를 가지는 디렉토리를 생성
ls -ld /run/log/journal
소유자 root
소유그룹 systemd-journal
권한 2755
/var/log/journal 디렉토리 생성
소유자/소유그룹/권한 설정 통일
mkdir /var/log/journal
chown root:systemd-journal /var/log/journal/
chmod 2755 /var/log/journal/
ls -ld /var/log/journal

logrotate
로그를 순환시키는 명령어
로그파일이 과도하게 커지거나, 과도하게 장기간의 데이터를 저장하거나 하는 상태를 방지
백업 생성. 규칙에 따라 일정 개수만큼의 백업만 보관
cron(anacron)에 의해 주기적으로 실행

===========================================

네트워크 관리

네트워크 기본

OSI 7 Layer (개념적인 모델)
1 : Physical. 통신회선. 리피터, 허브
Hub: 물리적인 노드를 확장하는 역할
문제점: 충돌 발생 → 속도 저하
2 : Datalink. Ethernet. MAC Address 사용. 서브넷(Subnet) 내의 통신 경로 결정. 스위치, 브릿지. ARP
스위치(Switch): 노드를 확장하는 역할
허브와 차이점: 충돌을 회피할 수 있음
MAC Address Table
3 : Network. IP주소. 라우터. 라우팅 테이블, ICMP
라우터: 서로 다른 네트워크를 연결하는 역할
4 : Transport. TCP/UDP
TCP : Transmission Control Protocol. 전송 안정성. 연결 수립. 3 way handshake(수립), 4 way handshake(종료)
UDP : User Datagram Protocol. 전송효율. 연결 수립하지 않음.
5 : Session. 연결
6 : Presentation. 변환
7 : Applicaton. 응용프로그램

TCP/IP 모델 (실제적인 모델)

OSI 1~2계층 통하 : Network(Network Access) 계층
OSI 3계층 : Internet 계층
OSI 4계층 : Transport 계층
OSI 5~7계층 : Application 계층

네트워크 주소 체계

데이터링크 계층의 주소 : MAC Address, 물리적 주소
네트워크 계층의 주소 : IP Address, 논리적 주소

MAC Address

16진수 2자리씩 끊어서 표기
1당 1Byte(8Bit) X 6 = 6Byte(48Bit)
앞 3Byte / 뒤 3 Byte
OUI(Organizationally Unique Identifier)-제조사별로 할당된 값
Host Id : 각 장치별 일련번호

ARP (Address Resolution Protocol)

IP와 MAC 주소의 매칭 정보를 요청/응답

IP Address

3계층 주소. IPv4, IPv6 두 가지로 나누어짐
IPv4
10진수(0~255) 숫자 4개로 구성 (192.168.0.100)
클래스, 사설네트워크, 사용하지 못하는 주소
Network IP / Host ID
Network ID : 네트워크를 구분하기 위한 값. 같으면 같은 네트워크
Host ID : 네트워크 내에서 구분하기 위한 값.
CIDR Prefix: 서브넷마스크의 표기방법
255.255.255.0 → /24

=======================================================

Network 인터페이스 설정

NetworkManager: 네트워크 관리 데몬
nmcli : NetworkManager 설정 도구
nmtui : TUI(Text User Interface) 설정 도구

Connection

하드웨어 장치에 직접 설정을 반영하지 않고, ‘연결(Connection)’을 생성하여 이를 하드웨어에 연결
다수의 네트워크 환경에 따른 연결 설정을 만들어놓고, 필요한 연결설정을 매칭시키는 방식으로 사용할 수 있음

nmcli

명령어 형식
nmcli <대상> <서브커맨드> ...
네트워크 연결 추가
필수항목
이름: con-name
타입: type
사용할 하드웨어 장치: ifname
ex) # nmcli connection add con-name test type ethernet ifname ens33
선택항목
IP주소/서브넷마스크 : ipv4.addresses <주소/netmask>
게이트웨이 정보 : ipv4.gateway <gateway주소>
DNS 정보 : ipv4.dns <DNS 서버 주소>
자동활성화 설정 : connection.autoconnect
동작방식 : ipv4.method (auto: DHCP, manual: 수동)
ex) # nmcli connection add con-name static ifname ens33 type ethernet ipv4.addresses 192.168.100.100/24 ipv4.gateway 192.168.100.2 ipv4.dns 8.8.8.8
ex) # nmcli connection add con-name static2 ifname ens33 type ethernet ipv4.addresses 192.168.100.100/24 ipv4.gateway 192.168.100.2 ipv4.dns 8.8.8.8 ipv4.method manual
네트워크 연결 확인
nmcli connection show
nmcli connection show [연결이름]
네트워크 연결 활성화
nmcli connection up [연결이름]

네트워크 상태 확인 명령
ifconfig : net-tools 패키지로 분리 (netstat)
ip
address show :네트워크 주소정보 확인
route show : 라우팅 테이블 출력
netstat → ss

장치의 이름
ens33, eth0, eno16...

profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글