인터넷 검색을하면 쓸만한 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
redis-sentinel 삽질기  (0) 2018.01.10
centos dns lookup 느린 경우  (0) 2016.11.25
CentOS 7에 rabbitMQ 설치  (0) 2016.10.07
goaccess 설치 사용  (0) 2016.10.06

배포된 버전의 zip파일을 풀어서 수정하는 방법 알려져 있으나 직접 빌드 해보고 싶다면 다음과 같이 진행을 한다.


git, java, maven은 설치되어 있다고 가정한다.


소스를 다운로드 받고


git clone https://bitbucket.org/eunjeon/mecab-ko-lucene-analyzer.git


다음의 세파일의 elasticsearch 버전을 필요한 버전으로 수정을 한다.



mecab-ko-lucene-analyzer/pom.xml

    <dependency>
      <groupId>org.elasticsearch</groupId>
      <artifactId>elasticsearch</artifactId>
      <version>5.5.2</version>
    </dependency>


mecab-ko-lucene-analyzer/elasticsearch-analysis-mecab-ko/pom.xml


  <version>5.5.2.0-SNAPSHOT</version>

mecab-ko-lucene-analyzer/elasticsearch-analysis-mecab-ko/plugin-descriptor.properties

version=5.5.2.0
elasticsearch.version=5.5.2


메이븐 빌드


mvn package -Dmaven.test.skip=true


패키징
./make-package.sh


정상적으로 완료가 되면

elasticsearch-analysis-mecab-ko-5.5.2.0.zip


파일이 생성된다.


  • 2018.01.02 15:10

    비밀댓글입니다

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


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


다음의 파일을 열어서

vim /etc/resolv.conf

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

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

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
goaccess 설치 사용  (0) 2016.10.06
windows10의 리눅스 환경 설정 하기  (0) 2016.08.05

nginx에 static파일을 post로 요청하면 405 에러가 발생한다. ( get 은 정상 작동 get만 쓰라는건가?)


curl -d -O  URL 해보면 다음과 같은 에러가 보인다.


$ curl -d -O url
<html>                                                                   
<head><title>405 Not Allowed</title></head>                              
<body bgcolor="white">                                                   
<center><h1>405 Not Allowed</h1></center>                                
<hr><center>nginx/1.10.2</center>                                        
</body>                                                                  
</html>                                                                  



아파치 서버에서는 아무 문제 없던 코드라 당황.


구글링해서 설정 추가 하니 잘 동작한다.


405에러인경우 에러페이지를 던지는 대신 요청한 URL을 주는 방식인것 같다.


error_page 405 = $uri;



참고 :

http://blog.brainless.in/2012/01/server-static-files-from-nginx-for-post.html




'지식창고 > 프로그램' 카테고리의 다른 글

firefox Dns over HTTPS (DOH) 적용 하기  (0) 2018.05.17
nginx post 405 not allow 문제  (0) 2016.11.24
크롬 마우스 제스쳐 확장  (0) 2016.09.21
ConEmu 설정  (0) 2016.08.31
Laravel - 기본 라우팅  (0) 2015.05.19
Laravel - 홈스테드 설치와 기본 설정  (0) 2015.05.19

사용하는 프로그램의 업데이트가 있어서 그걸 작업하는중에 뭔가 이상했다.


재부팅을 하고 나니 시작 메뉴에 사용하던 아이콘들이 죄다 사라졌다.

윈도우 10의 시작 메뉴 버그가 나에게도 찾아왔다.


구글링하고 이거저거 해보기전에 바로가기가 제대로 있는지 확인


시스템 시작 메뉴

C:\ProgramData\Microsoft\Windows\Start Menu


사용자 시작 메뉴

C:\Users\계정명\AppData\Roaming\Microsoft\Windows\Start Menu


Start Menu는 한글 윈도우에서는 "시작 메뉴" 라고 표시된다.



바로가기는 그대로 있고 클릭하면 실행에 지장은 없다. 시작메뉴 아이콘만 새로 빌드되면 되지 싶었다.


일단 표시되는 바로가기는 사용자 아이콘은 나오고 시스템의 시작메뉴가 나오지 않는 상태였다.


그래서 시작메뉴의 아이콘 하나를 사용자 메뉴에 복사했더니


시스템 내부적으로 새로 추가된 아이콘을 처리 하기 시작했다. 그러면서 시스템의 시작메뉴 아이콘이 보여진다.



오호~~ 한참을 웅웅 거리며 스캔하고 빌드한 후 다시 시작메뉴를 살펴보니 아이콘이 돌아왔다.



'지식창고 > 삽질' 카테고리의 다른 글

윈도우10 시작 메뉴 문제  (0) 2016.10.25
phpstorm gulp 설정  (0) 2016.07.01

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
CentOS 7에 rabbitMQ 설치  (0) 2016.10.07
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등을 사용하는게 좋을듯 하다.


크롬에서 사용하는 마우스 제스쳐


https://chrome.google.com/webstore/detail/crxmouse-chrome-gestures/jlgkpaicikihijadgifklkbpdajbkhjo


'지식창고 > 프로그램' 카테고리의 다른 글

firefox Dns over HTTPS (DOH) 적용 하기  (0) 2018.05.17
nginx post 405 not allow 문제  (0) 2016.11.24
크롬 마우스 제스쳐 확장  (0) 2016.09.21
ConEmu 설정  (0) 2016.08.31
Laravel - 기본 라우팅  (0) 2015.05.19
Laravel - 홈스테드 설치와 기본 설정  (0) 2015.05.19

탐색기 메뉴 : ConEmu Here추가

Setting -> Intergration -> Register

기본값은 {cmd} 윈10용 bash를 실행하려면 {bash} 기타 다른 쉘이 필요하면 Task의 명을 사용한다.



시작은 도커를 이용한 분산 서비스 아키텍처 맛보기 이 포스팅으로 부터 시작합니다.


우분투 가상머신에서의 네이티브 docker환경, 그리고 맥에서의 삽질끝에 깔끔하게 정리해 봐야 겠다는 생각이 들어서 정리해 봅니다.


1. docker for mac 설치

  

   두가지 설치 방법이 있는데 신규 설치라면 docker for mac을 설치 하고

   기존 설치 환경을 이용하거나 구버전 OS라면 docker toolbox를 설치 합니다.


   이 포스팅은 docker for mac을 기준으로 하며 docker version 1.12.0 이 설치 됩니다.


   https://docs.docker.com/docker-for-mac/ 


   docker.dmg를 다운받아 더블클릭하고 설치 합니다.

  


실행시키면 경고창이 하나 뜹니다. 닫고 다시 실행시키면 잠시후 트레이에 실행중인 모습이 보입니다.




터미널을 열고 docker -v 해보면 버전확인을 할 수 있습니다. 도커 환경 준비 완료!


2. 환경설정

  

   composer가 필요합니다. brew를 이용하거나 직접 설치 합니다.


3. 프로젝트 복제


  원본 프로젝트를 포크 후 clone하고composer를 실행합니다.


  git clone https://github.com/pokev25/quickstart-intermediate.git quickstart

  cd quickstart

  composer install

 

  redis를 사용할 것이니 추가 합니다.

  composer require predis/predis:^1.0


  서브모듈을 설정하기 위해서 원본을 포크 하고 서브모듈을 추가 합니다.


  git submodule add https://github.com/pokev25/laradock.git

 

4. 예제 처럼 프로젝트 수정

 

    예제의 커밋 로그를 확인하고 동일하게 몇 군데 손봅시다.

    DB는 mariadb를 사용합니다.


    .env

  DB_HOST=mariadb

  CACHE_DRIVER=redis
  SESSION_DRIVER=redis

  REDIS_HOST=redis


  docker-compose.yml에서 사용할 부분만 남기고 제거하고  lb와 web을 추가 합니다.


  사용할 부분만 정리 했으니 이미지를 가동합니다.


  docker-compose up


docker-compose ps 로 실행 상태를 확인

          Name                         Command               State                    Ports
-----------------------------------------------------------------------------------------------------------
laradock_lb_1               /sbin/tini -- dockercloud- ...   Up       1936/tcp, 443/tcp, 0.0.0.0:80->80/tcp
laradock_mariadb_1          docker-entrypoint.sh mysqld      Up       0.0.0.0:3306->3306/tcp
laradock_redis_1            docker-entrypoint.sh redis ...   Up       0.0.0.0:6379->6379/tcp
laradock_volumes_data_1     true                             Exit 0
laradock_volumes_source_1   true                             Exit 0
laradock_web_1              /usr/bin/supervisord -c /e ...   Up       443/tcp, 80/tcp, 9000/tcp
laradock_workspace_1        /sbin/my_init                    Up   

 

브라우저로 localhost에 접속해보면 기본 페이지가 보입니다.

5. 분산환경 테스트


워크스페이스로 들어가서artisan을실행합니다.

docker-compose exec workspace bash

php artisan migrate

exit


docker-compose scale web=3


잘 동작한다.!!

 


6. 받아서 실행만 하기


git clone https://github.com/pokev25/quickstart-intermediate.git quickstart

cd quickstart

git submodule init && git submodule update

composer install


cd laradock

docker-compose up

docker-compose exec workspace bash

php artisan migrate

exit


docker-compose scale web=3

  

ps. 우분투에서 테스트 결과 잘 동작함

docker for mac이 나오면서 맥에서 개발한 docker-compose를 그대로 실환경에서 사용가능해짐