ELK浅析(1)
ELK简介
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。主要负责将日志索引并存储起来,方便业务方检索查询。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。是一个日志收集、过滤、转发的中间件,主要负责将各条业务线的各类日志统一收集、过滤后,转发给 Elasticsearch 进行下一步处理。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
ELK框架
组件安装
先从ELK官网(https://www.elastic.co/guide/index.html)下载如下三个组件:
elasticsearch-xx.xx.xx-linux-x86_64.tar.gz
kibana-xx.xx.xx-linux-x86_64.tar.gz
logstash-xx.xx.xx.tar.gz
安装elasticsearch
第一步 安装依赖包
yum -y install tomcat
第二步 解压压缩包
tar -xf elasticsearch-xx.xx.xx-linux-x86_64.tar.gz
第三步 修改配置
进入解压目录下的config
echo "network.host: 0.0.0.0" >> elasticsearch.yml
echo "http.port: 9200" >> elasticsearch.yml
echo "http.cors.enabled: true" >> elasticsearch.yml
echo "http.cors.allow-origin: \"*\"" >> elasticsearch.yml
单节点
echo "node.name: node-1" >> elasticsearch.yml
echo "discovery.seed_hosts: [\"127.0.0.1\"]" >> elasticsearch.yml
echo "cluster.initial_master_nodes: [\"node-1\"]" >> elasticsearch.yml
多节点
每个节点配置不同的node.name与initial_master_nodes对应
echo "discovery.seed_hosts: [\"IP1\",\"IP2\"......]" >> elasticsearch.yml
echo "cluster.initial_master_nodes: ["node-1","node-2"......]" >> elasticsearch.yml
第四步 创建用户(无法使用root启动)
创建用户组
groupadd elk
创建用户
useradd elk -g elk -p 123456
第五步 设置目录所属
修改解压后的目录的所属
chown -R elk:elk elasticsearch-xx.xx.xx
第六步 设置线程数
echo "* soft nproc 4096" >> /etc/security/limits.conf
echo "* hard nproc 4096" >> /etc/security/limits.conf
echo "root soft nproc 4096" >> /etc/security/limits.conf
echo "root hard nproc 4096" >> /etc/security/limits.conf
第七步 增大内存映射
echo "vm.max_map_count = 655360" >> /etc/sysctl.conf
sysctl -p
第八步 启动
切换用户
su elk
进入解压后的目录下的bin,启动
nohup sh elasticsearch > /dev/null 2>&1 & 或 ./elasticsearch -d
安装elasticsearch异常解决
错误
错误一
解决
修改elasticsearch-env的122行
将< <(env)改为<<<“env”
错误二
解决
echo “vm.max_map_count = 655360” >> /etc/sysctl.conf
sysctl -p
echo “* soft nproc 4096” >> /etc/security/limits.conf
echo “* hard nproc 4096” >> /etc/security/limits.conf
echo “root soft nproc 4096” >> /etc/security/limits.conf
echo “root hard nproc 4096” >> /etc/security/limits.conf
错误三
解决
修改配置文件elasticsearch.yml
根据节点个数配置
在# --------------------------------- Discovery ----------------------------------中添加
discovery.seed_hosts: [“IP1”,“IP2”…]
cluster.initial_master_nodes: [“node-1”,“node-2”…]
错误四
解决
echo “* soft nofile 65536” >> /etc/security/limits.conf
echo “* hard nofile 65536” >> /etc/security/limits.conf
echo “root soft nofile 65536” >> /etc/security/limits.conf
echo “root hard nofile 65536” >> /etc/security/limits.conf
警告
警告一
解决
检查elasticsearch.yml配置文件
node.name配置与cluster.initial_master_nodes相同
安装kibana
第一步 安装依赖包
yum -y install tomcat
第二步 解压
tar -xf kibana-xx.xx.xx-linux-x86_64.tar.gz
第三步 配置
进入解压目录下的config
echo "server.port: 5601" >> kibana.yml
echo "server.host: \"0.0.0.0\"" >> kibana.yml
echo "elasticsearch.hosts: [\"http://localhost:9200\"]" >> kibana.yml
echo "kibana.index: \".kibana\"" >> kibana.yml
echo "pid.file: ../run/kibana.pid" >> kibana.yml
echo "logging.dest: ../log/kibana.log" >> kibana.yml
echo "i18n.locale: \"zh-CN\"" >> kibana.yml
第四步 设置目录所属
修改解压后的目录的所属
chown -R elk:elk kibana-xx.xx.xx
第五步 启动
切换用户
su elk
进入解压后的目录下的bin,启动
nohup sh kibana > /dev/null 2>&1 &
安装logstash
第一步 安装依赖包
yum -y install tomcat
第二步 解压
tar -xf logstash-xx.xx.xx.tar.gz
第三步 安装插件
进入解压后的目录下的bin
在线安装
./logstash-plugin install 插件名
离线安装(离线下载需要打包插件)
./logstash-plugin install file://path/packet_name.zip
第四步 配置自定义文件
第五步 启动
进入解压后的目录下的bin,启动
nohup sh logstash -f 自定义配置文件 > /dev/null 2>&1 &
结语
至此,本章内容结束,希望大家有所收获,后面关于ELK还会有几篇文章,主要讲述配置等,敬请期待。