docker graphite 部署

Totoro-gong 2021-08-29 原文


docker graphite 部署


docker graphite

一、获取graphite-centos docker image

sudo docker pull steeef/graphite-centos
(参见:https://registry.hub.docker.com/u/steeef/graphite-centos/)

二、运行一个graphite容器

docker run -d \
--name graphite \
-v /data/uxin/graphite:/var/lib/graphite/storage/whisper \
-p 8880:80 \
-p 2003:2003 \
-p 2004:2004 \
-p 7002:7002 \
steeef/graphite-centos

三、在容器中执行bash
1.进入graphite容器:

sudo docker exec -t -i graphite /bin/bash

2.修改graphite配置:

  1)修改graphite显示时间:

TIME_ZONE = \'Asia/Shanghai\'

  2)修改系统时区

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3.为nginx的登录增加用户名和密码(见另一篇博文)

4.重新启动服务
  将/etc/supervisor.conf中关于nginx的启动去掉,改为在/tmp/start.sh中启动nginx,并且nginx.conf配置ngingx的启动方式为daemon启动,需要将daemon off注释掉。
  这样做的原因是使用supervisor来启动nginx会将CPU占用率位置在90%以上。
  执行启动所有服务/tmp/start.sh

四、使用docker停止、重新启动容器

sudo docker stop graphite
sudo docker restart graphite
sudo docker top graphite

 

附录1:Dockerfile

FROM centos:latest
MAINTAINER Stephen Price <steeef@gmail.com>

RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# Install required packages
RUN yum -y install gcc python-devel pycairo pyOpenSSL python-memcached \
    bitmap bitmap-fonts python-pip python-django-tagging \
    python-sqlite2 python-rrdtool memcached python-simplejson python-gunicorn \
    supervisor openssh-server sudo nginx

# Use pip to install graphite, carbon, and deps
RUN pip-python install whisper
RUN pip-python install Twisted==11.1.0
RUN pip-python install --install-option="--prefix=/var/lib/graphite" --install-option="--install-lib=/var/lib/graphite/lib" carbon
RUN pip-python install --install-option="--prefix=/var/lib/graphite" --install-option="--install-lib=/var/lib/graphite/webapp" graphite-web

RUN mkdir -p /var/run/sshd
RUN chmod -rx /var/run/sshd

RUN useradd -d /home/graphite -m -s /bin/bash graphite
RUN echo graphite:graphite | chpasswd
RUN echo \'graphite ALL=(ALL) NOPASSWD:ALL\' >> /etc/sudoers.d/graphite
RUN chmod 0440 /etc/sudoers.d/graphite

# Add system service config
ADD nginx.conf /etc/nginx/nginx.conf
ADD supervisord.conf /etc/supervisord.conf
#
## Add graphite config
ADD initial_data.json /var/lib/graphite/webapp/graphite/initial_data.json
ADD local_settings.py /var/lib/graphite/webapp/graphite/local_settings.py
ADD carbon.conf /var/lib/graphite/conf/carbon.conf
ADD storage-schemas.conf /var/lib/graphite/conf/storage-schemas.conf
RUN mkdir -p /var/lib/graphite/storage/whisper
RUN touch /var/lib/graphite/storage/graphite.db /var/lib/graphite/storage/index
RUN chown -R nginx /var/lib/graphite/storage
RUN chmod 0775 /var/lib/graphite/storage /var/lib/graphite/storage/whisper
RUN chmod 0664 /var/lib/graphite/storage/graphite.db
RUN cd /var/lib/graphite/webapp/graphite && python manage.py syncdb --noinput

# Nginx
EXPOSE 80
# Carbon line receiver port
EXPOSE 2003
# Carbon pickle receiver port
EXPOSE 2004
# Carbon cache query port
EXPOSE 7002
# ssh
EXPOSE 22

ADD start.sh /tmp/start.sh
RUN chmod +x /tmp/start.sh
ENTRYPOINT /tmp/start.sh

 

附录2:容器运行后,第一个执行的命令 /tmp/start.sh(nginx.conf配置ngingx的启动方式为daemon启动,需要将daemon off注释掉)

#!/bin/bash
if [ -n "${SECRET_KEY}" ]; then
      sed -E -i "s/^environment = (.*)$/environment = \1,SECRET_KEY=\'$SECRET_KEY\'/" /etc/supervisord.conf
fi
#ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C \'\' -N \'\'
#ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -C \'\' -N \'\'
#ssh-keygen -q -t rsa1 -f /etc/ssh/ssh_host_key -C \'\' -N \'\'

/usr/bin/supervisord
/usr/sbin/nginx /usr/sbin/sshd -D -o UseDNS
=no -o UsePAM=no

 

附录3:supervisor.conf

bash-4.1# vi /etc/supervisord.conf
[supervisord]
environment = GRAPHITE_STORAGE_DIR=/var/lib/graphite/storage,GRAPHITE_CONF_DIR=/var/lib/graphite/conf
logfile = /var/log/supervisor/supervisord.log

#[program:nginx]
#command = /usr/sbin/nginx
#autorestart = true
#log_stdout = true
#log_stderr = true
#logfile_maxbytes=5MB
#logfile_backups=10
#logfile = /var/log/supervisor/nginx.log

[program:carbon-cache]
user = nginx
command = /var/lib/graphite/bin/carbon-cache.py  start
logfile = /var/log/supervisor/carbon-cache.log
autorestart = true
log_stdout = true
log_stderr = true
logfile_maxbytes=5MB
logfile_backups=10

[program:graphite-webapp]
user = nginx
directory = /var/lib/graphite/webapp
command = /usr/bin/gunicorn_django -b127.0.0.1:8000 --pythonpath=/var/lib/graphite/webapp/graphite --preload -w2 --settings=settings
logfile = /var/log/supervisor/graphite.log
autorestart = true
autostart = true
log_stdout = true
log_stderr = true
logfile_maxbytes=5MB
logfile_backups=10

 

发表于
2015-02-11 17:37 
胖乎乎龙猫 
阅读(833
评论(1
编辑 
收藏 
举报

 

版权声明:本文为Totoro-gong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Totoro-gong/p/4286691.html

docker graphite 部署的更多相关文章

  1. 传统.NET 4.x应用容器化体验(4)

    上一篇我们试着将.NET 4.x的镜像推送到harbor私有镜像仓库,本篇我们来使用一下阿里云的镜像仓库服务并 […]...

  2. Jenkins + Docker + dockerfile-maven-plugin + Harbor CI/CD spring-boot项目的最轻量级配置

    说明 本文只为方便日后查阅,记录一些关键性的步骤和踩坑的情况. dockerfile-maven-plugin […]...

  3. 腾讯云容器服务 TKE 拿下新加坡 MTCS 最高级别安全认证

    近日,腾讯云容器服务 TKE 荣获新加坡 MTCS 最高级安全认证,标志着腾讯云 TKE 在为用户提供可靠、易 […]...

  4. docker搭建hadoop集群

    一、概述HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...

  5. kubernetes实战之consul篇及consul在windows下搭建consul简单测试环境

    consul是一款服务发现中间件,1.12版本后增加servicemesh功能.consul是分布式的,可扩展 […]...

  6. Docker 编辑网络配置文件

    Docker 1.2.0 开始支持在运行中的容器里编辑 /etc/hosts, /etc/hostname 和 […]...

  7. 宜信开源|手把手教你安装第一个LAIN应用

    LAIN是宜信公司大数据创新中心开发的开源PaaS平台。在金融的场景下,LAIN 是为解放各个团队和业务线的生 […]...

  8. Docker多主机管理(八)–技术流ken

        docker多主机管理   前面我们的实验环境中只有一个 docker host,所有的容器都是运行在 […]...

随机推荐

  1. windows下安装Git安装

    一:Git是什么?   Git是一个代码仓库,属于分散型版本管理系统。   二:在windows下安装Git […]...

  2. 利用Chrome浏览器的开发者工具截取整个页面

    利用Chrome浏览器的开发者工具截取整个页面 ①打开Chrome浏览器的开发者工具:   快捷键: comm […]...

  3. SpirngBoot之整合Swagger2

    前言 swagger,中文“拽”的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查 […]...

  4. 简单的SSM框架搭建教程 – 工程师搁浅

    简单的SSM框架搭建教程 简单的ssm框架的搭建和配置文件 ssm框架里边的配置: 1.src路径下直接存放数 […]...

  5. 基站搭建与IMSI捕获

     写在前面 : 实验目的是为了教学交流,坚决抵制违法行为。 一、实验目的        搭建基于OpenBTS […]...

  6. apk资源文件解析异常导致无法发编译的几种情况及解决方案

    记录下用apktoolkit反编译时报的几个错误: 1、resource.arsc文件 错误内容:Except […]...

  7. ubuntu下设置程序开机自启动的几种方法 ubuntu下设置程序开机自启动的几种方法

    1,这种也是最常用的一种 rcconf:  sudo apt-get install rcconf  root […]...

  8. 网站流量分析指标-PV/UV/PR/IP

    网站流量分析指标-PV/UV/PR/IP 网站数据分析,经常会统计一个页面或者一个网站或者其他情况的PV/UV […]...

展开目录

目录导航