ELK小记(一):搭建ELK日志系统

步骤:

一、下载ELK的三大组件

Elasticsearch下载地址: https://www.elastic.co/downloads/elasticsearch

Logstash下载地址: https://www.elastic.co/downloads/logstash

Kibana下载地址: https://www.elastic.co/downloads/kibana

下载后将其解压到某个目录即可.

注:这3个组件相互之间的关系及作用如下:

Logstash(收集服务器上的日志文件) --》然后保存到 ElasticSearch(搜索引擎) --》Kibana提供友好的web界面(从ElasticSearch读取数据进行展示) 


二、安装elasticsearch

2.1 启动elasticsearch

进入elasticsearch目录\bin

./elasticsearch

顺利的话,启动成功后,在浏览器里输入http://localhost:9200/ 应该能看到类似下面的输出:

{
  "name" : "Shi'ar Gladiator",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.3.2",
    "build_hash" : "b9e4a6acad4008027e4038f6abed7f7dba346f94",
    "build_timestamp" : "2016-04-21T16:03:47Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

2.2 安装kopf插件

先按Ctrl+C停止elasticsearch,接下来准备安装插件,elasticsearch有大量插件资源,用于增加其功能,bin目录下,输入

./plugin list 可以查看当前安装的插件列表,我们刚刚全新安装,输出的是一个空列表,继续输入

./plugin install mobz/elasticsearch-head

安装完成后,再次用./plugin list确认下:

Installed plugins in /Users/liaomengge/ELK/elasticsearch-2.3.2/plugins:
    - head
    - kopf

如果输出上述类似,表明head安装成功。

然后重启elasticsearch,浏览器里输入http://localhost:9200/_plugin/head/,将会看到类似下面的界面


以上操作都ok后,建议Ctrl+C关掉,改用nohup ./elasticsearch & 将其做为后台进程运行,以免退出。


三、logstash的启动与配置


说明:

  • 多个独立的agent(Shipper)负责收集不同来源的数据,一个中心agent(Indexer)负责汇总和分析数据,在中心agent前的Broker(使用redis实现)作为缓冲区,中心agent后的ElasticSearch用于存储和搜索数据,前端的Kibana提供丰富的图表展示
  • Shipper表示日志收集,使用LogStash收集各种来源的日志数据,可以是系统日志、文件、redis、mq等等
  • Broker作为远程agent与中心agent之间的缓冲区,使用redis实现,一是可以提高系统的性能,二是可以提高系统的可靠性,当中心agent提取数据失败时,数据保存在redis中,而不至于丢失
  • 中心agent也是LogStash,从Broker中提取数据,可以执行相关的分析和处理(Filter)
3.1  新建索引配置文件

进入logstash的bin目录下

mkdir conf

vi conf/logstash-indexer.conf

内容如下:

input {
 	file {
 		path	=> ["/Users/liaomengge/ELK/log/error.log"]
 		type    => "log-error"
 	}
 	log4j {
 		mode	=> "server"
 		host 	=> "127.0.0.1"
 		port 	=> "8066"
 		type 	=> "log4j"
 	}
 	redis {
		host 		=> "127.0.0.1"
		port		=> "6379"
		data_type 	=>"list"
		key 		=> "logstash:redis"
		codec		=> "json"
		type 		=> "redis-input"
	}
}

output {
	elasticsearch { 
		hosts	=> ["localhost:9200"]
	}
	stdout { 
		codec => rubydebug 
	}
}

以上配置了3中方式:

1) file

2) log4j

表示通过Apache的log4j记录

3) redis

将日志数据先通过redis缓存容器,减轻大量日志写入的请求

此处有个隐患:当redis以RDB方式进行持久化时,可能存在宕机情况,导致部分数据丢失,故可以考虑使用kafka做缓存容器

上面的type,是指定如下图中类型的:


Logstash中的其他字段可以参考https://www.elastic.co/guide/en/logstash/current/plugins-inputs-log4j.html

3.2 启动

继续保持在logstash的bin目录下,输入

./logstash -f conf/logstash-indexer.conf

稍等片刻,如果看到Logstash startup completed,则表示启动成功[注:此时的elasticsearch必须启动]。然后另开一个终端窗口,向redis中写入一些东西,比如`hello world`,然后保存。观察logstash的终端运行窗口,是否有东西输出,如果有以下类似输出:

{
       "message" => "hello, world",
          "tags" => [
        [0] "_jsonparsefailure"
    ],
      "@version" => "1",
    "@timestamp" => "2016-04-30T10:07:38.881Z",
          "type" => "redis-input"
}


说明logstash工作正常,此时浏览http://localhost:9200/_plugin/head/ 可以看到如下数据:


 

四、kibana的配置及启动

4.1 修改配置文件

进入到kibana/config,下有一个配置文件kibana.yml,改成下面这样:

server.port: 5601
server.host: “127.0.0.1”
elasticsearch.url: http://127.0.0.1:9200
kibana.index: “.kibana”

即:指定elasticsearch的访问位置,ip以及端口

4.2 启动

进入kibana/bin 下,输入:

./kibana

启动完成后,在浏览器里输入http://localhost:5601/ 即可看到kibana界面,首次运行,会提示创建index,可以直接点击Create按钮或者以前面我们设置的`type`作为索引即可。

然后,就能看到类似下面的界面了:



github: https://github.com/liaomengge/elk-demo

参考文章:

http://www.cnblogs.com/yjmyzz/p/ELK-install-tutorial.html

http://www.open-open.com/lib/view/open1451801542042.html

https://www.elastic.co/products

http://www.cnblogs.com/yjf512/p/4199105.html

http://kibana.logstash.es/content/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值