系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。日志的作用不言而喻,但对于数量庞大且分布在多台机器上的日志,查看就显得特别麻烦了。所以,对于运维人员来说,使用日志分析系统是非常有必要的。
开源实时日志分析ELK平台能够实现日志的监控与分析,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站:https://www.elastic.co/products
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。
kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
ELK工作流程大致如下:
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到logstash indexer,logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
ELK平台搭建:
基于Ubuntu 14.04 64位操作系统搭建
下载ELK安装包:https://www.elastic.co/downloads/
下载完的数据包:
1.安装依赖包jdk8:
1 2
#sudo mkdir /usr/lib/jvm #tar xvzf jdk-8u91-linux-x64.tar.gz -C /usr/lib/jvm/
1
#vim ~/.bashrc
在文档最下部追加
1 2 3 4
export Java_HOME=/usr/lib/jvm/jdk1.8.0_91 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
1
执行:source ~/.bashrc
执行java -version和java,有相应数据即安装完成。
2.安装Logstash:
1
#tar xvzf logstash-2.3.3.tar.gz
在logstash-2.3.3目录下创建logstash-test.conf配置文件,内容如下:
1 2 3 4 5 6
# cat logstash-test.conf input { stdin { } } output { stdout { codec=> rubydebug } }
Logstash使用input和output定义收集日志时的输入和输出的相关配置,本例中input定义了一个叫"stdin"的input,output定义一个叫"stdout"的output。无论我们输入什么字符,Logstash都会按照某种格式来返回我们输入的字符,其中output被定义为"stdout"并使用了codec参数来指定logstash输出格式。
使用如下命令启动:
1
# ./bin/logstash agent -f logstash-test.conf
启动后,你在屏幕上输入什么内容,就会在console里显示出来。如输入"hehe",显示如下: