CentOS 7 패키지 설치
CentOS 7 기본 설정 후 서버 관리 및 운영을 도와주는 몇 가지 패키지들을 설치해주어야 한다.
해당 포스트에서는 필수 패키지 / 권장 패키지로 나누어 설명하도록 하겠다.
1. 패키지 업데이트
커널 및 각종 패키지들이 업데이트 되며 서버의 구성환경을 고려하여 진행한다.
## 패키지명을 지정하지 않을경우 설치되어있는 모든 패키지를 업데이트 한다.
yum update [패키지명]
## 설치된 패키지 중 업데이트된 패키지 목록 확인
yum list updates
2. 필수 패키지
일반적으로 설치해야하는 패키지들과 서버 모니터링을 위한 패키지로 구분하여 설명한다.
일반 패키지
# epel-release : 각종 패키지의 최신 버전을 사용하기 위해 설치
해당 패키지 설치후 다른 패키지 설치시에 최신 버전으로 설치되므로 disable 설정 후 enablerepo 옵션 사용
vi /etc/yum.repos.d/epel.repo
enabled=1 을 0으로
[epel]
...
enabled=0
...
yum repolist
yum --enablerepo=epel install [패키지명]
# net-tools : 각종 네트워크 명령어들을 관리하는 패키지로 IP 확인을 위한 ifconfig, 네트워크 연결 상태 확인을 위한 netstat 둘을 포함한 명령어를 사용하기 위해 설치한다.
<ifconfig>
ifconfig -a
ifconfig [interface] up
ifconfig [interface] down
<netstat>
netstat -nap
netstat -an | grep [Port]
netstat -nlpt
# unzip : zip으로 압축된 파일을 풀기 위해 사용한다.
unzip [file_name].zip
unzip -l [file_name].zip
unzip -t [file_name].zip
# wget : 웹 서버로부터 콘텐츠를 가져오는 명령어로 HTTP, HTTPS, FTP 프로토콜클 지원한다.
wget -O [파일 이름] [URL 주소]
wget --no-check-certificate [URL 주소]
# curl : 커맨드 라인용 데이터 전송 도구로 HTTP, FTP등 다양한 프로토콜을 지원한다.
Web 파일 다운받을 경우 wget 권장
curl -o [파일 이름] [URL 주소]
curl -T [파일 이름] [서버 IP]
curl -L [URL 주소]
# chrony : NTP를 구현한 Server/Client로 ntpd를 대체하며 서버의 시간을 동기화한다.
## 동기화 시킬 NTP 서버의 IP 추가
vi /etc/chrony.conf
server [NTP server IP] iburst <iburst = 동기화 시간을 단축 시켜주는 옵션>
systemctl restart chronyd
chronyc sources
# gcc, gcc-c++ : 각각 C언어, C++언어 컴파일러로 서버에 개발환경을 구축하기 위해 설치한다.
# openssl-devel : openssl을 설치하기 위한 의존성 패키지로 openssl을 사용할 애플리케이션 개발용 파일이다.
서버 모니터링 관련 패키지
# htop : 리눅스에서 사용중인 리소스등을 확인 (윈도우의 작업 관리자와 비슷한 역할을 함)
프로세스
PID
USER
PR
NI
VIRT
RES
SHR
S
%CPU
%MEM
TIMR+
COMMAND
# iftop : 네트워크 인터페이스의 트래픽 모니터링
iftop -i eno1
iftop -f "dst port 22"
# dstat : 실시간으로 디스크별 I/O 사용량 체크 및 부하 유발을 주는 프로세스를 쉽게 확인 가능하다.
dstat -tcdml
# sysstat : 리눅스 성능 측정 도구 패키지로 sar, iostat 등을 사용하기 위해 설치
<iostat> : CPU와 디스크의 처리량, 대기열 길이등을 실시간으로 모니터링 한다.
iostat -d 3
iostat -c 3
<sar> : 과거 모니터링 정보를 확인 /var/log/sa 폴더에 기록된 sa파일들을 조회한다.
sar -u
sar -r
sar -dp
sar -n DEV
# lsof : 시스템에서 열려있는 파일에 대한 정보를 출력
lsof -u [사용자 이름]
lsof -i
lsof -c [서비스 이름]
# psmisc : proc 파일 시스템을 사용하는 유틸리티 패키지로 fuser, killall, pstree등을 사용
<fuser> : 특정 파일시스템을 umount 할 떄 어떠한 프로세스 떄문에 진행이 안될 경우, 그 프로세스를 kill 하기 위해 사용
fuser -v [디렉터리]
fuser -ck [디렉터리]
<killall> : 특정 프로세스를 한 번에 죽이기 위해 사용
killall -i [프로세스]
killall -v [프로세스]
killall -w [프로세스]
<pstree> : 프로세스의 상태를 Tree 구조로 출력하여 확인
pstree -anp
3. 권장 패키지
# mlocate : 파일을 검색하기 위해 find 명령어 대신 데이터베이스 기반으로 파일을 검색하기 떄문에 빠른 검색을 위해 사용한다.
updatedb
locate [파일 이름]
locate -n [숫자] [파일 이름]
# ncat : 서버와 클라이언트가 소켓 통신을 하기위해 사용한다.
<서버>
ncat -l [Port]
ncat -lk [Port]
<클라이언트>
ncat [Server IP] [Port]
# whois : 도메인 소유자나 IP 주소 위치 등 이외 다른 정보를 확인할 떄 사용한다.
whois [도메인 주소]
whois [IP 주소]
# cloud-utils-growpart : LVM 구성이 아닌 상태에서 root 파티션 용량을 추가하기 위해 사용한다.
growpart [디스크 명] [파티션 번호]
resize2fs [파티션 경로]
# tcping : 클라이언트에서 서버의 TCP 포트를 ping 유틸리티로 체크하기 위해 사용한다.
tcping [Server IP] [Port]