|
ELK日志管理
· 1.简介
· 2.依赖组件
· 3.下载
· 4.安装步骤
o 4.1 安装redis
o 4.2 ElasticSearch安装
o 4.3 LogStash安装
o 4.4 Kibana安装
· 5.使用说明
o 5.1 ElasticSearch
o 5.2 Kibana
1.简介
ELK日志管理系统主要功能:应用系统日志的分析和监控 。
ELK组成:ElasticSearch,LogStash,Kibana,Redis
ELK各组件数据流向:App(应用系统将日志写入Redis)→Redis(缓存)→LogStash(从Redis中收集日志,分析完存入ElasticSearch)→ElasticSearch(日志存储)→Kibana(从ElasticSearch获取日志进行分析,展现)
2.依赖组件
序号
| 组件名称
| 版本
| 备注
| 1
| jdk
| 1.7+
| 必选
| 3.下载
注:以下组件均为linux版本的
elasticSearch 1.5.0(最低支持1.4.4),
下载地址:http://tech.iflytek.com:8900/SPP/ELK/elasticsearch-1.4.4.zip
logstash (1.4.2),
下载地址:http://tech.iflytek.com:8900/SPP/ELK/logstash-1.4.2.tar.gz
redis (2.8.19),
下载地址:http://tech.iflytek.com:8900/SPP/ELK/redis-2.8.19.tar.gz
kibana (最新版本)
下载地址:http://tech.iflytek.com:8900/SPP/ELK/kibana-4.0.1-linux-x64.tar.gz
4.安装步骤
4.1 安装redis
#tar -zxvf redis-2.8.19.tar.gz#cd redis#make#make install make install命令执行完成后,会在/usr/local/bin目录下生成本个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump,它们的作用如下:
可执行文件
| 说明
| redis-server
| Redis服务器的daemon启动程序
| redis-cli
| Redis命令行操作工具。也可以用telnet根据其纯文本协议来操作
| redis-benchmark
| Redis性能测试工具,测试Redis在当前系统下的读写性能
| redis-check-aof
| 数据修复
| redis-check-dump
| 检查导出工具
| 修改配置文件:
cd /etcvi redis.conf修改daemonize yes 目的使进程在后台运行 启动Redis:
#cd /usr/loacl/bin#nohup ./redis-server /etc/redis.conf &
启动后输入以下命令:ps-ef | grep redis,如果能看到以下进程则表示Redis启动成功
4.2 ElasticSearch安装
1.解压安装包:unzipelasticSearch-1.4.4.zip
2.修改集群名称和节点名称:vi /ELK/elasticsearch-1.4.4/config/elasticsearch.yml
文件打开后,找到: cluster.name,去掉前面的#,修改为cluster.name:youname(名字随意).
注:集群名字必须修改,因为如果不修改集群名字的话,elasticSearch会自动添加同个网段内所有的没有改名字的节点
找到node.name,修改该名称
3.修改ES跨越支持:在elasticsearch.yml末尾添加如下内容
ES跨域支持
http.json.enable:truehttp.cors.allow-origin:“/.*/”http.cors.enabled:true 4.设置ES缓存类型(防止数据量大时出现问题),在elasticsearch.yml末尾添加如下内容
index.cache.field.type: soft 说明:默认类型为resident,字面意思是常驻(居民),一直增加,直到内存耗尽。改为soft就是当内存不足的时候,先clear掉占用的,然后再往内存中放。设置为soft后,相当于设置成了相对的内存大小。 resident的话,除非内存够大。
5.设置ES内存:vimelasticsearch-1.4.4/bin/elasticsearch,添加下面的配置,内存大小根据机器来定,尽量设大一点,kibana查询缓存很大,如果内存太小会出异常
ES_HEAP_SIZE=15g 6.启动ES
#./bin nohup ./elasticsearch & 访问http://127.0.0.1:9200/_plugin/head,如果出现下列界面,则表示启动成功
7.设置ES不分词(此步骤不能忘记,否则kibana查询时会出问题)
启动ES后,在shell命令行输入以下命令(IP和端口号需与第6步启动的ES的IP和端口号一致,template为日志的索引名称),以单引号(“ ’ ” )结束,回车执行不分词设置。
设置ES不分词命令 Expand source
curl -XPUT "http://192.168.84.175:9200/_template/not_analyzed_template" -d'{ "template": "skynet-ant-log", "mappings": { "_default_": { "dynamic_templates": [ { "template_1": { "mapping": { "index": "not_analyzed", "type": "string" }, "match_mapping_type": "string", "match": "*" } } ] } }}
4.3 LogStash安装
(此处一大坑:必须安装在/usr/local/下,如果安装在home目录下启动时会出错)
# tar -xzvf logstash-1.4.2.tar.gz
#vim logstash-1.4.2/bin index.conf //创建启动配置文件,添加以下内容,此配置文件刚开始没有,需自己创建,名字随意,启动时指定到该配置文件即可
LogStash配置文件 Expand source
input { redis{ data_type => "pattern_channel" key => "skynet-ant-logstash-*" host => "127.0.0.1" port => 6379 }}filter { json { source => "message" } mutate { convert => ["start" , "integer"] convert => ["end" , "integer"] convert => ["duration" , "integer"] convert => ["originalDuration" , "integer"] convert => ["timefrugal" , "integer"] convert => ["wavePoint" , "integer"] convert => ["silenceDuration" , "integer"] }}output{ elasticsearch { host => "127.0.0.1" port => 9450 protocol => http index => "skynet-ant-log" }} 参数说明
参数名称
| 说明
| Input
| 指redis的相关配置
| data_type
| 数据类型,主要有三种类型(pattern_channel,list,channel),此类型根据redis来定
| key
| 关键词
| host
| 存放的地址
| port
| 端口号
| filter
| 数据过滤的条件
| mutate
| 数据格式转换,主要将字符类型转换成数值类型
| output
| 输出的elasticSearch的相关配置,如果是集群的话需将host,port改为cluster=>"name"集群的名称即可
|
启动 logstash
# nohup ./logstash -f index.conf & 如果使用jps命令看到如下进程则表示logstash启动成功
4.4 Kibana安装
# tar -xzvf kibana-4.0.1-linux-x64.tar.gz
#vim ./kibana-4.0.1-linux-x64/config/kibana.yml
修改elasticsearch_url: "http://192.168.84.167:9200"
运行kibana:
#./ kibana-4.0.1-linux-x64 nohup ./kibana &
在浏览器器访问:http://127.0.0.1:5601,如果出现以下界面则表示部署成功
至此,ELK管理系统全部部署完毕。只需将应用系统的日志导入该系统中,然后学习kibana的使用即可对应用系统的日志进行分析和监控
注意:启动各个组件时有一定的顺序要求,Redis和ElasticSearch必须在Logstash和Kibana启动之前启动,一般的启动顺序为:Redis,ElasticSearch,LogStash,Kibana。具体原因可参考简介中的数据流向。
5.使用说明
5.1 ElasticSearch
配置好skynet引擎服务,启动引擎服务:访问:http://ip:9200/_plugin/head,如果ES中有数据进入则表示部署成功,而且日志数据已接入到ES中。如下图所示:

5.2 Kibana
接着访问kibana地址:http://ip:5601,如下图所示,kibana中已有日志数据了(注意右上角时间范围的选择)

使用已定义好的报表:如下图所示,点击DashBoard,打开已定义好的面板

例如选择skynet-log-vspp:会出现下图所示的报表

此时就可以根据这些报表进行分析了。
|
|
|