꼬반 Blog

[VNC] TigerVNC 사용 중 키보드, 마우스 잠금 현상

리눅스 서버에 TigerVNC Server 셋팅 후 VNC Viewer 로 GUI 작업이 필요한 경우 사용하곤 하는데 분명 처음엔 잘 키보드, 마우스도 되던 연결이 시간이 지나 잠기는 현상이 나타났다. 이 경우 여러 방법을 취해보았지만 제일 간단하게 해결하는 것은 /사용자폴더/.vnc 안에 내용들을 모두 삭제하고 다시한번 vncserver를 실행하면 최초 실행 시 처럼 접속을 위한 패스워드를 입력하라고 나오고 view-only를 사용하지 않음으로 다시 설정하여 주면 키보드,마우스가 다시 잘 사용이 된다.

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 를 신청할 수 있습니다. 어플리케이션 ..

Read More

[클라우드] 네이버 클라우드 플랫폼 사용해보기

네이버 클라우드 플랫폼 사용해보기 신규 가입자에게 30만 크레딧을 제공하고 있고 HDD - Micro Type 서버는 1년 무료 사용이 가능하다 가입 후 결제 수단을 등록하면 30만 크레딧을 받을 수 있다. 서버 생성 후 간단한 어플리케이션 올려서 테스트 해봐야 겠다. 전에 테스트 했었던 Clova 음성 합성을 웹에서 선택해서 테스트 할수 있게 Vue로 화면 만들고 Golang 으로 백엔드 해서 api 연동시켜서 올려둘 예정.

Read More

[클라우드] NHN TOAST Cloud 체험해보기 (수정)

과거와는 다르게 국내에도 클라우드 서비스가 빠르게 보급되고 있다. 예전에 외국의 vultr 호스팅에 대한 포스트를 작성한 적이 있는데 이번에 TOAST Cloud 에서 신규 가입 고객에게 20만 Credit 을 주는 이벤트를 진행하고 있어 가입 후 테스트 해보았다. 이 글은 간략하게만 작성한 소감정도고 자세한 리뷰는 추후 작성하는 걸로... 사실 TOAST 는 네이버에서 게임 플랫폼쪽을 담당하는 걸로 알고 있었는데 추가 : NHN Ent 쪽과 Naver 는 별개란걸 알게되었음. (크루세이더 퀘스트라는 게임으로 TOAST를 알게되었었던... 춘향, 몽룡때 현질하고 뽑고 이후 접었..) 잡설은 그만하고 일단 가입 후 https://toast.com/pricing#event 페이지를 보면 결제수단을 등록 하고..

Read More

[CentOS] 다수의 파일명을 한번에 변경하기

다수의 파일의 이름을 한번에 변경할 일이 있어 찾아보니 rename 이라는 명령어가 있어 사용하였다. 기본적인 사용법은 다른 페이지나 man 페이지에 잘 나와있으므로 특수한 경우를 위해 작성함. 1. 사용 목적 : 파일명의 공백, ( ) 괄호 표시들을 제거하기 위해2. 파일명 예시 : xxx_ (1).ddd (xxx는 파일명 .ddd는 확장자)3. 사용방법 3.1. 파일명_ 뒤에 공백과 ( 제거 : # rename _\ \( _ *.ddd -> xxx_1).ddd 형태로 일괄 변경 됨 (\는 역슬래쉬 공백과 괄호는 쉘에서 역슬래쉬 뒤에 위치시켜야 사용 가능) 3.2. 확장자 앞 ) 제거 : # rename \). . *.ddd -> xxx_1.ddd 로 변경됨

Read More

[CentOS 7] Network Tip

route를 확인하기 위해 route 명령어를 입력했는데 없다?? -> ip route default route 설정 (2개 이상 nic 카드가 있을때 두개 모두 게이트웨이 설정이 된 경우) eth0(main), eth1(second) 일때 ifcfg-eth0 설정 파일에 -> DEFROUTE=yes 를 추가

Read More

[ELK] ELK를 활용한 웹 로그 모니터링 시스템 - 1

회사에서 웹 서버의 로그 수집 및 분석을 위해 2015년 말 부터 ELK Stack과 TICK+Grafana Stack으로 웹 서버 및 주요 서버, 서비스의 로그 수집 및 대시보드를 통한 모니터링을 활용해 왔다. 다만 ELK는 당시에는 버전이 낮았고 성능이나 사용적인 부분에서 InfluxDB 보다 불편함을 느껴 지금까지 주로 TICK을 사용해왔다. ELK는 1.X에서 2.X로, 그리고 5.X로 마이그레이션을 하며 사용은 했었지만 제대로 활용하진 않았다. 얼마전 Elastic Tour 2017 Seoul 에 참석하여 6.X ELK를 보니 다시 한번 제대로 사용해보자는 생각이 들어 처음부터 새로 구축하기로 하였다. 이 글은 간단한 설치 및 구성과 logstash, filebeat 를 통한 로그 수집, 필터 ..

Read More

Nginx, GeoIP, Grok Pattern, InfluxDB, Telegraf, WroldMap, Grafana 연동 삽질기

각 서비스의 접속 지역을 확인하기 위해 Nginx 를 1.13.3 으로 소스 재컴파일을 하였고 GeoIP Module 을 설치하였으며 (이와중에 dependancy 로 설치된 nginx 때문에 소스 컴파일 한 nginx 가 영향을 받아 스크립트가 정상동작 하지 않는 부분이 발생.. 하여 system service daemon 을 수정하여 정상 동작 확보 - bin 파일을 rpm 의 nginx 가 아닌 source build 된 nginx 로 실행 위치 변경) 이후 grafana 에 world map plugin 을 설치하고 지도에 표시하느라 쿼리와 telegraf, influxdb 에 nginx log 넣느라 삽질 삽질 하다가 어 됬다! 하고 좋아했다. (지난번 포스트) 그런데 몇일 후 보니.. 다시 정..

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

[NGINX] 보안 설정 관련

header cache controlhttps://www.joinc.co.kr/w/man/12/nginx/static header HSTS (HTTP Strict Transport Security) Confighttps://www.nginx.com/blog/http-strict-transport-security-hsts-and-nginx/

Read More

[VNC] TigerVNC 사용 중 키보드, 마우스 잠금 현상

리눅스 서버에 TigerVNC Server 셋팅 후 VNC Viewer 로 GUI 작업이 필요한 경우 사용하곤 하는데

 

분명 처음엔 잘 키보드, 마우스도 되던 연결이 시간이 지나 잠기는 현상이 나타났다.

 

이 경우 여러 방법을 취해보았지만 제일 간단하게 해결하는 것은

 

/사용자폴더/.vnc 

 

안에 내용들을 모두 삭제하고 다시한번 vncserver를 실행하면 

 

최초 실행 시 처럼 접속을 위한 패스워드를 입력하라고 나오고

 

 view-only를 사용하지 않음으로 다시 설정하여 주면 키보드,마우스가 다시 잘 사용이 된다.

 

반응형

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

[클라우드] 변경된 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

[클라우드] 네이버 클라우드 플랫폼 사용해보기

네이버 클라우드 플랫폼 사용해보기


신규 가입자에게 30만 크레딧을 제공하고 있고


HDD - Micro Type 서버는 1년 무료 사용이 가능하다


가입 후 결제 수단을 등록하면 30만 크레딧을 받을 수 있다.


서버 생성 후 간단한 어플리케이션 올려서 테스트 해봐야 겠다.


전에 테스트 했었던 Clova 음성 합성을 웹에서 선택해서 테스트 할수 있게


Vue로 화면 만들고 Golang 으로 백엔드 해서 api 연동시켜서 올려둘 예정.



반응형

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

[클라우드] NHN TOAST Cloud 체험해보기 (수정)

과거와는 다르게 국내에도 클라우드 서비스가 빠르게 보급되고 있다.


예전에 외국의 vultr 호스팅에 대한 포스트를 작성한 적이 있는데 이번에 


TOAST Cloud 에서 신규 가입 고객에게 20만 Credit 을 주는 이벤트를 진행하고 있어


가입 후 테스트 해보았다.


이 글은 간략하게만 작성한 소감정도고 자세한 리뷰는 추후 작성하는 걸로...


사실 TOAST 는 네이버에서 게임 플랫폼쪽을 담당하는 걸로 알고 있었는데


추가 : NHN Ent 쪽과 Naver 는 별개란걸 알게되었음.


(크루세이더 퀘스트라는 게임으로 TOAST를 알게되었었던... 춘향, 몽룡때 현질하고 뽑고 이후 접었..)


잡설은 그만하고 일단 가입 후 https://toast.com/pricing#event 페이지를 보면 결제수단을 등록 하고


크레딧을 받을수 있게 되어 있다. (이 링크로 들어간다고 추가 혜택이나 나에게 돌아오는 건 없다!)


20만 크레딧을 주는 조건은 2018년 2월 22일 이전에 가입한적이 없는 신규 회원 이어야 한다.


이후 가입하고 TOAST Console 을 통해서 사용을 하는데 사용 측면에서는 약간 불편함이 있다.


어떻게 보면 세분화되고 전문적이라고 볼순 있는데 편하지는 않은 느낌..


u2.small flavor로 생성 후 (flavor로 템플릿을 지원하는데 openstack 기반인가.. 아니면 그냥 명칭이


다 똑같나..) floating ip 도 하나 생성 후 생성한 instance에 연결해준다.


그리고 중요한건 instance 를 생성할때 SSH Key 생성을 하는데 내가 못찾은 걸 수 있지만..


생성할때 그때 다운 받아둬야 한다. 이후엔 받는데를 못찾았...


다 생성된 instance 에 연결한 floating ip 로 접속을 하려면 생성한 key 로 접속을 해야 하는데


리눅스에 올리고 테스트 해보니 .pem 파일에 권한을 체크한다.


그래서 소유자 외 그룹, other 권한이 있으면 denied 하므로 권한을 600 등 소유자 권한으로만 설정 해야한다.


ssh -i <pem파일> root@<floating ip>


로 연결하면 바로 접속이 잘 된다.


간단하게 사용해보니 아무래도 국내 리전이어서 과거 vultr보다는 조오금 빠른 느낌은 든다.


비용은 비슷하거나 약간 저렴한거 같은데.. vultr 을 해지한지 좀 되어서 정확하게 기억은 안나고


현재 u2.small 은 2cpu / 2GB ram / 50GB storage / 1 floating ip 를 사용하는데 한달에 2만원 정도 되는듯 하다.


즉 기본으로 지급받는 20만 크레딧으로 10개월 정도 체험해볼 수 있다는 것. 


물론 테스트해보는 사양에 따라 크레딧 소모는 각기 다를 수 있고


크레딧이 모두 소모되거나 부족한 경우는 등록한 결제수단으로 자동으로 결제되니 주의해야 한다.


일단 이벤트 크레딧으로 한동안 재밌게 테스트 해볼수 있을 거 같다.




반응형

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] 다수의 파일명을 한번에 변경하기

다수의 파일의 이름을 한번에 변경할 일이 있어 찾아보니 rename 이라는 명령어가 있어 사용하였다.


기본적인 사용법은 다른 페이지나 man 페이지에 잘 나와있으므로 특수한 경우를 위해 작성함.


1. 사용 목적 : 파일명의 공백, ( ) 괄호 표시들을 제거하기 위해

2. 파일명 예시 : xxx_ (1).ddd (xxx는 파일명 .ddd는 확장자)

3. 사용방법

  3.1. 파일명_ 뒤에 공백과 ( 제거 : # rename _\ \(  _ *.ddd -> xxx_1).ddd 형태로 일괄 변경 됨 (\는 역슬래쉬 공백과 괄호는 쉘에서 역슬래쉬 뒤에 위치시켜야 사용 가능)

  3.2. 확장자 앞 ) 제거 : # rename \). . *.ddd -> xxx_1.ddd 로 변경됨

반응형

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] Network Tip

route를 확인하기 위해 route 명령어를 입력했는데 없다??


-> ip route


default route 설정 (2개 이상 nic 카드가 있을때 두개 모두 게이트웨이 설정이 된 경우)


eth0(main), eth1(second)


일때


ifcfg-eth0 설정 파일에


-> DEFROUTE=yes


를 추가

반응형

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

[ELK] ELK를 활용한 웹 로그 모니터링 시스템 - 1

회사에서 웹 서버의 로그 수집 및 분석을 위해 2015년 말 부터 ELK Stack과 TICK+Grafana Stack으로


웹 서버 및 주요 서버, 서비스의 로그 수집 및 대시보드를 통한 모니터링을 활용해 왔다.


다만 ELK는 당시에는 버전이 낮았고 성능이나 사용적인 부분에서 InfluxDB 보다 불편함을 느껴


지금까지 주로 TICK을 사용해왔다.


ELK는 1.X에서 2.X로, 그리고 5.X로 마이그레이션을 하며 사용은 했었지만 제대로 활용하진 않았다.


얼마전 Elastic Tour 2017 Seoul 에 참석하여 6.X ELK를 보니 다시 한번 제대로 사용해보자는 생각이 들어


처음부터 새로 구축하기로 하였다. 


이 글은 간단한 설치 및 구성과 logstash, filebeat 를 통한 로그 수집, 필터 처리, kibana를 통한


대시보드 작성을 진행과정에 따라 적어보고자 한다.


1.  ELK Stack 설치


1.1. 설치 버전 : 6.1.1


1.2. 준비 사항 : Docker CE 17.12 / docker-compose 1.18 / Golang 1.5 이상


1.3. 쉽게 사용하기 위해 Docker, Docker-compose 를 통해 elk-cluster 를 구축하려면 다음과 같이 docker-compose.yml 파일을

     사용하여 클러스터를 올린다. 몇몇 세부 옵션들은 yml 파일을 수정하여 사용한다.


version: '2.2'

services:

  elasticsearch1:

    image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1

    container_name: elasticsearch1

    environment:

      - cluster.name=kobic-elk-docker-cluster

      - bootstrap.memory_lock=true

      - "ES_JAVA_OPTS=-Xms4096m -Xmx4096m"

    ulimits:

      memlock:

        soft: -1

        hard: -1

    volumes:

      - esdata1:/usr/share/elasticsearch/data

    ports:

      - 9200:9200

    networks:

      - esnet

  elasticsearch2:

    image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1

    container_name: elasticsearch2

    environment:

      - cluster.name=kobic-elk-docker-cluster

      - bootstrap.memory_lock=true

      - "ES_JAVA_OPTS=-Xms2048m -Xmx2048m"

      - "discovery.zen.ping.unicast.hosts=elasticsearch1"

    ulimits:

      memlock:

        soft: -1

        hard: -1

    volumes:

      - esdata2:/usr/share/elasticsearch/data

    networks:

      - esnet

  kibana:

    image: docker.elastic.co/kibana/kibana:6.1.1

    container_name: kibana

    environment:

      SERVER_NAME: kibana.kobic.re.kr

      ELASTICSEARCH_URL: http://localhost:9200

    ports:

      - 5601:5601

    networks:

      - esnet

  logstash:

    image: docker.elastic.co/logstash/logstash:6.1.1

    container_name: logstash

    environment:

      XPACK_MONITORING_ELASTICSEARCH_URL: http://localhost:9200

    ports:

      - 5044:5044

    networks:

      - esnet

    depends_on: ['elasticsearch1']


volumes:

  esdata1:

    driver: local

  esdata2:

    driver: local


networks:

  esnet:


위 파일이 위치한 곳에서 docker-compose up 명령어를 통해 서비스를 올리면 해당 이미지들을 pulling 하고 기다리면


각 컨테이너가 실행이 된다. 그후 브라우저에서 localhost:5601 로 접속하면 kibana에 접속할수 있고 모니터링 탭을 통하여


각 elk node, kibana, logstash 의 상태를 확인할 수 있다.

반응형

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, Grok Pattern, InfluxDB, Telegraf, WroldMap, Grafana 연동 삽질기

각 서비스의 접속 지역을 확인하기 위해 Nginx 를 1.13.3 으로 소스 재컴파일을 하였고


GeoIP Module 을 설치하였으며 (이와중에 dependancy 로 설치된 nginx 때문에 소스 컴파일 한


nginx 가 영향을 받아 스크립트가 정상동작 하지 않는 부분이 발생.. 하여 system service daemon 을


수정하여 정상 동작 확보 - bin 파일을 rpm 의 nginx 가 아닌 source build 된 nginx 로 실행 위치 변경)


이후 grafana 에 world map plugin 을 설치하고 지도에 표시하느라 쿼리와 telegraf, influxdb 에 


nginx log 넣느라 삽질 삽질 하다가 어 됬다! 하고 좋아했다. (지난번 포스트)


그런데 몇일 후 보니.. 다시 정상적으로 안나온다 ㅠㅠ What!!!


influxdb 쪽 로그를 보니 사용자 태그로 설정한 geoip_country_code 가 nginx 로그 상에는


아무런 문제가 없지만 inflxudb 로 들어가면 앞에 /"KR/" 형태가 붙는걸 발견..


헐.. 처음엔 안그랬는데?!?!


이걸 해결하려고 nginx log format 을 바꿔보고 telegraf 에서 grok pattern 을 이거저거 수정해보았는데


원인은 일반적인 fields 는 " " 안의 값만 input 으로 받는데 tag로 설정한 값은 " " 값도 같이 


인식해서 db에 넣는다. 덕분에 /" /" 가 같이 붙는것..


그래서 nginx log format 에서 tag 로 사용할 $geoip_country_code 는 " " 를 빼고 그냥 사용해주고


telegraf에서 %{type:tag_name:tag} 로 설정해서 테스트 하니 다시 정상적으로 db로 입력이 된다.


이제야 다시 맵에서 정상적으로 확인이 된다...


원인을 찾아봐야겠는데.. 


https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns


여길 참고하면 기본 tag로 지정되는 verb 값은 "" 안에 있지만 정규식으로 추출해서 쓰는 문법으로 추정된다.


으음 아직 내공이 부족하다 ㅠㅠ



반응형

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

[NGINX] 보안 설정 관련

header cache control

https://www.joinc.co.kr/w/man/12/nginx/static


header HSTS (HTTP Strict Transport Security) Config

https://www.nginx.com/blog/http-strict-transport-security-hsts-and-nginx/

반응형

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