一、ELK简介
Elk是指elasticsearch,logstash,kibana三件套,我们一般使用它们做日志分析 ELK+redis关系
rsyslog 启动---->logstash elasticsearch---logstash---->kibana elasticsearch---logstash---->redis
实时文件存储,每个字段都可被索引
分布式实时分析搜索引擎
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
X-pack 监控组件使您可以通过Kibana轻松地监控ElasticSearch。您可以实时查看集群的健康和性能,以及分析过去的集群、索引和节点度量。此外,您可以监视Kibana本身性能。当你安装X-pack在群集上,监控代理运行在每个节点上收集和指数指标从Elasticsearch。安装在X-pack在Kibana上,您可以查看通过一套专门的仪表板监控数据。
二、ELK安装部署
2.1准备环境
yum update Java 1.8 环境 yum -y install java java -version yum -y install lrzsz
2.2安装elasticsearch
2.2.1官网选择版本下载安装
rz elastic mkdir /data/server # 目录建设规范 tar -zxvf 解压包 /data/server/ mv elastic /data/server # 放到标准目录里 useradd elastic # 新建elastic用户 chown -R elastic.elastic /data/server/elasticserver/ ll # 查看所属用户 ps aux | grep elastic su elastic ./bin/elasticsearch vim /etc/security/limit elastic soft memlock unlimited elastic hard memlock unlimited * soft nofile 655366 * hard nofile 100002 vim /etc/sysctl.conf vm.max_map_count=362144 sysctl -p vim config/elasticsearch/yml bootstrap.memory_lock: true network.host: 192.168.234.129 http.port: 9200 node.max_local_storage_nodes: 256 rm -rf data/nodes/0/node.lock # 若锁住错误 vim config/jvm.options -Xms1g -Xmx1g ulimit -n ulimit -s 655355
2.2.2 启动elasticsearch
/data/server/elasticsearch-5.6.8/bin/elasticsearch netstat -pantu | grep "9200"
tips
1.关闭防火墙
永久关闭selinux 修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。 setenforce 0 #即时生效 systemctl stop firewalld.service
2.elastic需要专用的用户启动
useradd elastic # 新建elastic用户 chown -R elastic.elastic /data/server/elasticserver/
3.Java地址问题
ps aux |grep java pkill -9 java
4.要求改变data
出现data错误时 ps aux |grep log kill log 进程 kill -9
5.若遇见lock 锁住
vim config/elasticsearch/yml node.max_local_storage_nodes: 256 rm -rf data/nodes/0/node.lock # 若锁住错误
6.系统内存不足需要elastic优化
vim config/jvm.options -Xms1g -Xmx1g ulimit -n ulimit -s 655355
7.主机优化
vim /etc/sysctl.conf vm.max_map_count=362144 sysctl -p
8.FATAL Port 5601 is already in use. Another instance of Kibana may be running!
fuser -n tcp 5601 kill -9 56948
3.安装配置logstash
Logstash 是Elasticsearch 数据管道
Logstash :input output 可选:filter
3.1上传文件并且安装
tar -zxvf logstash mv logstash /data/server/ vim /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 *.* @192.168.23.166:5000 vim /data/server/conf/syslog.conf input{ tcp{ port => 5000 type => syslog } udp{ port => 5000 type =>syslog } } output{ elasticsearch { hosts =>["192.168.23.166:9200"] index => "zhj" } stdout {} }
3.2启动
systemctl start rsyslog su elastic /data/server/elasticsearch-5.6.8/bin/elasticsearch exit /data/server/logstash-5.6.8/bin/logstash -f /data/server/conf/syslog.conf logger -p info "hello, remote rsyslog"#手工添加日志信息
4.安装配置kibana
4.1安装kibana
vim /data/server/conf/syslog.conf input{ tcp{ port => 5000 type => syslog } udp{ port => 5000 type =>syslog } } output{ elasticsearch { hosts => ["192.168.23.166:9200"] index => "zhj-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } } su kibana vim /data/server/kibana-5.6.8-linux-x86_64/config/kibana.yml server.port: 5601 server.host: "192.168.23.166" elasticsearch.url: "http://192.168.23.166:9200" :wq
4.2启动
/data/server/kibana-5.6.8-linux-x86_64/bin/kibana 登录kibana http://192.168.23.166:5601 查看索引: http://192.168.23.166:9200/_cat/indices?v
tips
1.kibana 不能实时抓日志
修改主机服务时间
date -s "2018-05-20 10:00:00"
2.kibana在使用
ps -ef|grep kibana ps -ef|grep 5601 都找不到 尝试 使用 fuser -n tcp 5601 kill -9 端口 启动即可 ./kibana
5.安装配置redis
5.1安装redis
将log日志放在redis上,然后redis将日志转到elastic上
上传Redis-3.2.1.tar.gz包,解压到/data/server/ yum -y install tcl* # redis 库依赖 cd /data/server/redis-3.2.1 make && make install vim /data/server/conf/syslog.conf input{ tcp{ port => 5000 type => syslog } udp{ port => 5000 type =>syslog } } output { redis { host => "192.168.23.166" port => "6379" data_type => "list" key => "sys_log:redis" } } input { redis { host => "192.168.23.166" port => "6379" data_type => "list" key => "sys_log:redis" type => "redis-input" } } output { elasticsearch { hosts => "192.168.23.166:9200" index => "zhj" } stdout { codec => rubydebug } }
5.2启动
连接客户端,查看日志
配置中redis.conf文件中修改bind值为192.168.23.166 systemctl start rsyslog su elastic /data/server/elasticsearch-5.6.8/bin/elasticsearch /data/server/redis-3.2.1/src/redis-server /data/server/redis-3.2.1/redis.conf /data/server/logstash-5.6.8/bin/logstash -f /data/server/conf/syslog.conf /data/server/redis-3.2.1/src/redis-cli -h 192.168.234.129 #启动kibana /data/server/kibana-5.6.8-linux-x86_64/bin/kibana /data/server/redis-3.2.1/src/redis-cli -p 6379 keys *
6 x-pack 插件的安装
6.1elasticsearch 安装x-pack
/data/server/elasticsearch-5.6.8/bin/elasticsearch-plugin install x-pack
一路 y
6.2kibana 安装x-pack
/data/server/kibana-5.6.8-linux-x86_64/bin/kibana-plugin install x-pack 增加 elastic user => "elastic" password => "changeme"
6.3手动离线安装
6.4破解graph 版本
luyten java反编译
参考
1.自己的有道笔记
2.各组件原理介绍请看 ELK原理
未来计划
找时间在优化下排版和配图吧...太糟糕了-.-||