“ELK”是三个开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。Elasticsearch是一个搜索和分析引擎。Logstash是一个服务器端数据处理管道,它同时从多个源中提取数据,对其进行转换,而后将其发送到像Elasticsearch这样的“存储”。Kibana容许用户使用Elasticsearch中的图表和图形可视化数据。java
在全部须要收集日志的服务上部署logstash,做为logstashagent用于监控并过滤所手机的日志,将过滤后的内容整合在一块儿,最终所有交给elasticsearch检索引擎;能够用elasticsearch进行自定义搜索,再经过Kibana结合自定义搜索内容生成图标,进行日志展现。node
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并做为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,可以达到实时搜索,稳定,可靠,快速,安装使用方便。linux
部署环境web
关闭防火墙及selinuxbootstrap
主机名 | IP地址 | 所用软件 |
---|---|---|
node-1 | 192.168.10.19 | Elasticsearch、logstash、kibana |
node-1 | 192.168.10.20 | Elasticsearch、logstash、kibana |
es群集须要两台虚拟机,一台做为主,一台做为从。两台服务器的软件安装方式都相同,不一样之处在于软件的配置文件的修改,可是也是区别不大。vim
安装es软件
加载gpg验证密钥
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearchcentos
建立yum仓库服务器
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch vim /etc/yum.repos.d/elasticsearch.repo [elasticsearch-2.x] name=Elasticsearch repository for 2.x packages baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enable=1 yum list
yum install elasticsearch -y yum install java -y
vim /etc/elasticsearch/elasticsearch.yml cluster.name: jius //自定义,两台服务器保持一致 node.name: linux-node1 //节点名称两台服务器各不相同 path.data: /data/es-data //自定义,需手动建立,若不建立服务会启动失败 path.logs: /var/log/elasticsearch/ //默认路径,不可更改 bootstrap.memory_lock: true //开启防止交换分区,避免数据丢失 network.host: 0.0.0.0 //容许任意地址监听 http.port: 9200 //开启服务器端口 discovery.zen.ping.unicast.hosts: ["192.168.10.19", "192.168.10.20"] //识别形式选用单播,host1为本地地址,host2为对方地址,在两一台服务器上地址书写顺序相反
mkdir -p /data/es-data chown -R elasticsearch:elasticsearch /data/es-data/ //用户在安装软件时自动建立
vim /etc/security/limits.conf //如下内容文件末尾插入便可 elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited //普通用户内存解锁 * soft nofile 65535 * hard nofile 65535 //文件限制
启动服务elasticsearch
systemctl start elasticsearch.service netstat -ntap | grep 9200
加载es插件分布式
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
访问网页
数据一般以多种格式分散在许多系统中。Logstash支持各类输入,这些输入同时从众多公共源中提取事件。经过连续的流媒体方式轻松从日志,指标,Web应用程序,数据存储和各类AWS服务中提取数据。实验中并非两台服务器都须要安装该软件,当你须要分析某个服务器中的日志文件时,便可安装。
vim /etc/yum.repos.d/logstash.repo [logstash-2.1] name=Logstash repository for 2.1.x packages baseurl=http://packages.elastic.co/logstash/2.1/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enable=1 yum list yum install logstash -y
cd ~ vim file.conf //文件位置自定义,演示是在/目录下建立 input { file { path => "/var/log/messages" //路径为系统日志存放路径 type => "system" //类型自定义 start_position => "beginning" //从头开始获取 } } output { elasticsearch { hosts => ["192.168.10.19:9200"] index => "system-%{+YYYY.MM.dd}" //年月日固定格式 } }
开启收集
ln -s /opt/logstash/bin/logstash /usr/bin/ logstash -f /root/file.conf
软件安装 wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz tar zxvf kibana-4.3.1-linux-x64.tar.gz -C /opt/ mv /opt/kibana-4.3.1-linux-x64/ /usr/local/kibana 配置文件修改 vim /usr/local/kibana/config/kibana.yml server.port: 5601 //开启端口 server.host: "0.0.0.0" elasticsearch.url: "http://172.16.10.21:9200" //此处为es地址 kibana.index: ".kibana"
screen //启用分屏,如果没有该命令,则使用yum安装 /usr/local/kibana/bin/kibana //启用监听 ctrl+a+d //放入后台执行