内容简介:官方网站:如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集
本节索引:
一、Elastic Stack介绍
二、核心组件之ElasticSearch
三、核心组件之Logstash
四、核心组件之Kibana
五、核心组件之Filebeat
一、Elastic Stack介绍
官方网站: https://www.elastic.co/products
主要功能:
(1)日志存储和分析
如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁
琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集
汇总。
集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux
命令能实现检索和统计,但是对于要求更高的查询、 排序 和统计等要求和庞大的机器数量依然使用这样的
方法难免有点力不从心。
开源实时日志分析 elastic stack 平台能够完美的解决我们上述的问题
(2)站内内容搜索
大型搜索引擎需用到实时计算
中小型企业站内搜索不需要实时计算,过去的解决方案一般为:Solr
ElasticSearch 出现后,由于其支持弹性搜索引擎,分布式运行,可运行在多个节点上的优势,逐渐占领
了站内搜索领域,Solr解决方案慢慢被淘汰
搜索引擎一般由两部分组成: 搜索组件与索引组件
搜索组件:提供用户友好的搜索界面,接入用户搜索信息
索引组件:分析、改造原始数据成为适合搜索引擎搜索的数据结构
早期 ELK :核心组成由 ElasticSearch、Logstash 和 Kibana 三个开源 工具 组成
1、 Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜
索)
2、 ElasticSearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索
引副本机制,restful风格接口,多数据源,自动搜索负载等
3、 Kibana 也是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界
面,可以帮助你汇总、分析和搜索重要数据日志
后期在 ELK 的基础上加入了 filebeat ,并且改名为 Elastic Stack
Filebeat 是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日
志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者
logstash中存放。
二、核心组件之ElasticSearch
ElasticSearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索
引副本机制,restful风格接口,多数据源,自动搜索负载等
监听端口:
9200: 对客户端提供服务
9300: 集群内部事务,选举谁是主节点
官网下载: https://www.elastic.co/downloads/past-releases
版本说明:ElasticSearch早期生产环境中由于ELK各核心版本不统一,以2版本居多,5版本之后各组件版
本进行了统一
本文实验均已ELK 5.6.8版本为准
实验:安装ElasticSearch集群
前期准备:
虚拟机3台
node1: 192.168.30.10
node2: 192.168.30.18
node3: 192.168.30.27
具体步骤:
node1,node2,node3端操作:
安装jdk开发环境
yum install java-1.8.0-openjdk-devel -y
下载elasticsearch安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.rpm
安装elasticsearch
rpm -ivh elasticsearch-5.6.8.rpm
主要配置文件:
[root@node1 ~]# ls /etc/elasticsearch/
elasticsearch.yml jvm.options log4j2.properties scripts
vim jvm.options
-Xms1g #修改初始内存大小
-Xmx1g
vim elasticsearch.yml
—————- Cluster ——————
cluster.name:wxlinux #集群名称,桥接环境下注意修改
————— Network —————–
network.host:本机IP地址
—————– Node ——————–
node.name:node1 or 2 or 3
—————– Paths ——————-
path.data:/myels/data
path.logs:/mysles/logs
————— Discovery —————
discovery.zen.ping.unicast.hosts: [“192.168.30.10”, “192.168.30.18”,”192.168.30.27″]
discovery.zen.minimum_master_nodes: 2
创建数据与日志目录:
mkdir -pv /myels/{data,logs}
chown elasticsearch.elasticsearch /myels/*
启动elasticsearch服务
systemctl start elasticsearch
查看对应端口是否处于监听状态
ss -ntl
判定集群是否正常启动生效
curl -XGET http://192.168.30.18:9200/
三、核心组件之Logstash
Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜
索)
Logstash 有三类插件:
1、 输入插件: input,从指定的数据源抽取数据
2、 过滤器插件: ouput,在本地进行格式转换
3、 输出插件: filter,将处理后的结果保留在指定数据库
官方文档: https://www.elastic.co/guide/en/logstash-versioned-plugins/current/index.html
配置文件:
/etc/logstash.conf
/etc/logstash/conf.d/
注意:logstash配置conf.d目录不要求后缀,任意格式均生效
示例1:安装logstash
yum Install java-1.8.0-openjdk-devel
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.8.rpm
rpm -ivh logstash-5.6.8.rpm
添加到环境变量:
vim /etc/profile.d/logstash.sh
PATH=/usr/share/logstash/bin:$PATH
. /etc/profile.d/logstash.sh
配置测试:
vim test1.conf
语法检查
logstash -f test1.conf -t
加载运行配置
logstash -f test1.conf
示例2:实现标准输出美观化
加载运行配置
logstash -f test2.conf
示例3:Logstash实现结构化日志输出
客户端模拟随机IP进行访问,在logstash端创建200个测试页面:
[root@logstash ~]# for i in {1..200};do echo “Test Page $i” > /var/www/html/test$i.html;done
修改http配置文件中的日志格式
[root@client ~]# while true;do client=$[$RANDOM%254+1];curl –header “X-Forwarded-For: 192.30.0.$client” http://192.168.30.10/test$client.html;sleep 1;done
Logstash端:
修改配置文件:
当客户端进行访问时,logstash将日志进行结构化输出
示例4:引入grok过滤器插件
功能:使非结构化日志转化为结构化日志格式
加载运行配置
logstash -f test4.conf
示例5:引用grok内置变量
加载运行配置
logstash -f test5.conf
当日志来源有多个时,可加判断语句:
示例6:date filter插件示例
功能:将@timestamp的时间替换为timestamp字段,原@timestamp时间移除
加载运行配置
logstash -f test5.conf
示例7:Geoip插件
功能:根据ip地址定位来自哪个地区或城市
下载IP地址信息库
查看配置
vim test6.conf
加载运行配置
logstash -f test6.conf
四、核心组件之Kibana
Kibana 是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可
以帮助你汇总、分析和搜索重要数据日志
默认监听 5601 端口,工作于 http 协议
示例:安装kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.8-x86_64.rpm
rpm -ivh kibana-5.6.8-x86_64.rpm
修改kibana配置文件
vim kibana.conf
server.port:5601
server.host:”0.0.0.0″ #5601监听的本地地址
server.name:”master.wxlinux.com”
elasticsearch.url:”http://node1:9200″
查看5601端口已处于监听状态
浏览器访问 http://localhost:5601
进行一些相关设置即可正常使用
输入关键词可进行搜索
可根据状态码进行范围查询
生成统计表图结构
也可根据geoip信息生成位置访问统计
五、核心组件之Filebeat
Filebeat 是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日
志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者
logstash中存放。
早期部署ELK时,需要将Logstatsh安装于每台需要收集日志的服务器上,但由于Logstash属于重量级应
用。为了减少服务器的性能消耗,在filebeat出现后,一般利用filebeat用来替代过去logstash的收集、读取
日志功能,而将logstash分离出来做成集群专门来负责转换格式使用。
官网介绍:轻量级的数据搬用工具
示例:实现由filebeat收集服务器日志,转发给elasticsearch
前期准备:
虚拟机三台
filebeat: 192.168.30.10
elasticsearch 1: 192.168.30.18
elasticsearch 2: 192.168.30.27
其中elasticsearch 1与elasticsearch 2组成一个elasticsearch集群
具体步骤
安装filebeat:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.8-x86_64.rpm
rpm -ivh filebeat-5.6.8-x86_64.rpm
修改配置文件:
vim /etc/filebeat/filebeat.yml
修改输入类型为log,文件路径为httpd访问日志
输出到elasticsearch,指定主机IP地址
启动filebeat服务
systemctl start filebeat
查看filebeat文件已在elasticsearch端生成,且不断增加中
本文来自投稿,不代表 Linux 运维部落立场,如若转载,请注明出处:http://www.178linux.com/104311
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Mobilizing Web Sites
Layon, Kristofer / 2011-12 / 266.00元
Everyone has been talking about the mobile web in recent years, and more of us are browsing the web on smartphones and similar devices than ever before. But most of what we are viewing has not yet bee......一起来看看 《Mobilizing Web Sites》 这本书的介绍吧!