몽고DB replica 재 설정방법 샘플
- primary에 커맨드 접속
- repl_set이라는 replica에 대해서 가중치를 포함하여 reconfig를 실행함
- 순단 발생하니 주의

-- config 재 정의
config = {
    "_id" : "repl_set",    
    "members" : [
            {
                    "_id" : 0,
                    "host" : "primary서버의 IP입력:27017",
                    "priority" : 3
            },
            {
                    "_id" : 1,
                    "host" : "secondary서버의 IP입력:27017",
                    "priority" : 2
            },
            {
                    "_id" : 2,
                    "host" : "arbiter서버의 IP입력:27017",                    
                    "arbiterOnly" : true
            }
    ]
}


-- re config 실행
rs.reconfig(config,  {force : true} );

-- 잘 저장되는지 테스트
use testdb
db.test_collection.insert({'msg':'test message'})
db.test_collection.find()



-- 참고: 최초 replica 설정일 경우 rs.initiate() 후 셋팅 필요

config = {
    "_id" : "repl_set",    
    "members" : [
            {
                    "_id" : 0,
                    "host" : "primary서버의 IP입력:27017",
                    "priority" : 3
            },
            {
                    "_id" : 1,
                    "host" : "secondary서버의 IP입력:27017",
                    "priority" : 2
            },
            {
                    "_id" : 2,
                    "host" : "arbiter서버의 IP입력:27017",                    
                    "arbiterOnly" : true
            }
    ]
}


rs.initiate(config);


  1. EPEL 저장소 추가
sudo yum install epel-release
sudo yum update

  1. Install Redis
sudo yum install redis

  1. Start Redis
sudo systemctl start redis

#버전확인
redis-cli -v

  1. 재 부팅시 자동으로 시작되도록 처리
sudo systemctl enable redis

#확인
systemctl list-unit-files | grep redis

  1. 추가로 redis conf 튜닝 예
Redis Conf 튜닝 예(sudo vim /etc/redis.conf)

#방화벽으로 관리할 경우라서 편의성 문제로 모든 IP에서 접근 허용
bind 0.0.0.0

#주석처리(메모리 캐쉬로만 사용하기 위해서)
#save 900 1
#save 300 10
#save 60 10000


537라인쯤에 아래 추가
maxmemory 256m


적용 : sudo systemctl restart redis



다른 디렉토리에서 명령어 실행하는 실수를 막고 캡쳐 등을 할때 현재 시간을 알 수 있기 위해서 변경해서 사용

변경 명령어 (sudo로 실행)
sudo su
echo 'PS1="[\u@\h \$PWD \D{%T}]\\$ "' >> /etc/bashrc && source /etc/bashrc


지난주 금요일에 if kakao day 2에 다녀옴


구글에 검색하면 다른분이 잘 정리해주신게 후기 내용의 정리는 pass


인상 깊었던 내용 중 하나가 '쇼핑 쪽 es' 인덱싱하는 부분이 몇년전 내가 만들어둔 커뮤니티 사이트와 거의 동일(당시 es 2.x가 최신이라서 해당 버전으로 사용했지만..)

full index, 증분 index, pk대상, update_at 사용 등등. 사람 생각은 비슷비슷하다는 생각이 들었음

 - https://if.kakao.com/program?sessionId=aea80282-879c-4af8-9e88-86a27c454d4b


P.s. 입구 앞쪽에 쉴 수 있는 공간에 의자(?)가 플라스틱박스로 불편함. 네이버 데뷰처럼 좀 신경썻으면 좋았을것 같음

tda를 이용했었는데 온라인 사이트도 존재함


https://fastthread.io/index.jsp

pinpoint 설치 방법- 1.8.4 버전 설치방법 메모

서비스 일부가 JAVA 11을 사용하게 되어서 Pinpoint 버전업이 필요하게 됨(Pinpoint 1.8.3 부터인가 java 11을 지원함)



유저홈/apps 디렉토리를 기준으로 설치 함

#디렉토리 생성
mkdir ~/apps && cd ~/apps

#다운로드 후 압축 해제, 심볼릭 링크 처리
wget 'https://github.com/naver/pinpoint/archive/1.8.4.tar.gz' && tar -xzf 1.8.4.tar.gz && rm 1.8.4.tar.gz && ln -s pinpoint-1.8.4 pinpoint


#인스톨(JAVA 6,7,8, 9 필요)
cd ~/apps/pinpoint && ./mvnw install -Dmaven.test.skip=true

#참고: JAVA설치
* 아래 wget이 인증 만료로 진행되지 않는다면, 각 다운로드 페이지에 로그인 후 fiddler를 통해 다운로드 URL을 구하면 됨

cd ~/apps

wget 'http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin?AuthParam=1565679254_d8f8f965c05a5c02f7b05dcf12cd591a' -O  ~/apps/jdk-6u45-linux-x64.bin
chmod 755 jdk-6u45-linux-x64.bin && ./jdk-6u45-linux-x64.bin && rm jdk-6u45-linux-x64.bin
ln -s jdk1.6.0_45 jdk_6

wget 'http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1565679323_817db680a1f10b44f3ea966c24fda0fb' -O  ~/apps/jdk-7u80-linux-x64.tar.gz
tar -xzf jdk-7u80-linux-x64.tar.gz && rm jdk-7u80-linux-x64.tar.gz
ln -s jdk1.7.0_80 jdk_7

wget 'http://download.oracle.com/otn/java/jdk/8u221-b11/230deb18db3e4014bb8e3e8324f81b43/jdk-8u221-linux-x64.tar.gz?AuthParam=1565679401_a0a5d03078d4a324b9376891541aae33' -O ~/apps/jdk-8u221-linux-x64.tar.gz
tar -xzf jdk-8u221-linux-x64.tar.gz && rm jdk-8u221-linux-x64.tar.gz && ln -s ~/apps/jdk1.8.0_221 jdk && ln -s ~/apps/jdk1.8.0_221 jdk_8

wget 'http://download.oracle.com/otn/java/jdk/9.0.4+11/c2514751926b4512b076cc82f959763f/jdk-9.0.4_linux-x64_bin.tar.gz?AuthParam=1565679522_413bd7c661de37ea7e7059de455f0b5c' -O ~/apps/jdk-9.0.4_linux-x64_bin.tar.gz
tar -xf jdk-9.0.4_linux-x64_bin.tar.gz  && rm jdk-9.0.4_linux-x64_bin.tar.gz && ln -s ~/apps/jdk-9.0.4 jdk_9


#환경변수 등록
vi ~/.bashrc 후에

export JAVA_HOME=~/apps/jdk
export JAVA_9_HOME=~/apps/jdk_9
export JAVA_8_HOME=~/apps/jdk_8
export JAVA_6_HOME=~/apps/jdk_6
export JAVA_7_HOME=~/apps/jdk_7
export PATH=$JAVA_HOME/bin:$PATH

source ~/.bashrc

#참고 : JAVA DNS TTL Modify
echo 'networkaddress.cache.ttl=60' >> ~/apps/jdk/jre/lib/security/java.security



#참고 : OS 디스크외 AWS EBS를 추가로 마운트해서 데이터를 저장한다면 pinpoint data디렉토리 변경(/data에 EBS 마운트)
cd ~/apps/pinpoint/quickstart && ln -s /data/pinpoint data
sudo su
mkdir /data/pinpoint && chown 유저계정:유저계정 /data/pinpoint



Hbase 설치 및 시작
-- HBase 저장기간을 줄임(1일=86400초로 줄이는데 상황에 따라서 적당한 수치로 조정)
 vi ./quickstart/conf/hbase/init-hbase.txt 후 아래 입력(2일간 데이터 보관)
 :%s/5184000/172800/g

 :%s/5184000/259200/g  <<3일로 설정할 경우

-- Hbase 다운로드 및 시작
./quickstart/bin/start-hbase.sh

-- Hbase 테이블 초기화
./quickstart/bin/init-hbase.sh



Pinpoint 데몬들 설정 후 시작

-- 컬렉터로그 레벨을 조정해서 적게 남기도록 함
vi ./quickstart/collector/src/main/resources/log4j.xml
:%s/DEBUG/INFO/g
:%s/TRACE/INFO/g

-- pinpoint 웹의 로그레벨 조정
vi ./quickstart/web/src/main/resources/log4j.xml
:%s/DEBUG/INFO/g

-- 컬렉터(데이터 수집 프로세스)  시작
./quickstart/bin/start-collector.sh

-- 웹 UI 시작
./quickstart/bin/start-web.sh


agent 수정(해당 agent가 실제 어플리케이션 시작시 사용됨)

agent 홈 경로 : ~/apps/pinpoint/agent/target/pinpoint-agent-버전

cd ~/apps/pinpoint/agent/target/pinpoint-agent-버전

-- agent 로그 조정( 미 조정시 DEBUG레벨로 로그가 남아서 대상 프로그램의 성능 하향이 발생)
vi lib/log4j.xml 후 아래 명령 수행(로그레벨 DEBUG를 INFO로 조정)
:%s/DEBUG/INFO/g

아래내용은 삭제
<appender-ref ref="console" />

-- pinpoint.config파일에서 Collector server의 IP 및 포트 수정


vi ./quickstart/agent/src/main/resources/pinpoint.config
cd ~/apps/pinpoint/agent/target/pinpoint-agent-1.7.0-SNAPSHOT && vi pinpoint.config

-- 어플리케이션 서버로 복사를 위해서 압축해둠(예)
ex) tar -czf pinpoint-agent-1.7.0-SNAPSHOT_171023.tar.gz pinpoint-agent-1.7.0-SNAPSHOT

이후 /home/integtool/apps/pinpoint/quickstart/web/target/deploy 경로에 파일을 복사하면 웹에서 다운로드 가능



이후 APM으로 모니터링하고 싶은 서버에 Agent 복사 후 프로세스 실행시 agent 사용하도록 셋팅
 - 방법은 정리 예정이며 필요시 구글 검색하세요




intelliJ 개발을 위한 기본 셋팅
  •  코드의 실행환경은 리눅스

  1. Line separator(줄바꿈) 변경


  2. UTF-8 셋팅


  3. save actions 설정
    1. Plugin Save Actions 설치 후
    2. 설정


  4. 마우스 오버시 java doc 등 문서를 보이도록 설정
    1. Settings -> Editor -> General -> Other에서 설정

    2. 마우스 오버시 아래처럼 javadoc이 보여짐(다른 사람 코드 읽을 때 편함)





  5. 변경된 소스 별표 표시


  6. 변수 등 선택시 하이라이팅 색상 변경
    1. 코드 읽을때 구분이 쉬움

  7. 기타 : 자주 사용하는 Plugin 리스트








[순서]
  1. Go lang 설치
  2. 환경 설정 확인 및 정상 설치 확인
  3. IntelliJ에 Go lang plug-in 설치 후 코드 실행


  1. Go lang 설치
    1. https://golang.org/dl/ 에서 windows 버전 다운로드
    2. 다운로드가 완료되면 설치 진행

  2. 환경 설정 확인 및 정상 설치 확인
    1. 윈도우 명령 프롬프트 실행 후 go version 실행해서 확인

    2. 만약 go 명령어를 못 찾는다면
      1. 제어판 -> 시스템 -> 시스템 환경 변수 편집 -> 고급 -> 환경 변수 클릭
        1. GOPATH 와 GOROOT 확인 후 없으면 추가

  3. IntelliJ에 Go Plug-in 설치 후 코드 실행
    1. File->settings->Plugins 에서 Go 검색 후 설치 후 재 시작


    2. 간단한 hello world 작성 후 실행


+ Recent posts