ELK部署实战
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
简单的来说ELK是日志收集,存储,可视化的一套组件。如果你看过我之前分享关于大数据生态圈的Flume组件。Flume也是一款日志收集工具,它处理的是非铭感日志数据,换句话说,大数据日志收集工具Flume一般处理不重要的数据,当然你也可以说是处理价值密度低的数据。
一.ELK包含的组件
1>.Elasticsearch
存储所有的日志,建立索引,搜索的功能
1.1>.易于部署,
1.2>.竖直和水平可进行伸缩。
1.3>.API易于使用
1.4>.多与大多数编程/脚本语言都可以模块化(支持Python API进行查询,大量的查询和过滤选项都可以使用json语句。 灵活可控。)。
1.5>.友好的在线文档
1.6>.免费。
2>.Logstash
类似于flume(只不过flume一般和Kafka结合使用,而logstash主要是和Elasticsearch结合使用),收集日志的。它的数据源包括:
2.1>.Windows Event Logs
2.2>.Syslog
2.3>.Bro(session data/dpi)
2.4>.SiLK(flow)
2.5>.SNMP
2.6>.PCAP(stored on disk,index information in ES)
3>.Kibana
它是一个可视化工具(类似于R语言),即它是一个webUI的接口,它可以通过nginx服务端进行代理,其特点如下:
3.1>.批量分析
3.2>.数据集关联
3.3>.生成图标进行显示
3.4>.报警
4>.Filebeat
一般用作日志代理,通过网络协议传输logstash。类似于Flume的spooldir组件(提取文件的内容),因此filebeat一般安装在客户端服务器上。大致拓扑如下图所示:
5>.ELK关系
上图可以简单的描述为:Logstash(collect功能,相当于Flume) ---> Elasticsearch(storage + index + search,相当于Kafka) ---> kibana (view提供友好的web界面,类似于R语言)。
6>.集群部署环境
本篇博客采用的CentOS官网的“CentOS Linux release 7.2.1511 (Core) ”linux发行版,具体配置信息如下:
如果你是CentOS Linux release 6.x系列可以参考我之前的笔记:https://www.cnblogs.com/yinzhengjie/p/7745743.html
二.安装Elasticsearch
关于ELK的所有安装包我已经下载好了,放在百度云啦:链接:https://pan.baidu.com/s/1JxnGPSyv8QiDK74o3G2Jug 密码:bn9c
1>.安装JDK
[yinzhengjie@s101 Elk]$ java -version #配置好java的环境变量后要验证一下当前的版本 java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) [yinzhengjie@s101 Elk]$
2>.导入 the Elasticsearch public GPG key
[yinzhengjie@s101 ~]$ sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch [sudo] password for yinzhengjie: [yinzhengjie@s101 ~]$
3>.创建 /etc/yum.repos.d/elasticsearch.repo 仓库文件
[yinzhengjie@s101 ~]$ sudo vi /etc/yum.repos.d/elasticsearch.repo [yinzhengjie@s101 ~]$ [yinzhengjie@s101 ~]$ more /etc/yum.repos.d/elasticsearch.repo [elasticsearch-2.x] name=Elasticsearch repository for 2.x package baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1 [yinzhengjie@s101 ~]$
4>.通过yum的方式安装Elasticsearch
[yinzhengjie@s101 ~]$ sudo yum -y install elasticsearch Loaded plugins: fastestmirror base | 3.6 kB 00:00:00 elasticsearch-2.x | 2.9 kB 00:00:00 extras | 3.4 kB 00:00:00 mysql-connectors-community | 2.5 kB 00:00:00 mysql-tools-community | 2.5 kB 00:00:00 mysql56-community | 2.5 kB 00:00:00 updates | 3.4 kB 00:00:00 elasticsearch-2.x/primary_db | 9.3 kB 00:00:00 Loading mirror speeds from cached hostfile * base: mirrors.shu.edu.cn * extras: mirrors.huaweicloud.com * updates: mirrors.zju.edu.cn Resolving Dependencies --> Running transaction check ---> Package elasticsearch.noarch 0:2.4.6-1 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================================================================= Package Arch Version Repository Size ======================================================================================================================================================================================= Installing: elasticsearch noarch 2.4.6-1 elasticsearch-2.x 26 M Transaction Summary ======================================================================================================================================================================================= Install 1 Package Total download size: 26 M Installed size: 29 M Downloading packages: elasticsearch-2.4.6.rpm | 26 MB 00:02:14 Running transaction check Running transaction test Transaction test succeeded Running transaction Creating elasticsearch group... OK Creating elasticsearch user... OK Installing : elasticsearch-2.4.6-1.noarch 1/1 ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service ### You can start elasticsearch service by executing sudo systemctl start elasticsearch.service Verifying : elasticsearch-2.4.6-1.noarch 1/1 Installed: elasticsearch.noarch 0:2.4.6-1 Complete! [yinzhengjie@s101 ~]$