我搞了一个运维群,今天特地找 30 基友。众所周知,现在 DevOps 很火。开发说实在也必须要懂点运维。废话不多说,直接开搞 elk。
ELK,也就是 Elasticsearch、Logstash、Kibana三者的结合,是一套开源的分布式日志管理方案,现应用很广泛,包括github也使用Elasticsearch来进行搜索代码。现在基本上很多大型的互联网公司都在使用 elk。所以运维工程师和开发工程师都有必要了解并深入一下。
Elasticsearch:负责日志存储、检索和分析
LogStash:负责日志的收集、处理
Kibana:负责日志的可视化,,形成可见的 WEB 界面。
另外由于数据量过大后,LogStash 比较沉重,又加进来了 filebeat。
整个的业务采集流程为:filebeat定义nginx日志路径并采集,然后发送给logstash之后logstash存储到es,最后在kibana展示。
本次我搭建的过程采用的是官网最新版 7.1.1 版本。
安装包下载地址:https://www.elastic.co/cn/downloads/
服务器本地测试Elasticsearch:
curl-X GEThttp://localhost:9200
elk不可以用root启动,否则在服务启动的时候会直接报错,创建用户组和用户:
groupadd elk
useradd -m -s /bin/bash -d /home/elk -g elk elk
JDK 1.8
需要进行一些系统参数优化:
/etc/sysctl.conf
分别对安装包进行解压后,进行配置:
elasticsearch配置:
启动elasticsearch:bin/elasticsearch &
查看进程:ps -ef | grep -v grep | grep -i elasticsearch
logstash配置:
input {
beats {
port => 5046
}
}
output {
elasticsearch {
hosts => ["es服务器ip:es端口"]
index => "test-filebeat-%{type}"
}
stdout { codec => rubydebug }
}
启动logstash:
./bin/logstash -f config/filebeat.test.conf &
kibana配置:
启动kibana:
bin/kibana &
filebeat配置:
注意:此处配置 filebeat 将日志发送给 logstash而不是 es。
启动filebeat:
./filebeat -e -c filebeat.yml &
接下来可以登录到 kibana可视化界面,进行采集 Nginx 日志。
创建索引:filebeat *
Kibana 可视化管理页面详细使用说明:
使用浏览器访问 ip:5601 默认端口,进入首页
Discover:日志管理视图 主要进行搜索和查询
Visualize:统计视图 构建可视化的图表
Dashboard:仪表视图 将构建的图表组合形成图表盘
Timelion:时间轴视图 随着时间流逝的数据
APM:性能管理视图 应用程序的性能管理系统
Canvas:大屏展示图
Dev Tools:开发者命令视图 开发工具
Monitoring:健康视图 请求访问性能预警
Management:管理视图 管理工具
其中最主要也是最常用到的是前三个以及最后一个管理角色和用户包括创建索引。
当你在 GitHub 上搜索时,Elasticsearch 可以实现代码级的搜索与高亮显示 ;当你在网上购物时,ES 可为你推荐喜欢的商品;当你下班打车回家时,ES 可以通过定位附近的乘客和司机,帮助平台优化调度。
其实,想要掌握 Elasticsearch,除了要理解其分布式架构的原理外,还要了解一些信息检索领域的知识和相关技巧。
分享给你一张 Elasticsearch 核心知识图谱,只有对每一个知识点仔细梳理并深入理解,才能解决工作中的实际问题。
△扫我的海报试读或订阅
购买后私聊我加运维群
说了半天,是时候上目录了,
想要干货往下看: