配置三台服务器组成的ELK集群
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置三台服务器组成的ELK集群相关的知识,希望对你有一定的参考价值。
上一篇里主要是介绍了ES和ES-Head的安装过程,这一篇继续介绍ELK集群的其他核心组件安装过程。
五、安装Logstash:
本案的Logstash安装在10.113.130.117上;燃鹅,Logstash也可以利用多台组成集群,如果未来单台处理不过来,可以把Logstash扩展到其他服务器上。
将logstash.tar.gz解压到指定目录:
# tar -zxvf logstash-5.4.1.tar.gz -C /opt/ # mv /opt/logstash-5.4.1/ /opt/logstash/
logstash三种启动方式,靠参数进行选择:-e sting类型启动,-f 指定配置文件启动,服务启动。
但我们没有通过yum安装,暂时无法以服务方式启动——需要编写启动脚本。
创建简单的配置文件:
# cd /opt/logstash/config # cp sample.conf es-cluster.conf # vim /opt/logstash/config/es-cluster.conf #参考下面的配置信息,Logstash启动后读取/var/log/messages的文件内容 input{ file{ start_position => "beginning" path => ["/var/log/messages "] type => ‘messagelog‘ } } #然后将文件内容发送给ElasticSearch的目标服务器 output{ elasticsearch { hosts => ["10.113.130.116:9200"] } }
完成配置修改后,先启动logstash,看一下运行情况:
# /opt/logstash/bin/logstash -f /opt/logstash/config/es-cluster.conf & #如果看到如下信息,表示启动成功: [INFO ][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>[#<URI::Generic:0x5f86b37e URL://10.113.130.116:9200>]} [INFO ][logstash.pipeline] Starting pipeline {"id"=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>500} [INFO ][logstash.pipeline] Pipeline main started [INFO ][logstash.agent] Successfully started Logstash API endpoint {:port=>9600}
六、安装FileBeats
当Logstash安装完成后,要实现从应用服务器上收集日志的工作,这个工作如果使用Logstash来执行,也是没有问题的。
在应用服务器上,按照以上安装Logstash的操作和配置就可以达到目的;但是Logstash安装繁琐,而且如果仅仅作为收集日志的代理,未免太重。
因此选择官方推荐的FileBeats作为勤劳的工蜂,实现指定文件的扫描、文件内容的收集和发送工作。
让我们看看是不是在5分钟内能完成FileBeats的安装配置吧:
# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.1-x86_64.rpm # rpm -vi filebeat-5.4.1-x86_64.rpm
修改配置文件:
# vim /etc/filebeat/filebeat.yml filebeat.prospectors: - input_type: log paths: - /ane/tomcat/logs/*.log #- /ane/tomcat/logs/*.out input_type: log #----------------------------- Logstash output -------------------------------- output.logstash: # The Logstash hosts hosts: ["10.113.130.117:5044"] worker: 4
配置了日志输出到Logstash之后,建议注释掉输出到Elasticsearch的部分。
启动FileBeats:
- For CentOS: # systemctl start filebeat - For Redhat 6.5: # service filebeat start
如果采用了FileBeat收集日志文件,则可以关闭Logstath的文件读取,从指定的端口读取数据流。
登录到Logstash的服务器(10.113.130.117),修改Logstash的配置文件为如下内容:
# vim /opt/logstash/config/es-cluster.conf input{ stdin{} beats{port => 5044} } output{ elasticsearch { hosts => ["10.113.130.116:9200"] index => "logstash-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }
修改完以后,重启Logstash。
请注意一个细节:logstash-%{+YYYY.MM.dd},不能写成{+YYYY.MM.DD},不然第二天以后的日期显示不正确!下面展示写错的情况:
上面图中的logstash-2017.06.170,是6月18日的日志文件的汇总标题。前一天(17日)是正确的,次日就这样了。
七、安装Kibana
Kibana安装在10.113.130.118上。从官网下载Kibana.tar.gz,解压到/opt目录下:
# tar -zxvf kibana-5.4.0-linux-x86_64.tar.gz -C /opt/ # mv /opt/kibana-5.4.0-linux-x86_64 /opt/kibana/ # cd /opt/
# chown -R elasticsearch:elasticsearch kibana
修改配置文件
# cd kibana/
# vim config/kibana.yml #修改如下选项: Server.port: 5601 Server.host: “0.0.0.0” Elasticsearch.url: “10.113.130.116:9200” Kibana.index: “.kibana” Pid.file: /var/run/kibana.pid
由于kibana文件夹的所有者为Elsticsearch,运行也要以elsticsearch用户身份。
与Elsticsearch的处理方式类似,创建启动脚本:
# vim kibana-start.sh su - elasticsearch -c "nohup /opt/kibana/bin/kibana> /dev/null 2>&1 &" # chmod +x kibana-start.sh # mv kibana-start.sh /usr/local/bin
#kibana-start.sh
Kibana启动以后,在浏览器输入http://10.113.130.118:5601,可以看到如下页面:
八、安装ElasticHD
ElasticHD 是一款 ElasticSearch的可视化应用。不依赖ES的插件安装,更便捷;导航栏直接填写对应的ES IP和端口就可以操作ES了。目前支持如下功能:
- ES 实时搜索
- ES DashBoard 数据可视化
- ES Index Template (在线修改、查看、上传)
- SQL Converts to DSL
- ES 基本查询文档
详见:https://github.com/farmerx/elasticHD/wiki
登录到第一台服务器(10.113.130.116),下载对应的elasticHD版本,上传到服务器:
# unzip xxx_elasticHd_xxx.zip
# mv ElasticHD /opt/ # chmod 777 ElasticHD
可指定ip端口运行elastichd
# /opt/ElasticHD -p 10.113.130.116:9800 &
同样,推荐将上方的启动命令,制作成启动脚本eshd-start.sh,并移动到/usr/local/bin/目录下,可直接执行。
安装成功后,在浏览器输入配置的地址和端口,看到如下画面:
以上是关于配置三台服务器组成的ELK集群的主要内容,如果未能解决你的问题,请参考以下文章