下载 Elasticsearch、Logstash、Kibana
官方地址:https://www.elastic.co/cn/products
cd /usr/local
wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.1.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.1.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.1-linux-x86_64.tar.gz
tar -zxvfelasticsearch-5.6.1.tar.gz
tar -zxvf logstash-5.6.1.tar.gz
tar -zxvf kibana-5.6.1-linux-x86_64.tar.gz
启动Elasticsearch
Elasticsearch不能使用root用户运行
useradd elk
sudo su - elk -c "/usr/local/elasticsearch-5.6.1/bin/elasticsearch"
验证:curlhttp://localhost:9200
启动Logstash
创建配置文件logstash.conf 声明输入-input与输出-output、及文件格式定义-filter
参考:
input {
beats {
port => 5044
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["192.168.12.235:9200"]
}
}
启动:/usr/local/logstash/bin/logstash -f ./logstash.conf
启动Kibana
/usr/local/kibana/bin/kibana
验证:curlhttp://localhost:5601
至此安装完毕,具体配置需要在特定的场景进行调整。
心得:ELK 主要的作用是将日志 标准化、集中化,最终达到可视化的效果。
搭建极其简单,最要的是在配置,整体的规划架构。
配置的影响: 例如对Nginx日志不做处理的,只能起到日志集中化的作用。传输过来的日志信息全部被一个message变量标识着,无法去区分其中的细节,包括源IP、访问页面、状态码等。数据呈现可视化的效果也将极差。所以需要在日志产生时就定义其格式,并在Logstash收集处定义传输输出的日志格式(如源IP、访问页面、状态码都用变量定义起来),再将日志数据传输Elasticsearch。最终在Kibana中对这些数据做可视化。
整体规划的影响:产品的用户上一定规模时,对服务端(Elasticsearch及Kibana)收集日子的能力将是一个非常大的考验。其中包括抗并发、日子处理等。可适当在中间层级引进缓存技术,也可采取分布式的结构的减少这一压力。
学习资料:https://kibana.logstash.es/content/