ELK0.9搭建

1. ELK是什么

ELK是ElasticSearch,Logstash,Kibana加在一起的缩写,ElasticSearch简称ES,主要用来存储和检索数据。Logstash主要用来往ES中写入数据。Kibana主要用来展示数据。一般用这几个应用组合来搭建分布式日志系统,监控平台。

2. 为什么要使用ELK

记录系统日志,并方便检索

我在维护一个已经运行很多年的网站,一个Java WEB项目,部署在weblogic上,后台使用的是Oracle数据库,平心而论这个项目全部用开源的技术就好,根本没必要花钱用Oracle的东西,不过这种电信的遗留系统,也不能说调整就调整,呵呵扯远了。
最开始一台服务器就能跑起来了,后来访问量大了,就增加几台服务器,再配个负载均衡。问题来了,后台的日志都是打印在war包所在服务器上,系统出现问题的话需要逐个服务器查找日志文件,相当麻烦。能不能把这些分布式的日志都放到同一个地方呢?一开始有个“大神”(好像是我)想到了把日志都放到数据库-Oracle。问题是勉强解决,但是,日志本身只会不停新增,不会有更新操作,删除操作,也不会有什么一致性要求,放到关系型数据库实在是杀鸡用牛刀的感觉,于是后来就用到了这个ELK。
以往有syslogd等工具可以汇总到一台机器,但都是以文件方式,搜索不方便。Logstash可配置输出到ElasticSearch服务帮忙做搜索功能,可以做到实时的关键字搜索,作为系统管理员,这个配置非常方便。

为什么要用0.9版本? 现在都有ELK5了啊

所谓的0.9版本其实就是指ElasticSearch的0.9版本。而0.9版本是最后一个还支持JDK 1.6的版本。JDK1.6是国内第一个被大范围广泛使用的JDK版本,直到现在还有无数的项目用着1.6。 因为安装ELK的服务器正是某个电信遗留系统所在的服务器,给遗留系统升级JDK版本也不是说升级就升级的,除了技术上的工作还有大量非技术的工作,这会折腾我好多时间,所以先用0.9试试手,以后再找一台新的服务器安装最新的ELK,以便用上其更强大的功能。

3. 安装步骤

系统环境

16核 Intel(r) Xeon(R) CPU E5620 @ 2.40GHz
32G内存
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
jdk1.6.0_23

Redis

Redis是什么

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

为什么要使用Redis

ELK本身并没有Redis,为什么会需要这个东东呢?
Redis在这里充当的是一个缓冲的消息队列。

  1. 在Java开发中,不少人会用到Logback作为日志的工具,由于Logback目前没有渠道直接把Log发到Logstash上,所以就做一个Appender,先把log发送到Redis上,然后logstash自己上redis取日志
  2. 提高系统稳定性,避免因网络抖动等原因突然出现大量写入日志造成阻塞。先把日志放到Redis中缓冲一下,即使logstash读取数据失败,数据依旧在Redis中不会丢失。

安装

安装的是3.2.8版本,编译安装

$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz
$ tar xzvf redis-3.2.8.tar.gz
$ cd redis-3.2.8
$ make & make install
$ vi redis.conf    
# 编辑redis.conf文件
#(1)把“bind 127.0.0.1”注释掉,否则redis只能从本地访问
#(2)加上这一句:requirepass 【密码】,既然允许远程访问,自然应该设置密码
$ cd src
$ ./redis-server

Logstash

安装的是1.3.3版本,注意Logstash的版本必须对应ElasticSearch特定版本,否则无法运行,而且两者版本号并不是一致的,相当混乱,好像是ELK3还是ELK5重新整理了版本号才改善过来。

$ mkdir logstash
$ cd logstash
$ wget http://download.elasticsearch.org/logstash/logstash/logstash-1.3.3-flatjar.jar
# 创建redis-logstash.conf
$ touch redis-logstash.conf
$ vi redis-logstash.conf
input{
    redis{
        host=>"127.0.0.1"      #我的redis也装在同一台服务器
        port=>6379                #redis的端口
        data_type=>"list"
        key=>"logstash"         # 自定义的key,需要与我在logback上配置的对应
        password=>"Abcedfg"  #在redis设置的访问密码
        codec=>json{
            charset=>"UTF-8"
        }
}
output{
    file{
        #从redis中获取的日志,放到这个文件,支持动态文件名
        path=>"/data/logs/logstash-%{+yyyy.MM.dd}.log"  
    }
    elasticsearch{
        host=>"127.0.0.1"  # 我的elasticsearch也是装在同一台服务器上
    }
}
# 直接用Java跑这个jar包
# 其中 -f 是指以前台方式运行,结合实际情况考虑去掉
$ java -jar logstash-1.3.3-flatjar.jar agent -f redis-logstash.conf

ElasticSearch

安装的版本是0.90.13

$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.13.tar.gz
$ tar xvf elasticsearch-0.90.13.tar.gz
$ cd elasticsearch-0.90.13/bin/
# 使用的是默认的配置,在redis-logstash.conf中已经指定了ElasticSearch所在的ip,所以只需开启ElasticSearch,它自会处理日志
# -f 是指以前台方式运行,根据实际情况去掉
$ ./elasticsearch -f

Kibana

可以通过一个图形化的界面看日志
logstash已经包含了:
java -jar logstash-1.3.3-flatjar.jar web
它默认使用的是9292端口,我们用一个支持HTML5的浏览器打开即可http://127.0.0.1:9292/index.html#/dashboard/file/logstash.json

4. 不足与展望

以上只是介绍了一个简单的安装步骤,可以看到安装的版本很旧,ELK全部装在一台服务器,索引也没有优化,内存会越来越少,也没有使用集群以保证高可用。这个以后再另写文章总结

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

推荐阅读更多精彩内容