开源实时日志处理平台ELK搭建流程

1.配置Java开发环境(配置环境变量)
2.安装Logstash
下载并安装Logstash,安装logstash只需将它解压的对应目录即可,例如:/usr/local下:
 在这里不建议在linux环境下到官网下载,太慢,可以在Windows下下载好复制到linux里
 解压:# tar –zxf logstash-2.3.4.tar.gz -C /usr/local/

在logstash安装目录下创建一个“基本配置”测试文件,(例如:logstash-test.conf)文件内容如下:
# vi test.conf
input{ stdin{}}
output{stdout { codec=> rubydebug}}
在当前目录下启动logstash:# ./logstash -f test.conf
成功启动后,随便输入一串字符,会出现相应的ruby格式日志,说明没问题

3.安装elaaticsearch
下载Elasticsearch后,解压到对应的目录就完成Elasticsearch的安装。
# tar -zxf elasticsearch-1.6.0.tar.gz -C /usr/local/

启动Elasticsearch: # /usr/local/elasticsearch-1.6.0/bin/elasticsearch

如果使用远程连接的Linux的方式并想后台运行elasticsearch执行如下命令:
# nohup /usr/local/elasticsearch-1.6.0/bin/elasticsearch >nohup &

如果想要后台运行:# /usr/local/elasticsearch-1.6.0/bin/elasticsearch -d
确认elasticsearch的9200端口已监听,说明elasticsearch已成功运行
# netstat -anp |grep :9200
tcp        0      0 :::9200                     :::*                        LISTEN      3362/java

接下来我们在 logstash安装目录下 创建一个用于测试logstash使用elasticsearch作为logstash的后端的测试文件test2.conf
# vi logstash-es-simple.conf
input { stdin { } }
output {
   elasticsearch {hosts => "本机IP地址或者服务器ip" }
   stdout { codec=> rubydebug }
}

进入/elasticsearch/config/elasticsearch.yml,把设置ip地址命令前面的#号去掉,localhost改成本机IP或者服务器IP,设置端口号前面的#号去掉,端口号改成9200

执行如下命令:# /usr/local/logstash-1.5.2/bin/logstash  -f test2.conf
… …
Logstash startup completed
输入:hello logstash
如果出现
{
      "message" => "hello logstash",
     "@version" => "1",
   "@timestamp" => "2015-07-15T18:12:00.450Z",
         "host" => "noc.vfast.com"
}
安装成功

我们可以使用curl命令发送请求来查看ES是否接收到了数据:
# curl 'http://localhost:9200/_search?pretty'
返回结果
{
  "took": 58,
"timed_out" : false,
"_shards" : {
   "total" : 5,
   "successful" : 5,
   "failed" : 0
  },
  "hits": {
   "total" : 1,
   "max_score" : 1.0,
   "hits" : [ {
     "_index" : "logstash-2015.07.15",
     "_type" : "logs",
     "_id" : "AU6TWiixxDXYhySMyTkP",
     "_score" : 1.0,
     "_source":{"message":"hellologstash","@version":"1","@timestamp":"2015-07-15T20:13:55.199Z","host":"noc.vfast.com"}
    } ]
  }
}

安装elasticsearch插件
Elasticsearch-kopf插件可以查询Elasticsearch中的数据,安装elasticsearch-kopf,只要在你安装Elasticsearch的目录中执行以下命令即可:
# cd /usr/local/elasticsearch-1.6.0/
# ./plugin -install lmenezes/elasticsearch-kopf

4.安装kibana
  下载kibana后,解压到对应的目录就完成kibana的安装
  # tar -zxf kibana-4.1.1-linux-x64.tar.gz -C /usr/local/
进入/kibana/config/kibana.yml,把设置serverport命令前面的#号去掉,serverport改成5601,设置elasticsearch端口号前面的#号去掉,改成 elasticsearch.url: "http://本机ip或者服务器ip:9200"

使用http://kibanaServerIP:5601访问Kibana,登录后,首先,配置一个索引,默认,Kibana的数据被指向Elasticsearch,使用默认的logstash-*的索引名称,并且是基于时间的,点击“Create”即可。点击“Discover”,可以搜索和浏览Elasticsearch中的数据,默认搜索的是最近15分钟的数据。可以自定义选择时间。

5.配置logstash作为Indexer
将logstash配置为索引器,并将logstash的日志数据存储到Elasticsearch,本范例主要是索引本地系统日志。
# vi /usr/local/logstash-1.5.2/logstash-indexer.conf
input {
  file {
    type =>"syslog"
     path => ["/var/log/messages", "/var/log/syslog" ]
  }
  syslog {
    type =>"syslog"
    port =>"5544"
  }
}
output {
  stdout { codec=> rubydebug }
  elasticsearch {host => "localhost" }
}
# /usr/local/logstash-1.5.2/bin/logstash -f logstash-indexer.conf
使用echo命令模拟写入日志,命令执行后看到如下图的信息
# echo "`date` 优衣库视频" >>/var/log/messages
会出现:

kibana里面也会更新相应的日志信息

到此,ELK平台部署和基本的测试已完成。
博文参考:http://www.iyunv.com/thread-89268-1-1.html


为了解决内存太小的问题
  • 修改 bin 目录中 elasticsearch.in.sh 文件,关于Elasticsearch JVM 内存配置大小:

          

        此处可以根据机器硬件配置情况作出适当的调整,一般情况下,此处的内存分配大小为机器物理内存的一半,同时将 ES_MIN_MEM 与 ES_MAX_MEM 配置成相同的值,这样的好处在于ES JVM大小固定,不会上下浮动,从实践效果上看可以提高 node 性能。

为了解决too many open files的问题
  • 检查系统允许 Elasticsearch 打开的最大文件数

        查看 /etc/security/limits.conf,如果没有指定的话,默认是4096。这里应该添加如下两行:

          

        这个值可以根据需要适当的调整的更大。如此,当 Elasticsearch 中存在很多 index 的时候不会出现 Too many open files 的错误。

   ps:修改完系统文件后,需要重启服务器!


为了解决分词问题,需要在elasticsearch.yml中添加一句:








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值