ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。【我的理解类似solr、lucense的搜索引擎,其实后来才知道他根本就是lucense】
Logstash可以日志进行收集、分析,并将其存储的开源工具。【类似Flume的功能,实际上不如Flume好玩。我个人认为】
Kibana。 可以认为是友好的 Web 界面。 把前两个收集整理的数据展现出来。
Redis内存数据库。使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
1、安装jdk
mkdir -p /usr/lib/jvm
tar -xvf jdk-8u45-linux-x64.tar.gz -C /usr/lib/jvm
# vim /etc/profile 配置系统参数
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
|
2、安装logstash
# wget https://download.elastic.co/logstash/logstash/logstash-1.5.4.tar.gz
# tar zxf logstash-1.5.4.tar.gz -C /usr/local/
配置logstash的环境变量
# echo "export PATH=\$PATH:/usr/local/logstash-1.5.4/bin" > /etc/profile.d/logstash.sh
# . /etc/profile
|
3、做 2个测试
1 通过-e参数指定logstash的配置信息,用于快速测试,直接输出到屏幕。
# logstash -e "input {stdin{}} output {stdout{}}"
my name is zhengyansheng. // 手动输入后回车,等待10秒后会有返回结果
Logstash startup completed
2015-10-08T13:55:50.660Z 0.0.0.0 my name is zhengyansheng.
这种输出是直接原封不动的返回...
|
2 通过-e参数指定logstash的配置信息,用于快速测试,以json格式输出到屏幕。
# logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
my name is zhengyansheng. // 手动输入后回车,等待10秒后会有返回结果
Logstash startup completed
{
"message" => "my name is zhengyansheng." ,
"@version" => "1" ,
"@timestamp" => "2015-10-08T13:57:31.851Z" ,
"host" => "0.0.0.0"
}
这种输出是以json格式的返回...
|
4、以配置文件的方式再做个测试
logstash-simple.conf 在你的安装路径下自己新建。
# vim logstash-simple.conf
input { stdin {} }
output {
stdout { codec=> rubydebug }
}
# logstash -f logstash-simple.conf //普通方式启动
Logstash startup completed
# logstash agent -f logstash-simple.conf --verbose //开启debug模式
Pipeline started {:level=>:info}
Logstash startup completed
hello world. // 手动输入hello world.
{
"message" => "hello world." ,
"@version" => "1" ,
"@timestamp" => "2015-10-08T14:01:43.724Z" ,
"host" => "0.0.0.0"
}
效果同命令行配置参数一样...
|
此处,我遇到了一个问题。如下图:
这个是因为,配置文件 logstash-simple.conf 编码不对。
把编码改成 utf-8 的格式就可以了。
什么?
不知道怎么改?
好吧,百度一下自己。【提示,vim :set】
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。