CentOS 에서 CPU, Memory, HDD 부하 주는 방법 (스트레스 테스트)

리눅스/OS 일반|2021. 3. 19. 07:49
반응형

[ 리눅스에 stress 툴 설치 ]

 

Stress 툴 설치하기 전에 EPEL 레포지터리를 활성화 합니다.

# yum -y install epel-release

 

Stress 툴을 설치합니다.

# yum -y install stress

 

 

[ Stress 툴 사용 방법 예제 ]

 

1. CPU 부하 주는 방법

 

# stress -c <코어 수>

grep -c processor /proc/cpuinfo 명령어를 통해 CPU 코어 전체 개수를 확인할 수 있습니다.

stress 툴에 코어 수를 지정하면 해당 코어는 100%를 사용하게 됩니다.

 

 

2. Memory 부하 주는 방법

 

# stress --vm <프로세스 수> --vm-bytes <사용할 크기>

예 : stress --vm 3 --vm-bytes 1024m

 

 

3. HDD 부하 주는 방법

 

# stress --hdd <hdd 수> --hdd-bytes <사용할 크기>

예 : stress --hdd 3 --hdd-bytes 1024m



출처: https://klero.tistory.com/entry/리눅스-stress-툴을-통해-CPU-Memory-스트레스-부하-주는-방법 [Klero]

반응형

댓글()

리눅스에서 파티션 FAT32 로 포맷하기

리눅스/OS 일반|2021. 3. 10. 09:10
반응형

파티션은 fdisk 로 생성한 다음 아래와 같은 형식으로 FAT32로 포맷할 수 있습니다.

(예: sdc 장치의 1번 파티션을 FAT32로 포맷)

 

# mkfs.vfat -F 32 /dev/sdc1

 

 

반응형

댓글()

Ubuntu 18.04 텔레그램에서 한글 사용하기

리눅스/OS 일반|2021. 2. 18. 08:42
반응형

우분투 기본 iBus 한글입력기 말고 fcitx 입력기를 사용하면 쉽게 해결이 됩니다.


1. 한글 입력 패키지 설치

# apt -y install fcitx-hangul fcitx-config-gtk


2. 설정

프로그램 표시 > 언어 지원 > '언어'탭 하단 키보드 입력기를 'fcitx' 로 변경한 후


로그오프, 로그인 을 거치면 텔레그램에서 한글 사용이 가능해집니다.



반응형

댓글()

CentOS 7 에서 모니터링 도구 Zabbix 5.2.3 설치 및 호스트 추가하기

리눅스/OS 일반|2021. 2. 17. 15:04
반응형

OS 는 CentOS 7 이고 APM 소스 설치 전제하에 진행 하였습니다.

참고로 Zabbix 5.2.3 버전은 PHP 7.2 이상을 필요로 합니다.

 

[ Zabbix 서버 ]

 

1. 다운로드

 

# cd /usr/local/src

# wget http://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.3.tar.gz

# tar zxvf zabbix-5.2.3.tar.gz

# cd zabbix-5.2.3

# ./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp=/usr/bin/net-snmp-config --with-libcurl

# make

# make install

 

 

2. 데이터 베이스 설정

 

# mysql -p

(root 패스워드 입력후 엔터)

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '12345678'; // 계정은 알맞게 입력

mysql> flush privileges;

 

# cd /usr/local/src/zabbix-5.2.3/database/mysql

# mysql -p zabbix < schema.sql

# mysql -p zabbix < images.sql

# mysql -p zabbix < data.sql

 

 

3. 계정 생성

 

(안되어 있을 경우)

# groupadd --system zabbix

# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

 

 

4. 웹소스 복사 및 초기 구성

 

# mkdir -p /home/zabbix/public_html

# cp -arp /usr/local/src/zabbix-5.2.3/ui/* /home/zabbix/public_html

 

웹서버에 사이트를 추가로 구성 합니다.

 

# vi /usr/local/apache/conf/extra/httpd-vhost.conf

 

<VirtualHost *:80>

    DocumentRoot "/home/zabbix/public_html"

    ServerName sysdocu.tistory.com

    ErrorLog "logs/sysdocu.tistory.com-error_log"

    CustomLog "logs/sysdocu.tistory.com-access_log" combined

</VirtualHost> 

 

# /usr/local/apache/bin/apachectl restart

 

관리 UI 에서 DB 접근이 가능하도록 아래 파일을 열어 옵션을 수정 합니다.

 

# vi /usr/local/zabbix/etc/zabbix_server.conf

 

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=12345678

DBSocket=/tmp/mysql.sock

 

파일 저장 후 zabbix 를 구동합니다.

 

# /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

 

구동시 아래와 같은 에러가 출력될 경우

/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

 

해결 방법입니다.

# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf    // 구동전 /usr/local/mysql/lib 디렉토리 내에 libmysqlclient.so.20 파일을 확인합니다.

# ldconfig

# /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

 

 

웹브라우저를 통해 zabbix 관리 페이지에 접속합니다.

 

php 설정 상태에 따라 진행이 가능하며, 진행 완료 페이지에서 conf 가 적용되지 않을 경우 제공하는 설정파일을 다운로드 받아 아래 파일로 저장합니다.

 

/home/zabbix/public_html/zabbix.conf.php

 

이제 다시 사이트에 접속 하면 관리 UI 로 로그인이 가능합니다.

http://sysdocu.tistory.com

 

초기 패스워드 : Admin / zabbix

 

 

[ Host 추가 ]

 

모니터링 대상 서버를 관리 목록에 추가 합니다.

외부에서 대상 서버를 모니터링 하기 위해 서버 내에 agent 를 설치해야 합니다.

 

1. 패키지 설치

 

(모니터링 대상 서버에서)

# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.28-1.el7.x86_64.rpm

# rpm -Uvh zabbix-release-4.0-2.el7.noarch.rpm

# rpm -Uvh zabbix-agent-4.0.28-1.el7.x86_64.rpm

 

 

2. 설정 및 실행

 

# vi /etc/zabbix/zabbix_agentd.conf

 

Server=10.10.10.10 // 관리자 서버 IP 입력
Hostname=20.20.20.20 // 호스트 서버 IP 입력

 

# systemctl enable zabbix-agent

# systemctl start zabbix-agent

 

브라우저를 통해 관리페이지에 접속 합니다.

 

http://sysdocu.tistory.com

 

설정 > 호스트 그룹 > '호스트 그룹 작성' 클릭

- 그룹 이름 : 'Managed Group' 입력

 

설정 > 템플릿 > '템플릿 작성' 클릭

- 템플릿 이름 : 'Managed Template' 입력

- 표시명 : 'Managed Template' 입력

- 그룹 : 'Managed Group' 선택

 

설정 > 호스트 > '호스트 작성' 클릭

- 호스트명 : 'First Server' 입력

- 표시명 : 'First Server' 입력

- 그룹 : 'Managed Group' 선택

- Interfaces : '추가' 버튼 클릭 > '에이전트' 선택 > 모니터링 대상 서버 (호스트 서버) IP 와 포트 10050) 입력

- [템플릿] 탭의 'Link new templates' 에서 'Managed Template' 선택

 

 

'추가' 버튼을 누르고 리스트로 나오면 시간이 조금 걸려서 '상태'값 [ZBX] 부분이 '녹색'으로 활성화 됩니다.

 

 

 

 

반응형

댓글()

Ubuntu 18.04 부팅속도가 빨라 커널 선택창이 출력되지 않는경우

리눅스/OS 일반|2021. 2. 3. 14:38
반응형

Ubuntu 18.04 설치 후 커널 선택 화면을 보고 싶었는데 화면도 채 나오기 전에 부팅이 되어버린 경우가 있습니다.

이때는 아래 파일을 열고 색칠된 옵션을 주석처리하여 부팅이 바로되지 않도록 조정해주면 됩니다.

 

# vi /etc/default/grub

 

GRUB_DEFAULT=0

#GRUB_TIMEOUT_STYLE=hidden

#GRUB_TIMEOUT=0

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX=""

 

저장한 값은 아래 명령을 통해 적용 합니다.

 

# update-grub

 

 

반응형

댓글()

리눅스 삭제된 데이터 복원하기 (extundelete)

리눅스/OS 일반|2021. 1. 25. 12:29
반응형

[환경]

Ubuntu 18.04 LTS

OS 디스크 : SSD 250G

추가 디스크 : SATA 80G



[상황]

OS 디스크 I/O error 로 인해 교체, OS 재설치가 필요하게 되었습니다.

어차피 파쇄될 디스크지만 몇몇개의 데이터 정보 유출이 우려되어 OS 디스크의 다운로드 디렉토리와 몇가지 필요없는 파일을 수동으로 삭제하며 정리하는 도중 추가 디스크의 디렉토리를 잘못 삭제하였고, 휴지통에서 조차 비워버린 상태가 되었습니다. (모든 데이터 날아감)

(중요!!) 추가 디스크의 데이터를 안전하게 보존해야 하므로 추가 디스크에 더 이상 파일을 저장하거나 쓰면 안됩니다.



[복구]

새 OS 디스크로 교체, OS 재설치 (Ubuntu 18.10) 이후 아래 명령을 이용하였습니다.


복구에 필요한 패키지를 설치합니다.


root@cdh-desktop:~# apt -y install extundelete

root@cdh-desktop:~# apt -y install e2fslibs-dev


복구될 데이터를 저장할 디렉토리로 이동합니다.


root@cdh-desktop:~# mkdir /root/restore

root@cdh-desktop:~# cd /root/restore


삭제 파일이 있는 파티션을 지정하여 복구를 시도 합니다.

(복구 대상 디스크는 마운트가 되지 않은 상태 입니다.)


root@cdh-desktop:~/restore# extundelete /dev/sdb1 --restore-all

NOTICE: Extended attributes are not restored.

Loading filesystem metadata ... 597 groups loaded.

Loading journal descriptors ... 30268 descriptors loaded.

Searching for recoverable inodes in directory / ... 

6605 recoverable inodes found.

Looking through the directory structure for deleted files ... 

6 recoverable inodes still lost.


복구가 완료 되었습니다. 오래전에 삭제한 파일도 복구가 되어 정리를 좀 해야 하지만 다른 프로그램 과는 달리 파일명도 inode 값이 아닌 사용하던 그대로 보입니다.

감격.. ㅜ.ㅜ


(복구된 용량 확인)

root@cdh-desktop:~/restore# du -sh .

36G .


(파일 리스트 보기)

root@cdh-desktop:~/restore# ll

total 12

drwxr-xr-x 3 root root 4096  1월 25 11:58 ./

drwx------ 8 root root 4096  1월 25 11:54 ../

drwxr-xr-x 4 root root 4096  1월 25 12:10 RECOVERED_FILES/

root@cdh-desktop:~/restore# cd RECOVERED_FILES/

root@cdh-desktop:~/restore/RECOVERED_FILES# ll

total 192

drwxr-xr-x 4 root root  4096  1월 25 12:10 ./

drwxr-xr-x 3 root root  4096  1월 25 11:58 ../

drwxr-xr-x 5 root root  4096  1월 25 12:05 .Trash-1000/

drwxr-xr-x 2 root root  4096  1월 25 12:10 ISOs/

-rw-r--r-- 1 root root   527  1월 25 12:10 elcplist.dll

-rw-r--r-- 1 root root 27177  1월 25 12:10 file.4726321

-rw-r--r-- 1 root root 27570  1월 25 12:10 file.4726366

-rw-r--r-- 1 root root 24823  1월 25 12:10 file.4726383

-rw-r--r-- 1 root root 25899  1월 25 12:10 file.4726390

-rw-r--r-- 1 root root 43924  1월 25 12:10 file.4726400

-rw-r--r-- 1 root root 12716  1월 25 12:10 file.4726403

root@cdh-desktop:~/restore/RECOVERED_FILES# cd .Trash-1000/

root@cdh-desktop:~/restore/RECOVERED_FILES/.Trash-1000# ll

total 20

drwxr-xr-x 5 root root 4096  1월 25 12:05 ./

drwxr-xr-x 4 root root 4096  1월 25 12:10 ../

drwxr-xr-x 3 root root 4096  1월 25 12:05 expunged/

drwxr-xr-x 6 root root 4096  1월 25 12:05 files/

drwxr-xr-x 2 root root 4096  1월 25 12:00 info/

root@cdh-desktop:~/restore/RECOVERED_FILES/.Trash-1000# ll expunged/1651618508

total 1388

drwxr-xr-x 25 root root    4096  1월 25 12:06  ./

drwxr-xr-x  3 root root    4096  1월 25 12:05  ../

drwxr-xr-x  2 root root    4096  1월 25 12:05  G클라우드/

drwxr-xr-x 11 root root    4096  1월 25 12:05  ISMS/

-rw-r--r--  1 root root   45798  1월 25 12:05 'bookmarks_19. 1. 28.html'

drwxr-xr-x  2 root root    4096  1월 25 12:05  견적서/

drwxr-xr-x  9 root root    4096  1월 25 12:05  기술지원팀/

drwxr-xr-x  3 root root    4096  1월 25 12:05  네트워크팀/

drwxr-xr-x  3 root root    4096  1월 25 12:05  매니지드팀/

drwxr-xr-x  7 root root   12288  1월 25 12:06  보고서/

drwxr-xr-x  3 root root    4096  1월 25 12:05  보안관제/

drwxr-xr-x  2 root root    4096  1월 25 12:05  서식/

drwxr-xr-x 11 root root    4096  1월 25 12:05  인프라운영팀/



반응형

댓글()

우분투 apt-get update 404 not found 해결 방법

리눅스/OS 일반|2021. 1. 25. 11:31
반응형

Ubuntu 19.10 환경에서 겪은 내용입니다.

아래 패키지 저장소 url 을 변경 해봅니다.


# cd /etc/apt/

# cp -arp sources.list sources.list.ori

# vi sources.list


(모든 저장소의 url 을 아래 경로로 변경합니다.)


old-releases.ubuntu.com/ubuntu/


# do-release-upgrade


그다음 업데이트나 패키지를 설치해보면 잘 되는것을 볼 수 있습니다.

반응형

댓글()

시스템 모니터링 도구 zabbix 4.2.2 설치하기 (CentOS 8)

리눅스/OS 일반|2021. 1. 7. 10:18
반응형

CentOS 8 에 zabbix 설치하는 과정 입니다.

모니터링 도구 zabbix 는 기본적으로 웹서버와 DB를 필요로 합니다.

Apache, MariaDB 설치 전제 하에 작성 하였습니다.



1. 설치


# cd /usr/local/src


# yum -y install epel-release


# wget https://repo.zabbix.com/zabbix/4.2/rhel/8/x86_64/zabbix-release-4.2-2.el8.noarch.rpm

* OS 버전이 다를 경우 https://repo.zabbix.com/zabbix/4.2/rhel 에서 파일 확인이 가능합니다.


# rpm -Uvh zabbix-release-4.2-2.el8.noarch.rpm


# yum clean all


# yum -y install zabbix-server-mysql zabbix-web-mysql



2. DB 및 계정 생성


데이터 베이스를 생성 합니다.


(MySQL root 로그인 후)


MariaDB [(none)]> create database zabbix;


MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '12345678';


MariaDB [(none)]> flush privileges;


MariaDB [(none)]> exit


사용할 기본 테이블을 생성합니다.


# cd /usr/share/doc/zabbix-server-mysql/


# gunzip create.sql.gz


# mysql -p zabbix < create.sql


* 입력 도중 아래와 유사한 에러가 출력될 경우 해당 컬럼의 타입을 varchar 에서 text 로 변경합니다.

ERROR 1118 (42000) at line 1284: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.


(create.sql 파일의 1352~1355 줄)

        `poc_2_phone_a`          varchar(64)     DEFAULT ''                NOT NULL,

        `poc_2_phone_b`          varchar(64)     DEFAULT ''                NOT NULL,

        `poc_2_cell`             varchar(64)     DEFAULT ''                NOT NULL,

        `poc_2_screen`           varchar(64)     DEFAULT ''                NOT NULL,


타입이 문제로 보이지 않았지만, 해당 컬럼의 타입을 varchar(64) 에서 text 로 변경 후 정상 입력되는 것을 확인 하였습니다.



3. 설정


# vi /etc/zabbix/zabbix_server.conf


// 아래 옵션은 주석을 해제하고 값을 변경해 줍니다.

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=12345678



4. 구동


# systemctl enable zabbix-server  // 시작 프로그램 등록

# systemctl start zabbix-server


zabbix 웹페이지 접근을 위해 기존 apache 데몬을 재시작 합니다.


# systemctl restart httpd


명령 실행 후 접근이 안되던 http://서버IP/zabbix 페이지에 접근이 가능합니다.



5. 접속 및 추가 설정


웹브라우저를 이용해 http://서버IP/zabbix 로 접속합니다.

아래 절차에 따라 설정을 마칩니다.


1) Welcome 메세지 확인 > [Next step] 클릭

2) 사용 가능한 PHP 모듈 및 설정 값 확인 > [Next step] 클릭

3) DB정보 입력 > [Next step] 클릭

4) Host, Port 확인 (Name 은 선택항목임) >  [Next step] 클릭

5) 지금까지의 입력값 확인 페이지  > [Next step] 클릭

6) 구성 성공 메세지 > [Finish] 클릭


모든 설정을 마치면 Username 과 Password 를 입력하는 로그인창이 뜨는데, 기본 계정은 아래와 같습니다. 보안을 위해 로그인 즉시 패스워드를 변경하도록 합니다.


- Uername : Admin  // 대소문자 구분

- Password : zabbix


* 패스워드 및 언어셋 변경

1) 우측 상단 '사람 모양' 아이콘 클릭 > [Password] 항목에서 패스워드를 변경합니다.

2) 언어도 한국어로 변경이 가능합니다. [Language] 항목에서 'ko_KR' 로 변경하면 글씨를 쉽게 읽을 수 있습니다.


반응형

댓글()

nc 명령 결과를 변수에 넣거나 파일에 쓰기

리눅스/Network|2020. 12. 11. 11:05
반응형

포트 체크를 위해 간단히 nc 라는 명령을 사용할 때가 있습니다.

그러나 일반적으로 아래와 같은 경우 결과를 변수에 넣거나 파일로 저장이 되지 않는데..


[ 잘 되지 않는 경우 ]


# nc -v -z sysdocu.tistory.com 80 > result.txt


# result=`nc -v -z sysdocu.tistory.com 80`

# echo $result



[ 해결 방법 ]


명령을 사용하거나 shell script 를 만들어서 사용해 보세요.

아래 예제는 결과를 출력하지만 파일로 저장하고 싶을 경우 echo "Success" > result.txt 과 같이 하면 됩니다.


# vi check.sh


#!/bin/bash


if nc -v -z sysdocu.tistory.com 80 2>/dev/null; then

       echo "Success"

else

       echo "failed"

fi 


# chmod 700 check.sh


# sh check.sh

Success



반응형

댓글()

기본 에디터, 기본 편집기 변경하기 (nano -> vim)

리눅스/OS 일반|2020. 11. 26. 09:16
반응형

Ubuntu 20.04 에서 crontab -e 명령을 사용할때 nano 편집기로 열릴 경우 vim 으로 변경하는 방법이 있습니다.


# vi ~/.bashrc

export EDITOR="vim"    // 맨 하단에 추가


적용하기

# source ~/.bash


이제 vim 을 이용한 편집이 가능해 졌습니다.


반응형

댓글()

Apache2 구동 에러 : AH00111: Config variable ${APACHE_RUN_DIR} is not defined

리눅스/APACHE|2020. 11. 25. 15:40
반응형

아파치를 구동이 잘 되지 않아 설정 체크를 해보았더니 아래와 같은 에러 메세지가 출력 되었습니다.


root@sysdocu:/root# systemctl restart apache2

Job for apache2.service failed because the control process exited with error code.

See "systemctl status apache2.service" and "journalctl -xe" for details.


root@sysdocu:/root# apache2 -t

[Wed Nov 25 15:34:44.220065 2020] [core:warn] [pid 52764] AH00111: Config variable ${APACHE_RUN_DIR} is not defined

apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot


이 경우 아래와 같이 환경 변수 파일을 다시 적용하면 해결이 됩니다.


root@sysdocu:/root# source /etc/apache2/envvars 


root@sysdocu:/root# apache2 -t

Syntax OK


이상이 없으므로 아파치 재시작을 해줍니다.


root@sysdocu:/root# systemctl restart apache2



반응형

댓글()