目录
二:下载 elasticsearch,kibana,logstash,filebeat。(如果拉的慢可以用迅雷下载,再拖服务器上)
简介
1、核心组成
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
2、四大组件
Logstash: logstash server端用来搜集日志;
Elasticsearch: 存储各类日志;
Kibana: web化接口用作查寻和可视化日志;
Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server;
3、ELK工作流程
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
一:rpm安装jdk
根据官方的描述,
Elasticsearch要求是java8以上。
Logstash要求是Java 8,不支持Java 9。
jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[root@tiger-elk ~]# yum -y install git wget lsof net-tools lrzsz
[root@tiger-elk ~]# rpm -ivh jdk-8u221-linux-x64.rpm
[root@tiger-elk ~]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
jdk这就安装完成了
二:下载 elasticsearch,kibana,logstash,filebeat。(如果拉的慢可以用迅雷下载,再拖服务器上)
[root@tiger-elk ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm
[root@tiger-elk ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm
[root@tiger-elk ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm
[root@tiger-elk ~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-x86_64.rpm
三:yum安装elasticsearch
3.1:安装软件
[root@tiger-elk ~]# rpm -ivh elasticsearch-6.2.4.rpm
3.2:创建/data/iii目录,用于elasticsearch数据的存放
[root@tiger-elk ~]# mkdir -p /data/iii
3.3:修改该目录的拥有者为elasticsearch
[root@tiger-elk ~]# chown -R elasticsearch:elasticsearch /data/iii
3.4:创建/log/kkk目录,用于elasticsearch日志的存放
[root@tiger-elk ~]# mkdir -p /log/kkk
3.5:修改该目录的拥有者为elasticsearch
[root@tiger-elk ~]# chown -R elasticsearch:elasticsearch /log/kkk
3.6:修改配置文件elasticsearch.yml
[root@tiger-elk ~]# vim /etc/elasticsearch/elasticsearch.yml
path.data: /data/iii #设置data存放的路径为/data/iii
path.logs: /log/kkk #设置logs日志的路径为/log/kkk
bootstrap.memory_lock: false #设置内存不使用交换分区,配置了bootstrap.memory_lock为true时反而会引发9200不会被监听,原因不明
network.host: 0.0.0.0 #设置允许所有ip可以连接该elasticsearch
http.port: 9200 #开启监听的端口为9200
#增加新的参数,为了让elasticsearch-head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
3.7:启动elasticsearch
[root@tiger-elk ~]# systemctl start elasticsearch
[root@tiger-elk ~]# systemctl status elasticsearch
[root@tiger-elk ~]# systemctl enable elasticsearch
3.8:开启9200端口
[root@tiger-elk ~]# firewall-cmd --add-port=9200/tcp --permanent
[root@tiger-elk ~]# firewall-cmd --reload
3.9:测试安装是否成功
[root@tiger-elk ~]# netstat -antp |grep 9200
tcp6 0 0 :::9200 :::* LISTEN 11003/java
[root@tiger-elk ~]# curl http://127.0.0.1:9200
{
"name" : "Zg97qb2",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Bppz2-2SSGWErzUtocLZcg",
"version" : {
"number" : "6.2.4",
"build_hash" : "ccec39f",
"build_date" : "2018-04-12T20:37:28.497551Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
四:部署logstash
4.1:安装软件
[root@tiger-elk ~]# rpm -ivh logstash-6.2.4.rpm
4.2:创建/data/dcc目录,用于logstash数据的存放
[root@tiger-elk ~]# mkdir -p /data/dcc
4.3:修改该目录的拥有者为logstash
[root@tiger-elk ~]# chown -R logstash:logstash /data/dcc
4.4:创建/log/dzz目录,用于logstash日志的存放
[root@tiger-elk ~]# mkdir -p /log/dzz
4.5:修改该目录的拥有者为logstash
[root@tiger-elk ~]# chown -R logstash:logstash /log/dzz
4.6:修改配置文件logstash.yml
[root@tiger-elk ~]# vim /etc/logstash/logstash.yml
path.data: /data/dcc # 设置数据的存储路径为/data/dcc
path.config: /etc/logstash/conf.d # 设置管道配置文件路径为/etc/logstash/conf.d
path.logs: /log/dzz # 设置日志文件的存储路径为/log/dzz
4.7:启动logstash
[root@tiger-elk ~]# systemctl start logstash
[root@tiger-elk ~]# systemctl status logstash
[root@tiger-elk ~]# systemctl enable logstash
4.8:测试安装是否成功
创建一个软连接,每次执行命令的时候不用在写安装路径(yum安装是在/usr/share下)
[root@tiger-elk ~]# ln -s /usr/share/logstash/bin/logstash /bin/
执行logstash的命令
[root@tiger-elk ~]# logstash -e 'input { stdin { } } output { stdout {} }'
等待片刻后出现“The stdin plugin is now waiting for input:”,输入“abc”回车,有返回的输出。
ctrl+c退出。
如果标准输出还有elasticsearch中都需要保留,看下面
192.168.3.31是试验elk的ip
[root@tiger-elk ~]# /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.3.31:9200"] } stdout { codec => rubydebug }}'
五:部署kibana
5.1:安装软件
[root@tiger-elk ~]# rpm -ivh kibana-6.2.4-x86_64.rpm
5.2:修改kibana.yml
[root@tiger-elk ~]# vim /etc/kibana/kibana.yml
server.port: 5601 #kibana页面映射在5601端口
server.host: "0.0.0.0" #允许所有ip访问5601端口
elasticsearch.url: "http://localhost:9200" #elasticsearch所在的ip及监听的地址
kibana.index: ".kibana"
5.3 启动kibana
[root@tiger-elk ~]# systemctl start kibana
[root@tiger-elk ~]# systemctl status kibana
[root@tiger-elk ~]# systemctl enable kibana
5.4 开放端口5601
[root@tiger-elk ~]# firewall-cmd --add-port=5601/tcp --permanent
[root@tiger-elk ~]# firewall-cmd --reload
现在就可以访问了:192.168.3.31:5601
六:汉化kibana
[root@tiger-elk ~]# git clone https://github.com/anbai-inc/Kibana_Hanization.git
[root@tiger-elk ~]# cd Kibana_Hanization/old/
[root@tiger-elk ~]# python main.py /usr/share/kibana/
执行完毕会提示汉化完成,之后重启下kibana就好了