statsD+graphite集群迁移记录

该文章为本人迁移旧集群的过程记录,为图方便直接打包了原配置文件直接部署到新机器上,而且排除了数据与日志存放目录,故下面有新建目录/文件的操作(其中有部分不需要手动创建),与新建集群的操作基本没有太大差异。留作记录,也供大家参考。

注:在三台节点上都要进行如下配置。

1,安装软件包:

apt-get update
##部分包互相依赖的,可能有重复:
apt-get -y install build-essential libpq-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev libssl-dev python-django-tagging python-simplejson python-memcache python-ldap python-cairo python-pysqlite2 python-support python-pip python-dev python-rrdtool zlib1g-dev gunicorn nodejs wget curl  nginx supervisor git devscripts debhelper software-properties-common lftp

pip install Django==1.7.7
pip install Twisted==11.1.0
pip install whisper 

2,解压原配置文件并创建数据与日志相关目录(因体积过大未拷贝):

tar -pzxvf grap-1.tar.gz -C /
tar -pzxvf grap-2.tar.gz -C /
tar -pzxf statsd.tar.gz -C /
tar -pzxvf supervisor.tar.gz -C /
mv /etc/supervisor/conf.d/{es.conf,es_monitor.conf} /etc/supervisor/conf.d/bak/

mkdir -p /data/graphite/storage/log/{carbon-cache,carbon-relay,webapp} /data/graphite/storage/whisper/b_statsd/{timers,counter} /data/graphite/storage/whisper/monitor /data/log/{statsd,graphite} 
chown www-data:www-data /data/graphite/storage/log/
touch /data/graphite/storage/log/webapp/{exception.log,info.log}

3,修改各项目的配置文件:

  • 修改statsd的配置文件(更改节点的IP地址):
    /data/statsd/statsd.js*
ls *statsd.js | xargs sed -i 's/172.18.20.57/172.16.0.208/g'
ls *statsd.js | xargs sed -i 's/172.18.20.58/172.16.33.238/g'
ls *statsd.js | xargs sed -i 's/172.18.20.59/172.16.17.195/g'
##若不需要第三台集群可以通过以下命令删除该行配置:
ls *statsd.js | xargs sed -i '/172.18.20.59/d'
  • 修改carbon相关配置文件(调整各参数并更改节点IP):
    /opt/graphite/conf/carbon.conf
DESTINATIONS = 172.16.0.208:2014:a,172.16.33.238:2014:b,172.16.17.195:2014:c

/opt/graphite/conf/relay-rules.conf

destinations = 172.16.0.208:2004:a,172.16.33.238:2004:b,172.16.17.195:2004:c
  • 修改graphite-web的配置文件:
    /opt/graphite/webapp/graphite/local_settings.py
CLUSTER_SERVERS = ["172.16.0.208:80","172.16.33.238:86","172.16.17.195:86"]

4,配置nginx反代graphite:

相关目录需要注意www-data的权限,按原属性解压就没问题。

注:业务机器通过前面的slb传数据到后端的statsD集群上。

  • cluster-node1:
cat /etc/nginx/conf.d/graphite.conf

server { 
server_name  grap.bilibili.co 172.16.0.208;
listen 80; 
charset utf-8; 
location / { 
  proxy_pass http://127.0.0.1:8000;
} 
}
  • cluster-node2:
cat /etc/nginx/conf.d/graphite.conf

server { 
server_name  grap.bilibili.co 172.16.0.209;
listen 86; 
charset utf-8; 
location / { 
  proxy_pass http://127.0.0.1:8000;
} 
}
  • cluster-node3:
cat /etc/nginx/site-enabled/01-graphite
server { 
server_name  grap.bilibili.co 172.16.17.195;
listen 86; 
charset utf-8; 
location / { 
  proxy_pass http://127.0.0.1:8000;
} 
}

5,配置迁移完成,启动服务:

systemctl restart supervisor.service
nginx -t
nginx -s reload

6,排错与测试:

  • supervisorctl打开失败:
# supervisorctl  
unix:///var/run/supervisor.sock no such file
supervisor>

该错误是因为supervisord父进程没有预先启动。

起服务时需要先启动supervisord,然后再通过supervisorctl管理子进程。如下为启动成功:

# systemctl restart supervisor.service
# supervisorctl 
activity-node1                   RUNNING    pid 31429, uptime 0:19:56
activity-node2                   RUNNING    pid 31417, uptime 0:19:56
activity_statsd                  RUNNING    pid 31420, uptime 0:19:56
aso-node1                        RUNNING    pid 31419, uptime 0:19:56
aso-node2                        RUNNING    pid 31423, uptime 0:19:56
aso_statsd                       RUNNING    pid 31418, uptime 0:19:56
carbon-cache                     RUNNING    pid 31915, uptime 0:11:54
carbon-relay                     RUNNING    pid 31919, uptime 0:11:48
graphite                         RUNNING    pid 31974, uptime 0:10:29
supervisor> 
  • graphite进程启动失败:
    有时由于Django的依赖包安装不完整或者版本不对,导致graphite启动失败,可以通过pip freeze 查看其他服务器上的配置,再通过pip install安装:
pip freeze > /tmp/django.txt #再将该文件拷贝至本服务器
pip install -r /tmp/django.txt #配置django环境
##有遇到django-tagging的版本过低(0.3.x)导致graphite启动失败
pip install django-tagging==0.4
  • 数据传输测试:
echo "test.logstash.num:100|c" | nc -w 1 -u $IP $port
echo "test.logstash.num:100|c" | nc -w 1 -u 127.0.0.1 8921
echo "test.logstash.num:200|c" | nc -w 1 -u 127.0.0.1 7798

如果安装配置是正常的,在graphite的左侧会多出这些路径与数据表:metrics->b_stats->counters->test->logstash->num


以上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,127评论 2 34
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,563评论 18 139
  • 本人陆陆续续接触了ELK的1.4,2.0,2.4,5.0,5.2版本,可以说前面使用当中一直没有太多感触,最近使用...
    三杯水Plus阅读 4,077评论 0 12
  • 国家机敏精明华丽丽你就还追回就惠及离开筋疲力尽闺蜜水泥路
    无敌宝阅读 188评论 0 1
  • hello,大家好!我们第五单元的学习已接近尾声,下面就让我来做一份单元小结吧! 我们在这个单元学习了两篇关于...
    任玉瑛阅读 197评论 2 0