본문 바로가기

서버49

EFK Stack 구축 using Docker compose Elasticsearch + Fluentd + Kibana 조합을 EFK Stack이라 부른다.참고로 Elasticsearch + logstash + Kibana 조합은 ELK Stack 이다.Fluentd : 오픈소스 log collectorElasticsearch : Lucene 기반 분산 검색 엔진이며 JSON 형태로 문서를 저장한다. (schema free)Kibana : 데이터 시각화를 위한 오픈소스Colored by Color Scriptercs간편하게 설치하기 위해서 Docker를 이용하였다.해당 구축 방식은 실무에 적용하기에 다소 부족하니 테스트 용도로만 사용해야 한다.난 Spring Data Elasticsearch 를 테스트 하기 위해 구축했다. 1.먼저 Docker와 Docker co.. 2017. 8. 24.
Google App Engine 환경에 Spring Boot 배포하기 까페24에서 서버 호스팅을 받다가 구글 클라우드 플랫폼으로 이전하기 위해 학습한 내용을 정리한다.Google App Engine에 Spring Boot 애플리케이션을 배포해보자. 배포를 위해 사용한 환경은 다음과 같다.123IDE : IntelliJApplication : Spring Boot (Java 8)Platform : Google App Engine Flexible environment and Container Enginecs 1. 구글 클라우드 플랫폼에서 프로젝트 생성https://console.cloud.google.com 접속한 후 새로운 프로젝트 생성구글 클라우드 플랫폼에서 신규 프로젝트를 생성한다. > 페이지 상단의 "프로젝트 선택" 클릭 > 팝업 레이어에서 신규 프로젝트 생성 버튼 클.. 2017. 8. 9.
kubernetes 정리 kubernetes는 배포, 확장 및 운영을 자동화하는 컨테이너 관리툴이다. kubernetes가 왜 필요한지에 대해서 알아보자.kubernetes없이 Docker를 이용하여 애플리케이션을 서버에 배포하고 운영 하려면 shell script를 작성하거나 별도의 툴을 사용해야 한다.shell script를 이용한 배포를 예로 들면 docker image registry에서 애플리케이션이 포함되어 있는 custom docker image를 다운로드 받고 이를 각 서버에 배포하고 실행하는 수준이 될 것이다.이와 같은 배포는 최초 환경 구성 시 빡시게 하면 된다.단, 서비스 운영을 하면서 과도한 사용자 요청이 있을 경우 성능 저하가 발생하게 되는데 그때서야 부랴부랴 서버를 확장하고 애플리케이션을 각 서버에 적절.. 2017. 1. 12.
Kubernetes 설치 Ubuntu 14.04 LTS, Kubernetes 1.5.1 버전을 기준으로 작성한다.Kubernetes 설치를 위한 호스트 정보는 다음과 같다. master 192.168.50.11 node(minion) 192.168.50.2 node(minion) 192.168.50.11 1.root로 로그인 2.모든 호스트에 docker 설치http://lng1982.tistory.com/268 3.kubernetes pods 내부의 컨테이너 관리를 위해 설치# apt-get install bridge-utils 4.git 설치 및 kubernetes clonemaster 노드에만 설치한다.# apt-get install git -y# git clone https://github.com/kubernetes/ku.. 2017. 1. 12.
Docker 정리 [설치 - Ubuntu 14.04]Docker를 설치하기 위해서는 64bit 리눅스 운영체제 및 커널 버전이 3.10 이상이어야 한다.uname -r 명령어를 통해 커널 버전을 확인할 수 있음 Ubuntu 14.04 버전에는 기본적으로 1.5.0 버전의 Docker가 설치되어 있는 것을 확인할 수 있었고, 최신 버전으로 업그레이드 하기 위해서 다음과 같이 진행하였다.패키지 인덱스 정보 업데이트$ sudo apt-get update 패키지 설치$ sudo apt-get install apt-transport-https ca-certificates apt 매니저 키 등록$ sudo apt-key adv \ --keyserver hkp://ha.pool.sks-keyservers.net:80 \ --recv-.. 2017. 1. 4.
리눅스 컨테이너 (LXC) Docker를 학습하기 전 리눅스 컨테이너에 대한 이해가 필요하여 내용을 정리한다. OS의 내부 - 물리적 자원을 관리하는 커널 공간 - 사용자 프로세스를 실행하는 사용자 공간 기존 가상화 기술 - OS위에 또 하나의 OS가 동작 - 호스트 OS와 게스트 OS를 완전 분리 할 수 있는 장점 LXC (리눅스 컨테이너) - 모든 프로세스는 호스트 OS에서 바로 시작 - 일반적인 프로세스의 동작과 다른 점은 그 과정의 일부를 그룹화하고 다른 그룹이나 그룹에 속하지 않는 프로세스에서 단절된 공간으로 동작 - 화물 컨테이너처럼 독립된 공간에 프로세스가 들어 있기 때문에 이 공간을 '컨테이너'라고 부른다. - 가상 머신 부팅 및 종료 개념이 없기 때문에 가상 환경의 시작과 종료가 빠름 기존의 가상화 기술들을 하드웨.. 2017. 1. 4.
MQTT (mosquitto broker 오픈소스) 우분투에서 MQTT 테스트 하는 방법에 대해서 정리 Broker 서버로 사용하게될 오픈 소스는 mosquitto 이다. 다음과 같이 설치하고1. wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key 2. sudo apt-key add mosquitto-repo.gpg.key 3. sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list 4. sudo apt-get install mosquitto [Mosquitto 서버 시작] vagrant@vagrant:~$ mosquitto -c /etc/mosquitto/mosquitto.conf [Subscriber 등록한다.] vagrant@vagr.. 2016. 11. 2.
tomcat 구동 시 /dev/random 블로킹 이슈 [현상]새로 지급 받은 리눅스 신규 장비에 java, tomcat 환경 구성을 하고 tomcat 구동 시 대기 상태로 빠지는 현상이 있었다. 특이한 점은 몇 분 지나면 tomcat 구동이 완료되는 경우와 몇 십 분이 지나도 서버 구동이 완료되지 않는 경우가 있다라는 것이다. 지연 현상이 발생되면서 다음과 같은 로그가 남았고, 해당 로그를 통해서 그 원인 및 해결 방법을 찾아보왔다.[2016-08-23 18:10:36 INFO o.s.w.c.ContextLoader][313] - Root WebApplicationContext: initialization completed in 2785 ms8월 23, 2016 6:11:14 오후 org.apache.catalina.util.SessionIdGenerato.. 2016. 8. 25.
Nginx 2016/07/01 09:14:00 [crit] 1938#0: *4 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream, client: 10.0.2.2, server: localhost, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "localhost:20000" 위의 오류는 Nginx에서 네트웍 자원을 엑세스 하지 못해 발생하는 문제인데 다음의 rule을 추가해 주면 Nginx에서 tomcat으로의 네트웍 접근이 가능하게 된다.# setsebool -P httpd_can_network_connect 1 -P 옵션을 주게 .. 2016. 7. 15.
Apache worker 파일에 template 적용하기 오픈커뮤니티의 tomcat 세미나를 첨석하면서 알게된 사실인데 유용한 팁인 것 같아 정리해 본다. worker 파일에 톰켓 연결 설정을 하게 되면 지금껏 나는 다음과 같이 하였다.worker.list=myajp13,my2ajp13,my3ajp13 worker.myajp13.port=8009worker.myajp13.host=localhostworker.myajp13.type=ajp13worker.myajp13.lbfactor=1worker.myajp13.socket_timeout=300worker.myajp13.socket_keepalive=trueworker.myajp13.connect_timeout=30000worker.myajp13.connection_pool_size=128worker.myajp1.. 2016. 1. 22.
tomcat7 소스 빌드 로컬 이클립스 환경에 tomcat 소스를 import하고, 이를 분석할 수 있는 환경을 만드는 방법에 대해서 설명한다. 1. 소스 다운로드http://tomcat.apache.org/download-70.cgihttp://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.64/src/apache-tomcat-7.0.64-src.zip 2.apache-tomcat-7.0.64-src 디렉토리 tomcat으로 변경 (디렉토리명은 원하는 이름으로 변경하면 된다.) 3.이클립스 > Import > General > Project 생성다운로드 받은 tomcat 소스 폴더 지정해당 프로젝트 > Properties > Project Facets 선택 후 Java에 체크Java .. 2015. 9. 7.
Tomcat Parallel deployment 테스트가 진행중인 서버에 hot deploy 할 수 있는 방법에 대해서 고민을 해오다가 알게된 tomcat parallel deployment에 대해서 정리한다. 병렬 배포를 알기 전까지는 apache를 이용해 로드밸런싱을 해볼까라는 생각을 가졌다. 문제는 한정된 자원에 각 서비스별 톰켓을 두 대씩 기동해야 한다는 것이고, 결정적으로 테스트 장비의 메모리가 충분치 않았다.고민을 해오다가 tomcat parallel deployment 기능에 대해서 알게 되었고, Tomcat7 부터 해당 기능을 이용할 수 있다고 하여 바로 적용하게 되었다. 자세한 설명은 https://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment 페이지에.. 2015. 9. 2.
CentOS 5 버전에 Redis 설치 레디스 서버 설치 한번 해보자. 1. redis 소스 다운로드wget http://download.redis.io/releases/redis-2.8.17.tar.gz 2. 압축 풀기tar cvfz redis-2.8.17.tar.gz 3. 압축푼 디렉토리로 이동cd redis-2.8.17 4. 컴파일make 5. src 디렉토리로 이동cd src 6. 서버 기동 (background로 구동하기 위해서 & 추가)$ redis-server & 7. redis 서버 접속$redis-cli 8. hello world 테스트127.0.0.1:6379> set hello "hello world"OK127.0.0.1:6379> get hello"hello world" 2014. 10. 10.
tomcat 기동 후 URI(/)로 자동 호출 tomcat 기동 완료 후 ROOT(/)로 자동 호출되는 현상이 있어 정리한다.ROOT(/)로 호출한다는 의미는 localhost:8080/ 와 같이 호출한다는 의미이다. web.xml 파일에 다음과 같이 error-page 설정을 추가해 줬다.errorDocumentservlet.TestServlet errorDocument/errorHandle 404/errorHandle 500/errorHandle index.jsp TestServlet 코드는 다음과 같다.@Override public void init() throws ServletException { System.out.println("called init!!"); } @Override protected void service(HttpServle.. 2014. 6. 16.
리눅스 PATH또는 export 설정 리눅스에서 ifconfig 명령어를 치면 -bash: ifconfig: command not found 와 같은 메세지가 출력된다.이와 같은 오류 발생 시 ifconfig 파일이 존재하는 디렉토리의 패스를 지정해 줘야 하는데 2가지 방법이 있다. 로그인한 계정의 홈 디렉토리로 이동하여 .bash_profile을 vi 편집기로 다음과 같이 수정하면 된다. 1번째 방법PATH=$PATH:$HOME/bin --> PATH=$PATH:$HOME/bin:/sbin 패스 구분자 : 를 추가해 준 후 ifconfig 명령어가 존재하는 /sbin 디렉토리를 추가해 주면 된다. 2번째 방법export sbin=/sbinexport 명령어를 이용하여 패스를 추가해 줄 때에는 JAVA_HOME 또는 CATALINA_HOME.. 2014. 6. 13.