2017년 2월 14일 화요일

Grafana & graphite 그리고 모니터링 #04.

Local storage에 데이터 저장하기.


Docker container가 자동 시작 되었지만 데이터가 container에 저장되게 되어 있어서,
성능 및 유지 보수 관점에서 문제가 된다. 데이터를 host에 저장하자.

1. Run shell script.

1
2
3
4
5
6
#!/bin/sh
 
carbon-cache --config=/etc/carbon/carbon.conf start
chown -R carbon:carbon /var/lib/carbon/rrd/
chown -R carbon:carbon /var/lib/carbon/whisper/
python /usr/lib/python2.7/site-packages/graphite/manage.py runserver 0:8000
cs

   이전 글에서 없었던 4, 5번 라인이 추가되었다. 이게 좀 웃긴데 container를 실행할 때
   --volume 옵션을 사용해서 host에 저장하게 되면 container의 경로의 소유자가 강제로
   root로 변경된다. 하지만 carbon의 기본 계정은 carbon이 되고 따라서 데이터가 저장될
   경로의 소유자도 carbon이어야 시계열 데이터가 정상적으로 저장이 된다.


2. Docker build script.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# VERSION 1.0
FROM centos:7.2.1511
MAINTAINER ships <ships@darts.kr>
 
RUN yum install -y epel-release
RUN cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime
 
RUN useradd pxuser
ADD ./Run.sh /home/pxuser/
RUN chmod +/home/pxuser/Run.sh
 
RUN yum install -y python-carbon
RUN yum install -y graphite-web
 
RUN django-admin syncdb --settings=graphite.settings --noinput
 
EXPOSE 8000
VOLUME ["/var/lib/carbon/rrd""/var/lib/carbon/whisper"]
 
WORKDIR /home/pxuser/
CMD ["./Run.sh"]
cs

   이전 글과 비교해서 특별한 것은 없고 작업 경로의 Run.sh이 실행 권한이 없을 경우
   이미지에 복사된 스크립트도 실행 권한이 없어서 실행이 안되는 문제를 해결하기 위해
   실행 권한을 부여하는 것과 저장소 관련 명령어 정도가 추가 되었다.


3. Docker run.

   이제 volume 옵션을 주고 실행하면 준비는 끝.
1
2
3
4
docker run --5338:2003 \              
              -/var/lib/carbon/rrd:/var/lib/carbon/rrd \              
              -/var/lib/carbon/whisper:/var/lib/carbon/whisper \              
              --name graphite graphite:1.0
cs

댓글 없음:

댓글 쓰기