꼬반 Blog

[클라우드] 변경된 Naver TTS(CSS) API 사용해보기

이전 포스트에 (http://ifmkl.tistory.com/354) Naver OpenAPI 인 Clova Speech Synthesis API 사용하기를 작성했었습니다. 그런데 오랜만에 들어가보니 해당 API가 NBP(네이버 비즈니스 플랫폼 - 클라우드 서비스)쪽으로 이관되었더군요.. 즉 무료에서 -> 유료가 되었습니다... 다만 네이버 비즈니스 플랫폼의 경우 신규 사용자에겐 30만 크레딧을 제공하므로 이 크레딧 유효 기간동안은 테스트는 해볼수 있을 듯합니다. 변경된 개발 문서는 http://docs.ncloud.com/ko/naveropenapi_v2/naveropenapi-4-2.html 이고 NBP 가입 후 로그인 후 콘솔에서 접속하면 다음 메뉴에서 api 를 신청할 수 있습니다. 어플리케이션 ..

Read More

[MySQL] MySQL Enterprise root user default password

MySQL Enterprise root user default password 회사 서버에 오랜만에 MySQL Enterprise 5.7.20 버전을 설치하게 되었다. 요즘은 MariaDB나 NoSQL 같은 오픈소스 위주로 사용하다 보니. 일단 Oracle 에서 Enterprise 버전을 받는것 부터 좀 버벅 대다가 다운받고 설치는 zip 파일을 풀면 rpm 파일들이 있는데 yum localinstall 명령어로 common -> lib -> devel -> client -> server 순으로 설치해준다. rhel 7 기준으로 systemctl 명령어를 사용할텐데 systemd 데몬이 바로 생성되어 있지 않다. 이를 위해서는 mysqld_pre_systemd 명령어를 실행시켜주면 mysqld 로 sys..

Read More

Nginx, GeoIP, Telegraf, Influxdb, Grafana 연동!

회사에서 사용하고 있는 웹 서비스의 구성은 간단하게 다음과 같다. Nginx (리버스 프록시 서버) --- WAS (각 어플리케이션 서버) --- 백엔드 (DB, 스토리지 등) 여기서 유저는 가장 상단의 Nginx 서버에만 접근이 가능하다. 이러한 구성은 기본적으로 보안이나 관리 등에 용이하다. 그리고 각 서버들의 상태 모니터링 및 로그 수집을 위해 2가지 시스템을 혼용하여 사용하는데 ELK 와 TICK 이 바로 그것이다. ELK는 Elasticsearch, Logstash, Kibana 를 지칭하는데 과거 버전에서 5.x 버전으로 업그레이드를 하면서 이 로그 수집방식이 Logstash-forward 대신에 beat 로 대체 되었다. 그래서 각 단말에 beat가 서버의 로그를 수집하여 Elasticsea..

Read More

[협업개발] Yona

개발을 할때 팀이나 조직에서 사용하기 좋은 오픈소스 https://repo.yona.io/organizations/yona-projects 과거 Yobi가 업그레이드 되었다고 한다. 팀에서 사용하기위해 셋팅해보았다. 추후 사용기를 적어보도록 하겠다.

Read More

[오픈소스] GOQ 구축 (goq: a queuing and job management system fir for the cloud. Written in GO (golang)).

설치 및 구축 프로세스 마스터 노드, 워커 노드 셋팅 VM에 마스터 노드, 워커 노드 2대 생성 후 CentOS 7.2 설치 설치 후 각 서버는 selinux 설정을 permissive 로 변경 워커 노드는 firewalld.service 를 stop 및 disable 시킴 마스터 노드에 eth0, eth1 connection 설정 각 서버 네임서버 셋팅 (210.218.222.100) dhcpd 설치 및 셋팅 (yum 으로 설치 후 아래처럼 dhcpd.conf 수정) option space PXE; option PXE.mtftp-ip code 1 = ip-address; option PXE.mtftp-cport code 2 = unsigned integer 16; option PXE.mtftp-spor..

Read More

[DNS] PowerDNS, PowerDNS-Admin 설치

회사에서 그동안 DNS 서버로 bind 를 사용하고 있었는데.. bind가 그냥 익숙해져서 cli, zone 파일 편집에 어려움은 없었지만. 그래도 이게 또 관리나 부재시 부사수가 하기엔 좀 어려운 부분도 있기때문에 다른 대안을 찾아보기로 했다. 그래서 일단은 PowerDNS 를 설치하고 Web UI를 찾아보니 PowerDNS-Admin 이라는 좋은 오픈소스가 있었다. (bind도 web ui 이것저것 찾아서 설치해봤는데 .. 흠.. 한 2개정도 괜찮은 물건을 찾기도 했지만 기존 zone file을 잘 가져오지 못해서.. 포기) 설치는 최신 4.0.1 소스 설치하다가 안되서 포기하고 epel-release 설치 후 3.4.8 버전으로 설치했다. (우분투/데비안 계열은 최신 repo 에서 4.0.1 지원하..

Read More

[CentOS 7.1] 네이버 오픈소스 APM PINPOINT 설치하기

네이버에서 얼마전 공개한 오픈소스 APM인 PINPOINT 1.5 버전을 설치하여 테스트 하고 있는 중이다. 설치에 대한 블로그와 동영상을 참고하였고, 결국 결론은 Quick Start Guide 가 짱이다.... 설치 순서는 다음과 같다. 1. yum update -y 2. 사전 요구사항 JDK 6 installedJDK 8 installedMaven 3.2.x+ installedJAVA_6_HOME environment variable set to JDK 6 home directory.JAVA_7_HOME environment variable set to JDK 7+ home directory.JAVA_8_HOME environment variable set to JDK 8+ home director..

Read More

[클라우드] 변경된 Naver TTS(CSS) API 사용해보기

이전 포스트에 (http://ifmkl.tistory.com/354) Naver OpenAPI 인 Clova Speech Synthesis API 사용하기를 작성했었습니다.


그런데 오랜만에 들어가보니 해당 API가 NBP(네이버 비즈니스 플랫폼 - 클라우드 서비스)쪽으로 이관되었더군요..


즉 무료에서 -> 유료가 되었습니다...


다만 네이버 비즈니스 플랫폼의 경우 신규 사용자에겐 30만 크레딧을 제공하므로 이 크레딧 유효 기간동안은


테스트는 해볼수 있을 듯합니다.


변경된 개발 문서는 http://docs.ncloud.com/ko/naveropenapi_v2/naveropenapi-4-2.html 이고


NBP 가입 후 로그인 후 콘솔에서 접속하면 다음 메뉴에서 api 를 신청할 수 있습니다.



어플리케이션 등록 -> 클로바에 CSS 체크하여 신청하면 됩니다. 그러면 한도 설정을 할 수 있는데 당일 / 당월 설정이 가능하고 요금은


월 300만자 기준으로 12,000원 (VAT별도) 정도 나옵니다. 


기존의 소스는 동일하고 다만 기존 소스의 


api_uri가 https://openapi.naver.com/v1/voice/tts.bin --> https://naveropenapi.apigw.ntruss.com/voice/v1/tts 으로 변경 되었고

api_key는 신청한 어플리케이션의 client_id / api_secret는 client_secret 으로 사용하면 됩니다.

이후 헤더에 추가하는


 req.Header.Add("X-Naver-Client-Id", client_key)
 req.Header.Add("X-Naver-Client-Secret", client_secret)

는 아래 처럼 변경해줍니다.


 req.Header.Add("X-NCP-APIGW-API-KEY-ID", client_id)
 req.Header.Add("X-NCP-APIGW-API-KEY", client_secret)

그러면 소스를 다시 빌드하여 실행하고 로컬에서 테스트하면


# curl "localhost:3000/tts"

# ls

api api.go out.mp3


으로 잘 실행되는 것을 확인할 수 있습니다.

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[MySQL] MySQL Enterprise root user default password

MySQL Enterprise root user default password


회사 서버에 오랜만에 MySQL Enterprise 5.7.20 버전을 설치하게 되었다. 


요즘은 MariaDB나 NoSQL 같은 오픈소스 위주로 사용하다 보니.


일단 Oracle 에서 Enterprise 버전을 받는것 부터 좀 버벅 대다가 다운받고


설치는 zip 파일을 풀면 rpm 파일들이 있는데


yum localinstall 명령어로 common -> lib -> devel -> client -> server 순으로 설치해준다.


rhel 7 기준으로 systemctl 명령어를 사용할텐데 systemd 데몬이 바로 생성되어 있지 않다.


이를 위해서는 mysqld_pre_systemd 명령어를 실행시켜주면 mysqld 로 systemd 데몬이 생성된다.


이후 systemctl start mysqld 로 데몬을 실행시켜주고


mysql -u root -p 로 기본으로 접속해서 확인하려고 하면?


패스워드가 필요하다!??


보통 community 버전 혹은 오픈소스 MariaDB는 그간 설치후 최초에는 Root 패스워드가


설정되어 있지 않았는데 갑작스러운 상황에 당황.


mysql_secure_installation (기본 보안 설정을 해준다.) 명령어를 사용해도 root 패스워드를 요구하고..


구글신에 검색해본 결과!


https://www.percona.com/blog/2016/05/18/where-is-the-mysql-5-7-root-password/


위 내용을 찾았다. 즉 /var/log/mysqld.log 의 [NOTE] 부분에 최초 실행시 설정되는 임시 패스워드가 


포함되어 있다.


해당 로그에서 임시패스워드를 사용하면 mysql 에 접속이 가능하다.


다만 임시패스워드 상태에서는 접속만 가능하고 다른 작업은 할 수 없기 때문에 


mysql_secure_installation 을 사용하여 기본 보안 설정을 진행하거나 (root 패스워드 변경이 포함되어 있음, 권장)


임시 패스워드를 변경하고 사용하면 된다.


단 패스워드 정책에도 보안등급이 적용되어 너무 단순한 패스워드는 사용할 수 없으니 참고할 것



반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

Nginx, GeoIP, Telegraf, Influxdb, Grafana 연동!

회사에서 사용하고 있는 웹 서비스의 구성은 간단하게 다음과 같다.


Nginx (리버스 프록시 서버) --- WAS (각 어플리케이션 서버) --- 백엔드 (DB, 스토리지 등)


여기서 유저는 가장 상단의 Nginx 서버에만 접근이 가능하다. 이러한 구성은 


기본적으로 보안이나 관리 등에 용이하다.


그리고 각 서버들의 상태 모니터링 및 로그 수집을 위해 2가지 시스템을 혼용하여 사용하는데


ELK 와 TICK 이 바로 그것이다.


ELK는 Elasticsearch, Logstash, Kibana 를 지칭하는데 과거 버전에서 5.x 버전으로 


업그레이드를 하면서 이 로그 수집방식이 Logstash-forward 대신에 beat 로 대체 되었다.


그래서 각 단말에 beat가 서버의 로그를 수집하여 Elasticsearch 로 보내고 저장되며 Kibana를 통해


모니터링 및 대시보드를 통한 Visualize 가 가능하다.


Elasticsearch 와 Kibana 는 Docker와 Docker-composer 를 통해 관리된다. 


TICK 은 Telegraf, Influxdb, Chronograf, Kapacitor를 의미하며 각각 수집, 시계열DB, 모니터링 및 관리, 알람


의 기능을 가지고 있다.


그리고 이 데이터들은 Grafana 라는 Visualize platform 에서 활용이 가능하다.


이번에 한 작업은 다음의 목적을 가지고 진행되었다.


1. 특정 사이트의 접속 로그에 대한 모니터링이 필요

2. 접속 지역에 대한 확인이 가능할 것.

3. Nginx access log 에는 기본 apache log + agent, response time 이 붙은 custom log 이며 접속자의 IP가

   확인이 된다. 이 IP를 IP조회 사이트에서 조회하여 지역이 확인이 가능하나 불편하다.

4. Dashboard 를 통해 바로 확인할 방법이 필요.


그래서 위의 목적을 달성하기 위해 다음과 같은 작업을 진행 하였다.


1. 기존 리버스 프록시 서버인 Nginx 서버에 GeoIP Module 연동

  1.1. nginx-module-geoip 를 설치

  1.2. 설정 파일에 load module 후 테스트 -> 로드 X (버전 문제 nginx geoip version 1013003 

        instead of 1013000, 즉 현재 nginx 는 1.13.0 버전 이고 모듈은 1.13.3 버전

  1.2. 기존 사용하던 1.13.0 버전을 1.13.3 버전으로 재컴파일 (rpm, yum 버전 등 build 버전은 사용하지 않음

        http2 지원등을 위해 직접 소스 컴파일, 라이브 서버에 적용 전 VM에 테스트 후 진행)

  1.3. 1.13.3 버전 설치 후 모듈 연동 테스트 -> 성공

  1.4. access log 형식에 geoip_city, geoip_region, geoip_country_code, geoip_country_code2 추가 후 확인 완료


2. Telegraf 수집 형식 변경

  2.1. 기존 logparse 에 grok matching 을 위해 필드 추가 적용 (country_code 는 2개 추가한 이유가 하나는 tag로

       지정하기 위함.)

  2.2. influxdb 에서 수집된 field, tag 에 반영 확인


3. Grafana 연동

  3.1. Grafana World Map Plugin 설치

  3.2. https://github.com/grafana/worldmap-panelhttps://github.com/grafana/worldmap-panel/issues/30

       참고하여 설정 진행

  3.3. World-Map 연동 확인




총평. 진행된 내용만 간략히 적었지만 사실 각 작업간에 많은 시행착오가 있었다. 물논 그런 시행착오가 없을 순

       없다. 각 작업 내용은 다시 한번 정리해서 추후 포스팅 해야겠다.

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[협업개발] Yona

개발을 할때 팀이나 조직에서 사용하기 좋은 오픈소스


https://repo.yona.io/organizations/yona-projects


과거 Yobi가 업그레이드 되었다고 한다.


팀에서 사용하기위해 셋팅해보았다.


추후 사용기를 적어보도록 하겠다.


반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[오픈소스] GOQ 구축 (goq: a queuing and job management system fir for the cloud. Written in GO (golang)).

설치 및 구축 프로세스

마스터 노드, 워커 노드 셋팅

VM에 마스터 노드, 워커 노드 2대 생성 후 CentOS 7.2 설치

설치 후 각 서버는 selinux 설정을 permissive 로 변경

워커 노드는 firewalld.service 를 stop 및 disable 시킴

마스터 노드에 eth0, eth1 connection 설정

각 서버 네임서버 셋팅 (210.218.222.100)

dhcpd 설치 및 셋팅 (yum 으로 설치 후 아래처럼 dhcpd.conf 수정)

option space PXE;
option PXE.mtftp-ip    code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option arch code 93 = unsigned integer 16; # RFC4578

subnet 10.10.10.0 netmask 255.255.255.0 {
    option routers 10.10.10.10;
    range dynamic-bootp 10.10.10.200 10.10.10.250;
    allow booting;
    allow bootp;
    next-server 10.10.10.10;
    filename "pxelinux.0";
}
:wq!
# systemctl enable dhcpd
# systemctl start dhcpd

방화벽 설정

1. 마스커레이드 설정

2. 마스터서버와 워커노드가 통신을 하기위해 해당 대역에 대한 룰 설정

# firewall-cmd --permanent --add-masquerade
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.10.10.0/24" accept'
# firewall-cmd --reload
  • 워커 노드에 접속해서 네트워크 설정 상태 확인 (마스터 및 다른 노드와 통신이 되는지 확인, nslookup으로 외부 인터넷과 연결이 되는지 확인)
  • 각 서버 OS 최신 패치 yum update

GO 설치

  • Go는 https://golang.org/dl/ 에서 작성일 기준 1.6.2 버전 다운 (동작 확인)
  • /share/apps/ 폴더에 다운 및 압축 해제 (미리 빌드된 버전 사용)
  • 사용자 환경설정에 GOROOT, GOPATH 설정 (root 기준)
vim ~/.bashrc
export GOROOT=/share/apps/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/share/workspace
export PATH=$PATH:$GOPATH/bin
export GOQ_HOME=/root
추가 후
:wq!
# go version
go version go1.6.2 linux/amd64
  • GOPATH는 워크스페이스 개념
  • GOQ_HOME은 goq init 시 환경 파일이 저장될 위치

goq 설치

github src : https://github.com/glycerine/goq

# go get -t -u github.com/glycerine/mangos/compat
# go get -u -t github.com/glycerine/goq
# cd $GOPATH/src/github.com/glycerine/goq; make; go test -v
  • 3번째 단계에서 goq/vendor/github.com 안에 보면 go-mangos 폴더이름을 gdamore 로 변경
  • 이유는 goq 내 소스에서 해당 mangos 패키지를 참조하는데 github.com/gdamore/mangos 로 되어 있음. (아마도 기존 경로로 보임, 현재 mangos 는 github.com/go-mangos/mangos 로 변경되어 있음)
  • 소스 내 참조를 모두 변경하기 어려우니 해당 폴더명만 변경 후 make 하면 에러가 나지 않고 build 가 완료 됨.
  • 이후 각 서버 별로 테스트 확인

마스터, 워커 설정

  • 먼저 마스터에서 설정
# goq init
  • 이후 GOQ_HOME 에 .goq 폴더 생성 됨. 이 안에 key와 환경파일이 생성.
# cd $GOQ_HOME
# vim serverloc
  • 서버 IP 셋팅 (디폴트는 eth0 ip 를 사용하므로 마스터, 워커가 사용하는 대역으로 변경)
export GOQ_JSERV_IP=10.10.10.10
:wq!
  • 다른 옵션은 디폴트 사용
  • 위 작업 완료 후 마스터의 .goc 폴더를 각 워커 GOQ_HOME에 복사
마스터
$ cd $GOQ_HOME
$ goq init     # only needed once.
$ nohup goq serve &   # start the central server

워커
$ ssh computenode
$ for i in $(seq 1 $(cat /proc/cpuinfo |grep processor|wc -l)); do 
  /usr/bin/nohup goq work forever & done

잡 서밋
$ cd somewhere/where/the/job/wants/to/start
# start by doing 'goq sub' on the same machine 
# that 'goq serve' was launched on. Just to learn the system.
$ goq sub ./myjobscript  

테스트
마스터에서 확인 
root      4060  2959  0 14:33 pts/0    00:00:00 goq serve

워커 1
root     12153 11924  0 14:36 pts/0    00:00:00 goq work forever
root     12154 11924  0 14:36 pts/0    00:00:00 goq work forever

워커 2
root     12215 12004  0 14:36 pts/0    00:00:00 goq work forever
root     12216 12004  0 14:36 pts/0    00:00:00 goq work forever

테스트 잡 서밋
[root@goq .goq]# goq sub /share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh
[pid 5655] submitted job 5 to server at 'tcp://10.10.10.10:1776'.
[root@goq .goq]# goq stat
[pid 5661] stats for job server 'tcp://10.10.10.10:1776':
runQlen=1
waitingJobs=0
waitingWorkers=3
jservPid=4060
finishedJobsCount=3
droppedBadSigCount=0
cancelledJobCount=0
nextJobId=6
jservIP=10.10.10.10
jservPort=1776
badNonceCount=0
maxShow=10
runq 000000   runtime: < 1 heartbeat RunningJob[jid 5] = '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh '   on worker 'tcp://10.10.10.201:39504'/pid:0. Lastping: none.   
finished: [jid 1] total-time: 20.006763604s. done: 2016-06-21 14:14:45.162962843 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://192.168.150.73:46641'/pid:3531.  . Err: ''
finished: [jid 3] total-time: 145.624801ms. done: 2016-06-21 14:37:12.110080928 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/good.sh []' finished on worker 'tcp://10.10.10.200:45736'/pid:12168.  . Err: ''
finished: [jid 4] total-time: 20.019386787s. done: 2016-06-21 14:38:33.327349501 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://10.10.10.200:43298'/pid:12172.  . Err: ''
--- goq security status---
summary-bad-signature-msgs: 0
summary-bad-nonce-msg: 0
--- goq progress status ---
summary-jobs-running: 1
summary-jobs-waiting: 0
summary-known-jobs: 1
summary-workers-waiting: 3
summary-cancelled-jobs: 0
summary-jobs-finished: 3
--- goq end status at time: 2016-06-21 15:44:40.540185547 +0900 KST ---
[root@goq .goq]# goq stat
[pid 5667] stats for job server 'tcp://10.10.10.10:1776':
runQlen=0
waitingJobs=0
waitingWorkers=4
jservPid=4060
finishedJobsCount=4
droppedBadSigCount=0
cancelledJobCount=0
nextJobId=6
jservIP=10.10.10.10
jservPort=1776
badNonceCount=0
maxShow=10
finished: [jid 1] total-time: 20.006763604s. done: 2016-06-21 14:14:45.162962843 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://192.168.150.73:46641'/pid:3531.  . Err: ''
finished: [jid 3] total-time: 145.624801ms. done: 2016-06-21 14:37:12.110080928 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/good.sh []' finished on worker 'tcp://10.10.10.200:45736'/pid:12168.  . Err: ''
finished: [jid 4] total-time: 20.019386787s. done: 2016-06-21 14:38:33.327349501 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://10.10.10.200:43298'/pid:12172.  . Err: ''
finished: [jid 5] total-time: 20.031627872s. done: 2016-06-21 15:44:58.280047843 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://10.10.10.201:39504'/pid:12970.  . Err: ''
--- goq security status---
summary-bad-signature-msgs: 0
summary-bad-nonce-msg: 0
--- goq progress status ---
summary-jobs-running: 0
summary-jobs-waiting: 0
summary-known-jobs: 0
summary-workers-waiting: 4
summary-cancelled-jobs: 0
summary-jobs-finished: 4
--- goq end status at time: 2016-06-21 15:45:00.384001311 +0900 KST ---
  • 해당 잡 스크립트
#!/bin/bash
echo "sleep.sh begins sleeping for 20 seconds"
sleep 20
echo "sleep.sh done"

워커 2번에서 실행이 된걸 확인할 수 있음.

결과
/root/.goq/o
out.00005 # jid

sleep.sh begins sleeping for 20 seconds
sleep.sh done
  • nfs 공유폴더 설정 및 hpl 벤치를 위한 설정
** 마스터 서버
# vim /etc/exports
/BiO 10.10.10.0/24(rw,sync,no_root_squash)

# systemctl start rpcbind
# systemctl start nfs-server
# systemctl start nfs-idmap
# systemctl start nfs-lock
# systemctl enable nfs-server

** 노드
# showmount -e 10.10.10.10
# mount -t nfs 10.10.10.10:/BiO /BiO

# vim /etc/fstab
10.10.10.10:/BiO /BiO defaults 0 0

** hpl 벤치 준비 (failed...)
** ATLAS 설치 및 install
** hpl 은 추후 다시 설치 시도...
  • 테스트
  • /BiO/test
  • 1 ~ 9 데이터셋
  • run.sh - 1번부터 9번을 읽어서 그 내용을 result 에 저장, 단 5초 대기 시간 있음
#!/bin/bash
echo "sleep 5"
sleep 5
cat $1 >> result
cat $1
  • job.sh - 단순한 반복문으로 실행. 각 파일마다 5초 딜레이 걸리므로 45초 후 작업이 완료
#!/bin/bash
for i in $(seq 1 9); do 
  ./run.sh $i
done
  • job2.sh - 해당 잡을 goq 로 서밋시킴. 이때 4개의 워커가 서밋된 잡을 실행. 즉 한번에 4개씩 처리. 15초에 작업 완료
#!/bin/bash
for i in $(seq 1 9); do 
  goq sub ./run.sh $i
done

[root@goq test]# goq stat
[pid 8221] stats for job server 'tcp://10.10.10.10:1776':
runQlen=0
waitingJobs=0
waitingWorkers=4
jservPid=6641
finishedJobsCount=22
droppedBadSigCount=0
cancelledJobCount=0
nextJobId=24
jservIP=10.10.10.10
jservPort=1776
badNonceCount=0
maxShow=10
finished: [jid 14] total-time: 5.006814286s. done: 2016-06-22 16:46:53.858905226 +0900 KST. cmd: './run.sh [9]' finished on worker 'tcp://10.10.10.200:38134'/pid:9547.  . Err: ''
finished: [jid 15] total-time: 5.009640992s. done: 2016-06-22 16:52:28.8312227 +0900 KST. cmd: './run.sh [1]' finished on worker 'tcp://10.10.10.200:52480'/pid:9678.  . Err: ''
finished: [jid 16] total-time: 5.009856439s. done: 2016-06-22 16:52:28.822657713 +0900 KST. cmd: './run.sh [2]' finished on worker 'tcp://10.10.10.201:54694'/pid:9931.  . Err: ''
finished: [jid 17] total-time: 5.014137871s. done: 2016-06-22 16:52:28.827363219 +0900 KST. cmd: './run.sh [3]' finished on worker 'tcp://10.10.10.201:54228'/pid:9933.  . Err: ''
finished: [jid 18] total-time: 5.005063449s. done: 2016-06-22 16:52:28.866128228 +0900 KST. cmd: './run.sh [4]' finished on worker 'tcp://10.10.10.200:38134'/pid:9681.  . Err: ''
finished: [jid 19] total-time: 5.007172282s. done: 2016-06-22 16:52:33.867240633 +0900 KST. cmd: './run.sh [5]' finished on worker 'tcp://10.10.10.200:52480'/pid:9686.  . Err: ''
finished: [jid 20] total-time: 5.014624321s. done: 2016-06-22 16:52:33.858707659 +0900 KST. cmd: './run.sh [6]' finished on worker 'tcp://10.10.10.201:54694'/pid:9941.  . Err: ''
finished: [jid 21] total-time: 5.015421181s. done: 2016-06-22 16:52:33.863655635 +0900 KST. cmd: './run.sh [7]' finished on worker 'tcp://10.10.10.201:54228'/pid:9942.  . Err: ''
finished: [jid 22] total-time: 5.011072741s. done: 2016-06-22 16:52:33.896002578 +0900 KST. cmd: './run.sh [8]' finished on worker 'tcp://10.10.10.200:38134'/pid:9691.  . Err: ''
finished: [jid 23] total-time: 5.002196052s. done: 2016-06-22 16:52:38.898022316 +0900 KST. cmd: './run.sh [9]' finished on worker 'tcp://10.10.10.200:52480'/pid:9696.  . Err: ''
--- goq security status---
summary-bad-signature-msgs: 0
summary-bad-nonce-msg: 0
--- goq progress status ---
summary-jobs-running: 0
summary-jobs-waiting: 0
summary-known-jobs: 0
summary-workers-waiting: 4
summary-cancelled-jobs: 0
summary-jobs-finished: 22
--- goq end status at time: 2016-06-22 17:43:52.258494225 +0900 KST ---
[root@goq test]#

이후 진행 방안

  • bwa 테스트 완료
  • 18개 fasta 파일 bwa 테스트 진행
run.sh (/BiO/bwa_data/)
#!/bin/bash
for i in *.fasta
do
    #echo $i
    goq sub /BiO/apps/bwa-0.7.15/bwa index $i
done

[root@goq bwa_data]# goq stat
[pid 5300] stats for job server 'tcp://10.10.10.10:1776':
runQlen=0
waitingJobs=0
waitingWorkers=4
jservPid=6641
finishedJobsCount=77
droppedBadSigCount=0
cancelledJobCount=0
nextJobId=79
jservIP=10.10.10.10
jservPort=1776
badNonceCount=0
maxShow=10
finished: [jid 70] total-time: 25.652276979s. done: 2016-06-24 11:26:47.437507654 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-3R-chromosome-r5.37.fasta]' finished on worker 'tcp://10.10.10.201:54228'/pid:25409.  . Err: ''
finished: [jid 72] total-time: 2m57.995945527s. done: 2016-06-24 11:29:38.320234035 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-all-chromosome-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:52480'/pid:25095.  . Err: ''
finished: [jid 67] total-time: 5m20.065814901s. done: 2016-06-24 11:31:20.588482645 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-2R-aligned-r5.37.fasta]' finished on worker 'tcp://10.10.10.201:54694'/pid:25399.  . Err: ''
finished: [jid 74] total-time: 2m32.706963928s. done: 2016-06-24 11:32:11.06134462 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-all-gene_extended2000-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:52480'/pid:25125.  . Err: ''
finished: [jid 76] total-time: 5.257377818s. done: 2016-06-24 11:32:16.329604209 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-U-chromosome-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:52480'/pid:25209.  . Err: ''
finished: [jid 69] total-time: 6m56.254709913s. done: 2016-06-24 11:33:07.201563569 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-3R-aligned-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:38134'/pid:25088.  . Err: ''
finished: [jid 78] total-time: 14.240585455s. done: 2016-06-24 11:33:21.461607565 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-X-chromosome-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:38134'/pid:25214.  . Err: ''
finished: [jid 77] total-time: 4m4.989334558s. done: 2016-06-24 11:36:21.328854204 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-X-aligned-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:52480'/pid:25211.  . Err: ''
finished: [jid 75] total-time: 6m35.538950491s. done: 2016-06-24 11:37:56.176649363 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-all-predicted-r5.37.fasta]' finished on worker 'tcp://10.10.10.201:54694'/pid:25542.  . Err: ''
finished: [jid 73] total-time: 11m17.50777801s. done: 2016-06-24 11:38:04.953963217 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-all-clones-r5.37.fasta]' finished on worker 'tcp://10.10.10.201:54228'/pid:25415.  . Err: ''
--- goq security status---
summary-bad-signature-msgs: 0
summary-bad-nonce-msg: 0
--- goq progress status ---
summary-jobs-running: 0
summary-jobs-waiting: 0
summary-known-jobs: 0
summary-workers-waiting: 4
summary-cancelled-jobs: 0
summary-jobs-finished: 77
--- goq end status at time: 2016-06-24 13:19:11.903386522 +0900 KST ---
[root@goq bwa_data]#
반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[DNS] PowerDNS, PowerDNS-Admin 설치

회사에서 그동안 DNS 서버로 bind 를 사용하고 있었는데..


bind가 그냥 익숙해져서 cli, zone 파일 편집에 어려움은 없었지만.


그래도 이게 또 관리나 부재시 부사수가 하기엔 좀 어려운 부분도 있기때문에 다른 대안을 찾아보기로 했다.


그래서 일단은 PowerDNS 를 설치하고 Web UI를 찾아보니 PowerDNS-Admin 이라는 좋은 오픈소스가 있었다.



(bind도 web ui 이것저것 찾아서 설치해봤는데 .. 흠.. 한 2개정도 괜찮은 물건을 찾기도 했지만


기존 zone file을 잘 가져오지 못해서.. 포기)


설치는 최신 4.0.1 소스 설치하다가 안되서 포기하고 epel-release 설치 후 3.4.8 버전으로 설치했다.


(우분투/데비안 계열은 최신 repo 에서 4.0.1 지원하던데 ㅠㅠ)


설치는 공식 문서를 따라서 설치


https://doc.powerdns.com/3/authoritative/installation/


이후 web ui 는 아래 참조


https://github.com/ngoduykhanh/PowerDNS-Admin


https://linuxse.co/2015/12/powerdns-admin-web-ui-install-manage-powerdns-server/


설정을 이리 저리 맞춰보고 웹에서 정상적으로 동작 확인!


다만 환경 차이인지 ui 가 가끔 죽는데 이땐 그냥 다시 올리면 된다. 음.. 오픈소스니까


내가 써보지 않은 python, flask 환경에서 돌아가는거라.. 그냥 다시 올린다 ㅎㅎ


깔끔하니 참 좋다.


다만 기존 bind 에서 사용하는 zone file 마이그레이션 방법이 있긴 한데.. 워낙 많아서 실제 사용되는 것만


옮겨줄까 생각중이다.


그리고 auth 외 recusion 으로 사용하려면 pdns-recursion 버전도 설치해야 한다.


http://toofasttosee.blogspot.kr/2012/08/powerdns.html



반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[CentOS 7.1] 네이버 오픈소스 APM PINPOINT 설치하기

네이버에서 얼마전 공개한 오픈소스 APM인 PINPOINT 1.5 버전을 설치하여 테스트 하고 있는 중이다.


설치에 대한 블로그와 동영상을 참고하였고, 결국 결론은 Quick Start Guide 가 짱이다....


설치 순서는 다음과 같다.


1. yum update -y


2. 사전 요구사항

  • JDK 6 installed
  • JDK 8 installed
  • Maven 3.2.x+ installed
  • JAVA_6_HOME environment variable set to JDK 6 home directory.
  • JAVA_7_HOME environment variable set to JDK 7+ home directory.
  • JAVA_8_HOME environment variable set to JDK 8+ home directory.

  2.1. 각각의 항목은 오라클 자바에서 다운받아 특정 폴더에 설치한다.


  2.2. /usr/local/src 경로에 설치하였다고 할때 환경변수 설치는 아래와 같다.


  2.3. 1.0 대 버전에는 JAVA_8 미지원하였으나 1.5로 업데이트 되면서 JAVA_8 이 추가 되었다.


  2.4. 메이븐은 3.3.3 버전을 사용


# vim~/.bash_profile


export JAVA_HOME=/usr/local/src/jdk1.7.0_80

export JAVA_6_HOME=/usr/local/src/jdk1.6.0_45

export JAVA_7_HOME=/usr/local/src/jdk1.7.0_80

export JAVA_8_HOME=/usr/local/src/jdk1.8.0_60

PATH=$PATH:$HOME/bin

PATH=$PATH:$JAVA_HOME/bin

PATH=$PATH:/usr/local/src/maven/bin


# source ~/.bash_profile

3. pinpoint 설치

  

  3.1. git 으로 pinpoint download 해준다.

  # git clone https://github.com/naver/pinpoint.git


  3.2. 해당 폴더로 이동하여 빌드하여 준다.

  # cd pinpoint

  # mvn install -Dmaven.test.skip=true


  3.3. hbase 설치하기

  빌드한 pinpoint 폴더에 들어가보면 quickstart/bin 폴더가 있고 해당 폴더내에 hbase를 설치하는 스크립트가 있다.

  설치후에는 init-hbase 로 초기 db와 table 을 설정하여 준다.

  # ./quickstart/bin/start-hbase.sh

  # ./quickstart/bin/init-hbase.sh


4. pinpoint 실행

  

  4.1. Collector - # ./quickstart/bin/start-collector.sh


  4.2. Web UI - # ./quickstart/bin/start-web.sh


  4.3. TestApp - # ./quickstart/bin/start-testapp.sh


5. 확인


  5.1. Web UI - http://localhost:28080


  5.2. TestApp - http://localhost:28081


6. 정지


  6.1. Hbase - # ./quickstart/bin/stop-hbase.sh


  6.2. Collector - # ./quickstart/bin/stop-collector.sh


  6.3. Web UI - # ./quickstart/bin/stop-web.sh


  6.4. TestApp - # ./quickstart/bin/stop-testapp.sh


7. 참고

  

  7.1. 공식 quick start guide - https://github.com/naver/pinpoint/blob/master/quickstart/README.md

  

  7.2. 허광남 님의 유투브 동영상 - 1편 https://www.youtube.com/watch?v=xipAXrm4vEI

                                       2편 https://www.youtube.com/watch?v=_IZkQG2kaTI

                                       3편 https://www.youtube.com/watch?v=lGiOCHwr4os


8. agent 설정

  리눅스 환경에서 Tomcat의 실행스크립트에 다음과 깉이 셋팅합니다.

 

  export AGENT_PATH={Pinpoint Agent 경로}
  export CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-1.5.0-SNAPSHOT.jar"
  export CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=agentId_01"
  export CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=agentId_01_Name"

agentID 와 applicationName 은 유일한 값입니다. 그리고 해당 경로에 pinpoint.config 파일에 collector Server ip를 수정합니다. 추가로 포트 번호가 default 는 9994 / 9995 / 9996 으로 되어 있는데 1.5.0 버전엔 29994 / 29995 / 29996 이므로 해당 포트 번호로 수정하고 톰캣을 실행시켜주면 설정은 끝입니다.

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post