用fabric部署维护kle日志收集系统

最近搞了一个logstash kafka elasticsearch kibana 整合部署的日志收集系统。部署参考lagstash + elasticsearch + kibana 3 + kafka 日志管理系统部署 02

上线过程中有一些环节,觉得还是值的大家注意的比如:

1,应用运维和研发人员要讨论一下日志格式的定义,

2,在logstash取日志和消费端logstash消费日志麻、过滤日志的时候怎么要高效,避免服务本身告成系统压力过大,如果每天要处理过亿日志量,性能不注意,哈哈,可以使劲想像,会有什么后果,

3,kafka和es集群的配置,监控等,及重启服务时应注意的事情,

4,目前 kle日志收集在实时展示比较有优势,那历史数据,也就是说在es中的索引需要清理旧的数据,索引需要优化提高kibana检索速度等。

在维护过程中也遇 到了一些问题,比如批量部署生产端logstash,配置文件,更新配置文件脚本,巡检服务是否正常等,综上,所以利用fabric弄一个简单的管理脚本,还是很好玩的。 源代码已上传这里,下面主要是对一些主要功能及源码做一说明,以便过几个月看到时候,还提醒一下自己。哈哈

项目目录如下;

├── bin
│   ├── __init__.py
│   ├── logstash_dev.py
│   ├── test.txt
│   └── update_config.sh
├── branches
├── conf
│   ├── config.conf
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── setting.py
│   └── setting.pyc
├── config
├── description
├── file
│   ├── config
│   │   ├── appapi
│   │   │   ├── logstash_shipper_production.conf
│   │   │   └── logstash_shipper_production.conf.bak
│   │   ├── consume
│   │   │   ├── consume_fiter.txt
│   │   │   ├── consume_input.sh
│   │   │   ├── consume_input.txt
│   │   │   ├── consume_output.txt
│   │   │   ├── get_typelist.sh
│   │   │   ├── get_typelist.txt
│   │   │   ├── logstash_indexer_consume.conf
│   │   │   └── logstash_indexer_consume.conf.template
│   │   ├── g1web
│   │   │   ├── logstash_shipper_production.conf
│   │   │   └── logstash_shipper_production.conf.template
│   │   ├── houtai
│   │   │   └── logstash_shipper_production.conf
│   │   └── wapapi
│   │       └── logstash_shipper_production.conf
│   └── logstash
│       ├── install_logstash.sh
│       └── logstashd

说明: bin目录放执行脚本 conf 目录放业务服务器信息(config.conf)、调用配置文件(setting.py) file 目录放需要推送到终端的配置文件或安装包

logstash_dev 应用逻辑如下:

1.logstash_dev说明

./update_config.sh test.txt
向config.conf 生成和更新env.roles需要业务组和主机信息
./
fab -f logstash_dev.py --shortlist  #可以列出目前定义的执行任务有那些
如下:

[email protected]:/var/www/fabric_project/logstash_dev/bin# fab -f logstash_dev.py --shortlist
/var/www/fabric_project/logstash_dev
G1WEB
JDK_DEP
check_load
check_localhost
jdk_check
logstash_check
logstash_production
logstash_production_config_update
logstash_service
logstashd_update

执行任务

fab -f logstash_dev.py G1WEB

只要会点python 了解一点fabric原理 logstash_dev.py里的东东比较好定义的,因主要是调用的shell

2. setting.py这里面的东西,是我最容易忘记的

#!/usr/bin/env python
# coding:utf8
#author: [email protected]

from fabric.colors import *
from fabric.api import *
import re
import sys,os
import ConfigParser

#sys.path.append(‘/var/www/python_program/fabric_project/ops_manager‘)

nowdir = os.getcwd()
BASEDIR = ‘/‘.join(nowdir.split(‘/‘)[:-1])
CONFIGFILE = "%s/conf/config.conf"%BASEDIR
PWDFILE = "%s/conf/.ippwd.txt"%BASEDIR
print BASEDIR

env.user = ‘root‘
env.roledefs = {}
env.passwords = {}

#下面主要是实现加载配置文件已解析成字典给env.roledefs
def Handle_Conf_Role():
    CONF = ConfigParser.ConfigParser()
    CONF.read(CONFIGFILE)
    g = CONF.items(‘HostGroup‘)
    for gh in g:
        env.roledefs[gh[0]] = []
        for h in gh[1].split(‘,‘):
            env.roledefs[gh[0]].append(h)
    return env.roledefs

#下面主要实现解决主机密码文件,解析成env.passwords字典
def Handle_Host_Pass():
    with open(PWDFILE,‘r‘) as f:
        for line in f.readlines():
            for g,hlist in Handle_Conf_Role().items():
                for h in hlist:
                    b = re.match(r‘^%s .*‘ %h,line,re.M|re.I)
                    if b:
                        c = b.group()
                        k = c.split()[0]
                        v = c.split()[1]
                        nc=‘%[email protected]%s:22‘%(env.user,k)
                        env.passwords[nc] = v

        return env.passwords

if __name__ == ‘__main__‘:
    print Handle_Conf_Role()
    print Handle_Host_Pass()

3.后期想法,实现对logstash kafka zookeeper es等想关服务及应用配置文件的管理

时间: 2024-10-14 04:08:58

用fabric部署维护kle日志收集系统的相关文章

一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种

[转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储

基于Flume的美团日志收集系统(一)架构和设计【转】

美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收集系统>将分两部分给读者呈现美团日志收集系统的架构设计和实战经验. 第一部分架构和设计,将主要着眼于日志收集系统整体的架构设计,以及为什么要做这样的设计. 第二部分改进和优化,将主要着眼于实际部署和使用过程中遇到的问题,对Flume做的功能修改和优化等. 1 日志收集系统简介 日志收集是大数据的基石.

Flume日志收集系统架构详解--转

2017-09-06 朱洁 大数据和云计算技术 任何一个生产系统在运行过程中都会产生大量的日志,日志往往隐藏了很多有价值的信息.在没有分析方法之前,这些日志存储一段时间后就会被清理.随着技术的发展和分析能力的提高,日志的价值被重新重视起来.在分析这些日志之前,需要将分散在各个生产系统中的日志收集起来.本节介绍广泛应用的Flume日志收集系统. 一.概述 Flume是Cloudera公司的一款高性能.高可用的分布式日志收集系统,现在已经是Apache的顶级项目.同Flume相似的日志收集系统还有F

ELK+kafka构建日志收集系统

ELK+kafka构建日志收集系统 原文  http://lx.wxqrcode.com/index.php/post/101.html 背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis换成了专业的消息信息发布订阅系统Kafka, Kafka的更多介绍大家可以看这里: 传送门 ,关于ELK的知识网上有很多的哦, 此篇博客主要是总结一下目前线上这个

基于Flume的美团日志收集系统(一)架构和设计

来自:美团技术博客 http://tech.meituan.com/mt-log-system-arch.html 美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收集系统>将分两部分给读者呈现美团日志收集系统的架构设计和实战经验. 第一部分架构和设计,将主要着眼于日志收集系统整体的架构设计,以及为什么要做这样的设计. 第二部分改进和优化,将主要着眼于

ELKstack-企业级日志收集系统

ELKstack-企业级日志收集系统 1. ELKstack简介 ELKstack是Elasticsearch.Logstash.Kibana三个开源软件的组合而成,形成一款强大的实时日志收集展示系统. 各组件作用如下: Logstash:日志收集工具,可以从本地磁盘,网络服务(自己监听端口,接受用户日志),消息队列中收集各种各样的日志,然后进行过滤分析,并将日志输出到Elasticsearch中. Elasticsearch:日志分布式存储/搜索工具,原生支持集群功能,可以将指定时间的日志生成

基于Flume的美团日志收集系统(二)改进和优化

问题导读: 1.Flume-NG与Scribe对比,Flume-NG的优势在什么地方? 2.架构设计考虑需要考虑什么问题? 3.Agent死机该如何解决? 4.Collector死机是否会有影响? 5.Flume-NG可靠性(reliability)方面做了哪些措施? 美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收集系统>将分两部分给读者呈现美团日

Flume可分布式日志收集系统

Flume 1. 前言 flume是由cloudera软件公司产出的可分布式日志收集系统,后与2009年被捐赠了apache软件基金会,为hadoop相关组件之一.尤其近几年随着flume的不断被完善以及升级版本的逐一推出,特别是flume-ng;同时flume内部的各种组件不断丰富,用户在开发的过程中使用的便利性得到很大的改善,现已成为apache top项目之一. 2. 概述 2.1. 什么是flume?http://flume.apache.org/index.html Apache Fl