사용하던  NFS서버에 문제가 생겨서 새 장비에 백업을 하고 설정을 변경했다.

4대의 서버중 한대만 정상적으로 마운트가 되었는데도 불구하고 20분 간격으로 nfs 마운트 디렉토리에 접속을 할 수 없는 현상이 생겼다.


/var/log/messages 를보니

nfs server host not responding, still trying

2~30분뒤 OK  로 정상 상태 표시되고

또 몇분있다가 멈췄다가 다시 접속되고


4대중에 한 대만 이상해서 구글링을 아무리 해도 원인을 찾을 수 없어서  재부팅 도해봤는데 증상이 없어지지 않았다.


3대는 정상인데 한대만 이상해서 몇시간을 차이점을 찾았는데

허무하게도 한대만 mask 값 달랐다.


문제의 서버는 255.255.255.224  나머지 서버는 255.255.255.192

기존에 쓰던 장비는 224 mask  범위의 IP를 사용중이였고 신규 장비는 192 mask 범위


mask 값을 맞췄더니 정상적으로 동작한다.


도데체 누가 오타를 낸건가...ㅡ.ㅡ;;;

'지식창고 > 리눅스' 카테고리의 다른 글

rsnapshot 설정과 실행  (0) 2018.09.14
cectos 7 에 nodejs v8 설치  (0) 2018.01.24
redis-sentinel 삽질기  (0) 2018.01.10
centos dns lookup 느린 경우  (0) 2016.11.25
CentOS 7에 rabbitMQ 설치  (0) 2016.10.07

백업이 필요해서 설정을 하는데 도움될만한 문서는 딱 하나뿐인데 유용하다.

https://github.com/php79/backup

설정 예제와 친절한 도움말이 있어서 큰 도움이 되었다.

rsnapshot.conf 파일이 centos6과 7 이 살짝 다르니 설명서 대로 다운받지 말고

/etc/rsnapshot.conf 파일을 백업후 수정 하는편이 좋다.


설명서에는 interval로 되어 있는데 설정파일에는 retain으로 되어 있어서

무슨차이인지 한참 찾다 보니  ChangeLog에 변경된다고 되어 있다.


https://github.com/rsnapshot/rsnapshot/blob/master/ChangeLog


The 'interval' config option is now called 'retain'.


동작 구조상으로도 간격보다는 보관이 맞는것 같다.


ps 설정을 마치고 실행을 해보면서 추가 합니다.


hourly가 끝나지 않은 상태에서 daily가 동작 하면 어떻게되지?


일단 한번 full 백업을 해둔 상태에선 변경분만 백업될테니

맨처음 한번은 수동으로 각각 실행시켜야겠다.. 라고 생각하고

테스트 해보니 rsnapshot은 한번에 하나만 실행되는 구조군요.


로그를 보면 pid 체크를 해서 다른 프로세스가 있으면 중지 시킵니다.

hourly를 수동으로 실행시키고 daily를 실행시키니..동작 안하네요.. retain에 지정한 개수만큼 백업이 존재해야 하는가 봅니다.

hourly.5 not present (yet), nothing to copy

cron에 hourly, daily, weekly를 추가 했습니다.  로그를 확인해보니

hourly 디렉토리가 daily로 넘어가는군요.


mv /backup/.snapshots/hourly.5/ /backup/.snapshots/daily.0/


'지식창고 > 리눅스' 카테고리의 다른 글

nfs server host not responding, still trying 문제  (0) 2018.10.19
cectos 7 에 nodejs v8 설치  (0) 2018.01.24
redis-sentinel 삽질기  (0) 2018.01.10
centos dns lookup 느린 경우  (0) 2016.11.25
CentOS 7에 rabbitMQ 설치  (0) 2016.10.07

centos 7에 epel 패키지를 설치 하고  nodejs를 설치하면 v6이 설치된다.


한글 공식 문서에는 v7 까지만 설명되어 있음

https://nodejs.org/ko/download/package-manager/#enterprise-linux-fedora


영문 공식 문서에 v9 까지 설명되어 있음

https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora


curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install nodejs



v8에는 npm 5.6.0 이 포함되어 있으므로 nodejs만 설치하면 npm은 별도 설치 하지 않아도 된다.



'지식창고 > 리눅스' 카테고리의 다른 글

nfs server host not responding, still trying 문제  (0) 2018.10.19
rsnapshot 설정과 실행  (0) 2018.09.14
redis-sentinel 삽질기  (0) 2018.01.10
centos dns lookup 느린 경우  (0) 2016.11.25
CentOS 7에 rabbitMQ 설치  (0) 2016.10.07

인터넷 검색을하면 쓸만한 redis-cluster 구성의 글이 많이 보인다.

쉽게 테스트가 진행될 것이라 생각했었다.


처음에 잘못 생각하고 있던 내용들도 보정이 되었다.

sentinel이 마스터와 슬레이브 모두 감시 하는거로 생각 했었는데 그게 아니였다. sentinel은 마스터만 감시하며 3대중 다수결 원칙에 따라 새로운 master를 선출 한다.


master-slave 구성까지는 쉽게 진행이되었다. 

sentinel 구성에서 부터 문제가 발생했다.


master를 정지 시켰는데 새로운 master 선출이 되지 않고 sdown상태에서 머물러 있기만 했다.


어디가 문제지? 내가 뭘 빼먹은걸까?


sentinel 로그에 +sdown sentinel 이 찍힌다. 3대의 sentinel들이 서로를 인식하지 못하고 있는것으로 보였다.

             +----+
             | M1   |
             | S1    |
             +----+
                  |
+----+       |      +----+
| R2   |----+----| R3  |
| S2   |               | S3  |
+----+              +----+


인터넷 문서들은 소스 컴파일해서 한대에서 포트를 다르게 진행하고 있었고

나는 서버 3대에 나눠서 yum 으로 설치 후 구성 테스트 중이였다. 

설정이 하나 빠진게 분명했다.


redis를 재설치 하고 처음부터 설정했다.

master redis.conf

bind <masterip>
requirepass foobared

slave redis.conf

bind <masterip>
slaveof <masterip> <masterport>
masterauth <master-password>
requirepass foobared

sentinel conf

bind <ip address>
sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel auth-pass <master-name> <password>



sentinel 설정에도 bind를 설정하니 로그에 -sdown sentinel이 찍히면서 서로를 인식했다.

master를 정지 시키자 새로운 마스터가 선출되는게 로그에 찍힌다.

'지식창고 > 리눅스' 카테고리의 다른 글

rsnapshot 설정과 실행  (0) 2018.09.14
cectos 7 에 nodejs v8 설치  (0) 2018.01.24
centos dns lookup 느린 경우  (0) 2016.11.25
CentOS 7에 rabbitMQ 설치  (0) 2016.10.07
goaccess 설치 사용  (0) 2016.10.06

구글링하다가 어디선가 찾았는데


지금보니 해결책만 남겨있어서 올림


다음의 파일을 열어서

vim /etc/resolv.conf

다음줄을 상단에 추가
options single-request-reopen

'지식창고 > 리눅스' 카테고리의 다른 글

cectos 7 에 nodejs v8 설치  (0) 2018.01.24
redis-sentinel 삽질기  (0) 2018.01.10
CentOS 7에 rabbitMQ 설치  (0) 2016.10.07
goaccess 설치 사용  (0) 2016.10.06
windows10의 리눅스 환경 설정 하기  (0) 2016.08.05

CentOS 7 에 rabbitMQ 설치 테스트 과정을 정리함


방화벽은 켜두지 않았지만 명령만 정리함


# https://www.rabbitmq.com/install-rpm.html

#pre-install
yum -y install epel-release
yum -y update
yum -y install erlang

#rabbitMQ
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
yum -y install rabbitmq-server-3.6.5-1.noarch.rpm

#start rabbitMQ
service rabbitmq-server start
#check status
service rabbitmq-server status
#install web admin plugin
rabbitmq-plugins enable rabbitmq_management

#check port 6938,15672
firewall-cmd --permanent --zone=public --add-port=15672/tcp
firewall-cmd --permanent --zone=public --add-port=6938/tcp
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

# http://localhost:15672 guest/guest
# if guest login fail add user
rabbitmqctl add_user myuser mypass
rabbitmqctl set_user_tags myuser administrator
rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"


'지식창고 > 리눅스' 카테고리의 다른 글

redis-sentinel 삽질기  (0) 2018.01.10
centos dns lookup 느린 경우  (0) 2016.11.25
goaccess 설치 사용  (0) 2016.10.06
windows10의 리눅스 환경 설정 하기  (0) 2016.08.05
vsftpd 여러개의 설정으로 운영  (0) 2015.09.30

기존 버전은 터미널에서만 실시간이 되고 HTML아웃풋에서는 안되어서 가끔 터미널 들어갈 때만 사용했었는데


누적되지 않는 데이터 때문에 불편한점이 있었다.


오늘 오랜만에 새버전(1.0.2) 을 설치해보니 실시간 HTML 지원되어 사용해보니 편리하다.



https://goaccess.io/download


다운로드 페이지의 설치 방법대로 설치를 한다.


환경 설정 파일 설정에서 웹서버에 맞게 주석을 풀어준다.


vim /usr/local/etc/goaccess.conf


time-format

date-format

log-format


여기까지만 설정을 하고 터미널에서 실행


goaccess -f /var/log/nginx/access.log



잘 동작 하는것을 확인 했다면 실시간 로그 파일 생성으로 실행


goaccess -f /var/log/nginx/access.log -o /var/www/log/index.html --real-time-html --ws-url=서버 주소


방화벽에 웹소켓 기본 포트인 7890열려 있어야 실시간 정보 갱신이 된다.



확인이 되었다면 설정 파일에서 실시간 옵션을 사용하도록 설정한다.


real-time-html true

ws-url 서버주소


설정이 되었으니 이제 다음 명령으로 실시간 HTML옵션이 동작한다.

goaccess -f /var/log/nginx/access.log -o /var/www/log/index.html


아직은 데몬 형태로 동작 하지는 않으니 tmux등을 사용하는게 좋을듯 하다.


실컴에 적용하기에 앞서 가상머신에 테스트를 해보려고 설치했다.


윈도우 기능 켜기/끄기에서 선택을 하고 재부팅이 되면 시작-> 실행에서 bash를 실행시키면 다운로드 후에 bash쉘이 실행되며

사용할 계정을 묻는 질문에 대답을 하면 기본 설정은 끝이다.


zsh을 사용할 수 있는지가 궁금해서 테스트를 진행하였다.

sudo apt-get install zsh

일반적인 쉘 변경으로는 사용이 불가했다. 당연한거겠지?

일단 설치를 완료해보자고  oh-my-zsh를 설치했다.

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

명령창이 불편해서 conemu를 실행 하면서 bash를 선택했더니 인식한다. ...와우!!

bash에서 zsh로 가도록 하면 되지 않을까 싶어서 검색해보니 설정 방법이 있다.

http://www.howtogeek.com/258518/how-to-use-zsh-or-another-shell-in-windows-10/

vim .bashrc

상단에 # for examples 다음줄에 추가

# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi

그런데 이런 저런 설정을 하려고 보니 unable to resolve가 나온다.

/etc/hostname에 적힌 이름대로 /etc/hosts에 추가 해주면 해결된다.




vsftpd 를 기본 포트와 다른 포트를 하나더 추가 해야할 상황이 생겼다.



검색을 해보니 무척 복잡한 방법이 검색 되었다.


Vsftpd Multiple Instances One IP Address


테스트용 리눅스 가상머신을 띄우고  하나하나 해보라는대로 진행하였다.


1. cp /etc/vsftpd/vsftd.conf /etc/vsftpd/vsftpd2.conf

    21번이 아닌 다른 포트로 설정


2. 복사한 설정파일을 구동할 /etc/init.d/vsftpd의 스크립트를 수정하려고 열어보다보니


어라???   .conf 파일을 읽네?  그럼 conf만 따로 작성하면 된다는거 아닌가?


        if [ -d /etc/vsftpd ] ; then
                CONFS=`ls /etc/vsftpd/*.conf 2>/dev/null`
                [ -z "$CONFS" ] && exit 6
                PROC_FAILED=0
                for i in $CONFS; do
                        site=`basename $i .conf`


vsftpd를 재시작해보니 잘 동작한다.


생각보다 쉽게 문제를 해결했다.



ps.


http://dummy.pe.kr/1711


vsftp.conf : 기본 상태의 설정

vsftp2.conf : 포트 변경, 가상 유저 설정


이렇게 각각 설정 해서 잘 동작 한다.

검색을 해보면 복잡하게 설명된 블로그가 많다.


CentOS 공식 위키에서 제공하는 스크립트를 사용하면 아주 편리하게 설정이 가능하다.


https://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users


위의 문서에 패키지 설치는 오타가 있다.


yum -y install vsftpd db4-utils


config 실행

vsftpd_virtual_config.sh


방화벽 설정

패시브 모드를 기본으로 설정하게 되어 있으로 해당 포트를 열어준다.

64000:65535


사용자 추가

vsftpd_virtualuser_add.sh


추가한 사용자로 접속을 해본다.


여기까지는 잘되는데 문제는 로컬 사용자를 같이 사용하고 싶은 경우이다.


config스크립트를 살펴보면 /etc/vsftpd/denied_users 파일에 접근제한용 운영계정과

로컬 사용자 계정 정보가 모두 들어간다.


사용할 사용자 계정이 localuser 라면

vim /etc/vsftpd/denied_users

localuser 삭제


/etc/vsftpd/users 에서

cp  my_ftp_virtual_user localuser

vim localuser

local_root=/home/localuser


기본 vsftpd 인증은 /etc/pam.d/vsftpd 파일이고

config를 실행하면서 생긴 파일은 /etc/pam.d/ftp파일이다.


ftp 파일을 수정하자.


기존

auth    required pam_userdb.so db=/etc/vsftpd/accounts
account required pam_userdb.so db=/etc/vsftpd/accounts


수정

#%PAM-1.0

# virtual users

auth    sufficient pam_userdb.so db=/etc/vsftpd/accounts
account sufficient pam_userdb.so db=/etc/vsftpd/accounts
#Local users
auth    include    vsftpd
account    include   vsftpd


이제 로컬 유저와 가상 유저 모두 사용가능하다.