架构
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等。
Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。
Logstash官方的解析是: 开源,数据处理管道,用于多种输入渠道,处理后,发送到你favorite“Stash”。logstash
kibana 也是一个开源和免费的工具,他 Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
部署:
日志采集点的服务器部署Logstash
Logstash依赖JDK,Logstash 1.5 以上版本不低于 java7 推荐使用最新版本的 Java 。由于我们只是运行 Java 程序,而不是开发,下载 JRE 即可。
以下为JAVA运行环境的配置,省略过。
wget http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz
https://download.elastic.co/logstash/logstash/logstash-1.5.2.tar.gz
# tarzxf logstash-1.5.2.tar.gz -C /usr/local/
由于JRE环境变量配置后,影响其他的应用。所以有两个做法,第一个,创建用户,设置用户的单独环境变量。第二个,将环境变量写入Logstash的开启文件中。幸运的是,ELK的架构,多了一个新成员"Beats",其中的Filebeatwww.elastic.co/products/beats/filebeat。最惊艳的是,logstash 和filebeat之间可以自动根据压力,调整传输。并且filebeat不是基于java的,也就没有环境变量这个问题了。
Filebeat uses a backpressure-sensitive protocol when sending data to Logstash or Elasticsearch to account for higher volumes of data. If Logstash is busy crunching data, it lets Filebeat know to slow down its read. Once the congestion is resolved, Filebeat will build back up to its original pace and keep on shippin'.
安装ElasticSearch
# wget -c https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.tar.gz
# tar zxvf elasticsearch-1.7.2.tar.gz -C /usr/local
[root@ELK config]# egrep '^[^#]' /usr/local/elasticsearch-1.7.2/config/elasticsearch.yml
network.host: 216.75.6.190
discovery.zen.ping.multicast.enabled: false
#启动ELK
nohup /usr/local/elasticsearch-1.6.0/bin/elasticsearch >nohup &
其实 ./elasticsearch -d 应该也是可以的。
启动后,排查端口是否正常占用
# netstat -anp |grep :9200
#测试Elastic成功接受到数据,可以在Logstash中模拟接受到日志,转发到Elasticsearch。 然后在Elasticsearch中搜索:
# curl 'http://localhost:9200/_search?pretty'
安装Kibana
# wget https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gz
# tar zxf kibana-4.1.2-linux-x64.tar.gz -C /usr/local
启动Kinaba
# /usr/local/kibana-4.1.2-linux-x64/bin/kibana
Kibanna授权
由于Kibana没有附带权限管理,因此采用nginx的auth模块代为管理。
网友评论