最近搞了一个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 #可以列出目前定义的执行任务有那些
如下: root@wqk-K43SD:/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: shantuwqk@163.com 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='%s@%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等想关服务及应用配置文件的管理

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

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

    原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...

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

    作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要 ...

  3. GO学习-(35) Go实现日志收集系统4

    Go实现日志收集系统4   到这一步,我的收集系统就已经完成很大一部分工作,我们重新看一下我们之前画的图: 我们已经完成前面的部分,剩下是要完成后半部分,将kafka中的数据扔到ElasticSear ...

  4. ELK+kafka构建日志收集系统

    ELK+kafka构建日志收集系统   原文  http://lx.wxqrcode.com/index.php/post/101.html   背景: 最近线上上了ELK,但是只用了一台Redis在 ...

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

    在<基于Flume的美团日志收集系统(一)架构和设计>中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计.在本节中,我们将会讲述在实际部署和使用过程中遇到的问 ...

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

    美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...

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

    美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...

  8. 分布式日志收集系统- Cloudera Flume 介绍

        Flume是Cloudera提供的日志收集系统,具有分布式.高可靠.高可用性等特点,对海量日志采集.聚合和传输, Flume支持在日志系统中定制各类数据发送方, 同时,Flume提供对数据进行 ...

  9. 快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana)

    快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana) 概要说明 需求场景,系统环境是CentOS,多个应用部署在多台服务器上,平时查看应用日志及排查问题十 ...

随机推荐

  1. 【转】Messagedlg

      ) = mrYes then Close; MessageDlg用法 对话框类型:mtwarning——含有感叹号的警告对话框mterror——含有红色叉符号的错误对话框mtinformation ...

  2. Ioc 控制反转 实例

    关于IOC 或者是DI 什么的真的很坑爹. 开始理解了这东西了然后闲的没事就又百度了一下,得  我又凌乱了.  看了两个大神的贴 尼玛啊 完全是反过来了. 纠结了半天.然后就想找个简单点不坑爹的原理代 ...

  3. Python学习教程(learning Python)--2.2 Python下的变量基础

    变量的基本概念,变量可以这样去理解,变量是一个值,这个值存储在计算机的内存里.以 网购为例,您在选购傻商品的时候,是在不同页面里选不同的商品,选好一件点击“放入购物车”,选完了再点击去结帐,这些商品的 ...

  4. PHPStorm配置支持友好的Laravel代码自动提示

    在项目的composer.json "barryvdh/laravel-ide-helper":"dev-master" 项目config/app.php Ba ...

  5. 在openSUSE13.2上gem install rails -v 4.1成功,但是之后不存在rails命令解决

    解决方案为,不要用sudo gem install就好了,卧槽

  6. C# 将\u1234类型的字符转化成汉字

    用代码获取网页的json数据时,经常会出现\u1234等字符,其实我们是知道他是汉字的 可以用下面的方法将\u1234翻译成汉字 /// <summary> /// /// </su ...

  7. 贵州大学iPhone、Android(安卓)项目助跑计划!!!

    该计划旨在帮助同学们将各种脑中稀奇古怪的想法借助互联网/移动互联网相关的技术变成真实的项目. 谱写你的故事,从此刻开始! 我们帮助你提高编程(Java.C++.Objective-C.Android. ...

  8. minihttp http://www.acme.com/software/mini_httpd/

    1.安装mini_httpd 1.1把下载的mini_httpd-1.19.tar.gz拷贝到根目录   1.2 解压tar -xvfzmini_httpd-1.19.tar.gz ,会在根目录产生一 ...

  9. [译]AMQP 0-9-1 Quick Reference : basic

    Basic basic.ack(delivery-tag delivery-tag, bit multiple)Support: fullAcknowledge one or more message ...

  10. iOS学习之C语言指针

     访问数据的两种方式: 1.直接访问: 2.间接访问:先找到内存地址,根据地址访问存储单元.(内存地址 被称为指针) 定义指针变量: 类型修饰符 *指针变量名 = NULL; NULL表示空指针,相当 ...