ELK
默认端口: 5601
E:es(elasticsearch)
L:logstash
K:kibana
一般情况下日志数据的筛选—>Shell sed awk grep:简单的信息筛选
如果海量日志筛选用shell会遇到问题
1.海量信息搜索,效率低
2.如何对海量信息进行多维度分析(日志分析系统)
以上问题日志分析可以解决
日志分析系统的方案:ELF/EFK/gray log/流式分析/ELK(使用的比较多)
日志分析系统作用:
1.信息检索—>快速找到bug—>修复、优化
2.服务诊断—>负载情况和运行状态—>进行优化
3.数据分析
日志系统的角色(组件)
1、采集端agent:采集日志源数据,对数据进行封装并发送给聚合端
2、聚合端collector:搜集来自多个采集端的日志数据,并按照一定规则进行数据的处理(例如:索引)
3、存储端storage:负责存储来自聚合端的数据
Data collection:数据的收集
Data processing:数据的处理
Storage:数据存储
Visualize:数据的可视化
Redis:消息队列(可以选择不加,访问量不多的情况下),起到消峰的作用,缓解服务器的压力
Beats:对数据的采集可以达到行级别
Logstash:数据的处理,使数据存储更方便,建立索引
Elastic search:直接对数据的索引存储
Kibana:从es里面拿取数据进行显示,有内置的一些分析工具,将数据进行分析、筛选
环境:
主机 | ip |
---|---|
host1 | 192.168.10.30 |
host2 | 192.168.10.40 |
host3 | 192.168.10.50 |
host4 | 192.168.10.60 |
环境准备:
因为做日志分析,时间比较重要 实验失败的原因 可能是时间没有同步,所以需要去同步国家授时中心
时间同步:(四台都做)
[root@localhost ~]# ntpdate ntp.ntsc.ac.cn
27 Jan 11:30:08 ntpdate[6624]: adjust time server 114.118.7.161 offset -0.007301 sec
第一台主机:安装es和jdk环境:
安装es:
[root@localhost ~]# vim /etc/security/limits.conf
#末尾添加
* hard nofile 819200
* soft nofile 819200
* soft nproc 2048
* hard nproc 4096
[root@localhost ~]# vim /etc/sysctl.conf
#末尾添加
vm.max_map_count = 655360
[root@localhost ~]# sysctl -p
vm.max_map_count = 655360
[root@localhost ~]# vim /etc/selinux/config
#修改
SELINUX=disabled
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# reboot #重启主机
[root@localhost ~]# ulimit -n
819200
[root@localhost ~]# sysctl -p
vm.max_map_count = 655360
[root@localhost ~]# groupadd es
[root@localhost ~]# useradd es -g es
[root@localhost ~]# tar -zxf elasticsearch-6.3.2.tar.gz
[root@localhost ~]# mv elasticsearch-6.3.2 /usr/local/es
[root@localhost ~]# mkdir -p /es/{data,logs}
[root@localhost ~]# chown -R es:es /es/
[root@localhost ~]