ELK + Redis 日志分析系统 -学习第一天

来源:互联网 发布:知乎周刊合集 编辑:程序博客网 时间:2024/06/07 15:03

ELKElasticsearchLogstashKibana三部分组件组成;


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

1
2
3
4
5
6
# 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的配置信息,用于快速测试,直接输出到屏幕。

1
2
3
4
5
# 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格式输出到屏幕。

1
2
3
4
5
6
7
8
9
10
# 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 在你的安装路径下自己新建。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 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】




0 0
原创粉丝点击