化妆品做的不好的网站,网站设计的性能需求,购物网站的开发,网络建设规范和网络维护管理规范属于选择题ELK和EFLK 一、前言1.1 日志分析的作用1.2 需要收集的日志1.3 完整日志系统的基本特征 二、ELK概述2.1 ELK简介2.2 为什么要用ELK?2.3 ELK的组件 三、ELK组件详解3.1 Logstash3.1.1 简介3.1.2 Logstash命令常用选项3.1.3 Logstash 的输入和输出流3.1.4 Logstash配置文件 3.2 E… ELK和EFLK 一、前言1.1 日志分析的作用1.2 需要收集的日志1.3 完整日志系统的基本特征 二、ELK概述2.1 ELK简介2.2 为什么要用ELK?2.3 ELK的组件 三、ELK组件详解3.1 Logstash3.1.1 简介3.1.2 Logstash命令常用选项3.1.3 Logstash 的输入和输出流3.1.4 Logstash配置文件 3.2 ElasticSearch3.3 Kiabana3.4 Filebeat3.4.1 简介3.4.2 filebeat 结合 logstash 带来好处 3.5 缓存/消息队列redis、kafka、RabbitMQ等3.6 Fluentd 四、ELK的工作原理五、部署ELKLogstash作为日志收集器5.1 环境准备5.2 ELK ElasticSearch部署node1和node2)Step1 rpm安装elasticsearchStep2 修改elasticsearch主配置文件Step3 es 性能调优参数需重启生效Step4 启动elasticsearchStep4 查看节点信息Step5 查看集群信息 5.3 安装 Elasticsearch-head 插件Step1 编译安装 nodeStep2 安装 phantomjsStep3 安装 Elasticsearch-head 数据可视化工具Step4 修改 Elasticsearch 主配置文件Step5 启动 elasticsearch-head 服务Step6 通过 Elasticsearch-head 查看 Elasticsearch 信息Step7 插入索引 5.4 ELK Logstash 部署在 Apache 节点上操作Step1 安装logstash和相关服务Step2 测试 Logstash将信息写入 Elasticsearch 中Step4 修改 logstash配置文件 5.5 ELK Kiabana 部署在 Node1 节点上操作)Step1 安装KibanaStep2 修改kibana主配置文件Step3 创建日志文件启动 Kibana 服务Step4 验证 KibanaStep5 将 Apache 服务器的日志访问的、错误的添加到 Elasticsearch 并通过 Kibana 显示 六、Filebeat作为日志收集器Step1 安装FilebeatNode1节点Step2 修改filebeat的主配置文件Node1节点Step3 启动 filebeatStep4 在 Logstash 组件所在节点上新建一个 Logstash 配置文件Step5 浏览器访问验证 一、前言
在运维中日志是非常重要的工具用于记录系统、应用程序或设备的运行状态、事件和异常情况。
1.1 日志分析的作用 1故障排除和问题诊断
日志是排查故障和诊断问题的关键信息源。
通过分析日志文件可以查找和定位系统故障、错误和异常帮助运维人员迅速找出问题的根本原因并采取正确的修复措施。
2性能分析和优化
通过监视和分析系统日志可以了解系统的性能瓶颈、资源消耗情况和关键指标。
运维人员可以根据日志中的数据优化系统配置、调整资源分配以提高系统的性能和响应能力。
3安全监控和威胁检测
日志可以帮助监控系统的安全性并检测潜在的安全威胁。
通过分析日志可以发现异常登录、未授权访问、恶意行为等安全问题并及时采取措施进行应对和防范。
4运营分析和规划
通过日志分析可以更好地了解用户需求进行容量规划制定有效的运维策略和决策。
5合规性和审计
通过记录和保留日志可以应对合规性规定并提供必要的审计跟踪以满足法规和行业标准的要求。
因此对于任何系统或应用程序设置合适的日志记录和日志分析机制是非常重要的一环。
1.2 需要收集的日志
系统日志为监控做准备要收集tomcat系统日志tomcat所在节点的日志。 服务日志比如数据库mysql收集慢查询日志、错误日志、普通日志要收集tomcat服务日志。 业务日志业务日志必须收集业务口子日志在log4jlog4j是由java环境开发的跑在tomcat上。
1.3 完整日志系统的基本特征
收集能够采集多种来源的日志数据传输能够稳定的把日志数据解析过滤并传输到存储系统存储存储日志数据分析支持UI分析 警告能够提供错误报告监控机制
二、ELK概述 2.1 ELK简介
ELK平台是一套完整的日志集中处理解决方案。
将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用 完成更强大的用户对日志的查询、排序、统计需求。
2.2 为什么要用ELK?
集中化管理日志后日志的统计和检索的效率降低。
ELK 提供了一个完整的日志管理和分析解决方案能够帮助用户更好地理解数据、监控系统性能并进行故障排除。
2.3 ELK的组件 基础组件Elasticsearch、Logstash、Kibana
扩展组件Filebeat、Fluentd
三、ELK组件详解
3.1 Logstash
3.1.1 简介
Logstash 实现了数据的收集和处理。 Logstash 是一个可扩展的数据收集、转换和传输工具。
它可以从各种来源如日志文件、消息队列、数据库等收集数据并将其转换为统一的格式然后发送到 Elasticsearch 进行存储和分析。
Logstash 提供了丰富的输入插件font和输出插件可以与各种数据源和目标进行集成。
它还具有强大的过滤功能可以对数据进行处理、过滤和转换以满足不同的业务需求。
3.1.2 Logstash命令常用选项
#Logstash 命令常用选项-f通过这个选项可以指定 Logstash 的配置文件根据配置文件配置 Logstash 的输入和输出流-e从命令行中获取输入、输出后面跟着字符串该字符串可以被当作 Logstash 的配置如果是空则默认使用 stdin 作为输入stdout 作为输出-t测试配置文件是否正确然后退出。3.1.3 Logstash 的输入和输出流 1.定义输入和输出流 #输入采用标准输入
#输出采用标准输出类似管道
#新版本默认使用 rubydebug 格式输出
logstash -e input { stdin{} } output { stdout{} }2.使用 rubydebug 输出详细格式显示 #codec 为一种编解码器
logstash -e input { stdin{} } output { stdout{ codecrubydebug } }##举个例子###键入内容标准输入
www.baidu.com #使用 input 插件来定义一个输入源#stdin{} 表示使用标准输入作为输入
#然后使用 output 插件来定义一个输出目标
#stdout{ codecrubydebug } 表示将数据打印到标准输出并使用 rubydebug 编解码器来格式化输出。3.1.4 Logstash配置文件
Logstash 配置文件基本由三部分组成input、output 以及 filter。
filter部分选择性添加可以没有。 input部分 表示从数据源采集数据。
常见的数据源如Kafka、日志文件等。 file beats kafka redis stdin
#基本格式
input {...}filter部分 数据处理层包括对数据进行格式化处理、数据类型转换、数据过滤等支持正则表达式。
#基本格式
filter {...}插件作用grok对若干个大文本字段进行再分割成一些小字段 (?字段名正则表达式) 字段名: 正则表达式匹配到的内容date对数据中的时间格式进行统一和格式化mutate对一些无用的字段进行剔除或增加字段mutiline对多行数据进行统一编排多行合并或拆分 ouput部分 表示将Logstash收集的数据经由过滤器处理之后输出到Elasticsearch。
elasticsearch stdout
#基本格式
output {...}补充说明 在每个部分中也可以指定多个访问方式font。
#举个例子若要指定两个日志来源文件则格式如下
input {file { path /var/log/messages type syslog}file { path /var/log/httpd/access.log type apache}
}3.2 ElasticSearch
Elasticsearch 提供了强大的搜索和分析引擎。
Elasticsearch 是一个分布式、实时的搜索和分析引擎。
它基于 Lucene 搜索引擎库构建具有分布式搜索、实时数据分析、高性能和高可伸缩性的特点。
Elasticsearch 可以存储和索引大规模的数据(比如日志并提供快速的全文搜索、条件过滤、聚合和分析功能。
3.3 Kiabana
Kibana 提供了可视化和交互式分析的界面。
Kibana 是一个针对Elasticsearch的开源数据分析及可视化平台用来搜索、查看交互存储在Elasticsearch索引中的数据。
使用Kibana可以通过各种图表进行高级数据分析及展示创建自定义仪表盘font来展示关键指标和监控警报。
3.4 Filebeat
3.4.1 简介
轻量级的开源日志文件数据搜集器。
通常在需要采集数据的客户端安装 Filebeat并指定目录与日志格式Filebeat 就能快速收集数据并发送给 logstash 进行解析或是直接发给 Elasticsearch 存储。
性能上相比运行于 JVM 上的 logstash 优势明显是对它的替代。
常应用于 EFLK 架构当中。
3.4.2 filebeat 结合 logstash 带来好处
1通过 Logstash 具有基于磁盘的自适应缓冲系统该系统将吸收传入的吞吐量从而减轻 Elasticsearch 持续写入数据的压力
2从其他数据源例如数据库S3对象存储或消息传递队列中提取
3将数据发送到多个目的地例如S3HDFSHadoop分布式文件系统或写入文件
4使用条件数据流逻辑组成更复杂的处理管道。
3.5 缓存/消息队列redis、kafka、RabbitMQ等
对高并发日志数据进行流量削峰和缓冲。
这样的缓冲可以一定程度的保护数据不丢失还可以对整个架构进行应用解耦。
3.6 Fluentd
Fluentd是一个流行的开源数据收集器。
由于 logstash 太重量级的缺点Logstash 性能低、资源消耗比较多等问题随后就有 Fluentd 的出现。
相比较 logstashFluentd 更易用、资源消耗更少、性能更高在数据处理上更高效可靠受到企业欢迎成为 logstash 的一种替代方案常应用于 EFK 架构当中。
在 Kubernetes 集群中也常使用 EFK 作为日志数据收集的方案。
在 Kubernetes 集群中一般是通过 DaemonSet 来运行 Fluentd以便它在每个 Kubernetes 工作节点上都可以运行一个 Pod。
它通过获取容器日志文件、过滤和转换日志数据然后将数据传递到 Elasticsearch 集群在该集群中对其进行索引和存储。
四、ELK的工作原理 1在所有需要收集日志的服务器上部署Logstash或者先将日志进行集中化管理在日志服务器上在日志服务器上部署 Logstash。 2Logstash 收集日志将日志格式化并输出到 Elasticsearch 群集中。
3Elasticsearch 对格式化后的数据进行索引和存储。
4Kibana 从 ES 群集中查询数据生成图表并进行前端数据的展示。
综上所述
logstash作为日志搜集器从数据源采集数据并对数据进行过滤格式化处理然后交由Elasticsearch存储kibana对日志进行可视化处理。
五、部署ELKLogstash作为日志收集器
ServerIPComponentsSystemnode1192.168.2.100Elasticsearch 、 KibanaCentOS7.4(64 位)node2192.168.2.102ElasticsearchCentOS7.4(64 位)apache192.168.2.103Logstash ApacheCentOS7.4(64 位)
5.1 环境准备 所有节点关闭防火墙和selinux systemctl disable firewalld --nowsed -i s/enforcing/disabled/ /etc/selinux/config更改主机名 #node1节点
hostnamectl set-hostname node1#node2节点
hostnamectl set-hostname node2#apache节点
hostnamectl set-hostname apache域名解析 #node1和node2
cat /etc/hosts EOF
192.168.2.100 node1
192.168.2.102 node2
EOF查看java环境 #查看Java环境如果没有安装yum -y install java
java -version5.2 ELK ElasticSearch部署node1和node2)
Step1 rpm安装elasticsearch
#上传elasticsearch-6.7.2.rpm到/opt目录下
cd /opt
rpm -ivh elasticsearch-6.7.2.rpm#加载系统服务
systemctl daemon-reloadsystemctl enable elasticsearch.service --nowStep2 修改elasticsearch主配置文件 node1 yml格式的文件冒号后要加空格。 备份配置文件 #先备份
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak修改配置文件 vim /etc/elasticsearch/elasticsearch.yml#17行 取消注释指定集群名字
cluster.name: my-elk-cluster#23行 取消注释指定节点名字Node1节点为node1Node2节点为node2
node.name: node1
node.master: true
node.data: true#33行 取消注释指定数据存放路径
path.data: /var/lib/elasticsearch/#37行 取消注释指定日志存放路径
path.logs: /var/log/elasticsearch/#43行 取消注释改为在启动的时候不锁定内存
bootstrap.memory_lock: false#55行 取消注释设置监听地址0.0.0.0代表所有地址
network.host: 0.0.0.0#59行 取消注释ES 服务的默认监听端口为9200
http.port: 9200
transport.tcp.port: 9300
#68行 取消注释集群发现通过单播实现指定要发现的节点 node1、node2
discovery.zen.ping.unicast.hosts: [192.168.2.100:9300, 192.168.2.102:9300]##补充知识###http.port和transport.tcp.port
http.port 是用于监听来自客户端的 HTTP 请求的端口
transport.tcp.port 是用于节点之间通信的端口http.port 是 9200 是因为它是 ES HTTP 服务的默认监听端口。
这意味着当你发送 HTTP 请求到 ES 时默认会使用端口 9200。而 transport.tcp.port 则是用于节点之间的内部通信也就是数据传输的端口。
它默认为 9300因为它是 ES 节点间通信的一种约定端口。
节点间通信需要一个专门的端口来进行数据传输和协商这就是为什么使用了 9300 这个默认端口。#查看所有配置项
grep -v ^# /etc/elasticsearch/elasticsearch.ymlnode2 #将node1的配置文件传输到node2
scp /etc/elasticsearch/elasticsearch.yml node2:/etc/elasticsearch/#修改配置文件
vim /etc/elasticsearch/elasticsearch.yml
#23行 取消注释指定节点名字Node1节点为node1Node2节点为node2
node.name: node2Step3 es 性能调优参数需重启生效
#优化最大内存大小和最大文件描述符的数量
vim /etc/security/limits.conf
......
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* soft memlock unlimited
* hard memlock unlimitedvim /etc/systemd/system.conf
DefaultLimitNOFILE65536
DefaultLimitNPROC32000
DefaultLimitMEMLOCKinfinity##详解##
- DefaultLimitNOFILE 表示每个进程可以打开的最大文件描述符数量。- DefaultLimitNPROC 表示每个用户可以创建的最大进程数量。- DefaultLimitMEMLOCK 表示每个进程可以锁定的内存量。#优化elasticsearch用户拥有的内存权限
由于ES构建基于lucene, 而lucene设计强大之处在于lucene能够很好的利用操作系统内存来缓存索引数据以提供快速的查询性能。lucene的索引文件segements是存储在单文件中的并且不可变对于OS来说能够很友好地将索引文件保持在cache中以便快速访问因此我们很有必要将一半的物理内存留给lucene ;
另一半的物理内存留给ESJVM heap )。所以 在ES内存设置方面可以遵循以下原则
1.当机器内存小于64G时遵循通用的原则50%给ES50%留给操作系统供lucene使用2.当机器内存大于64G时遵循原则建议分配给ES分配 4~32G 的内存即可其它内存留给操作系统供lucene使用。vim /etc/sysctl.conf
#一个进程可以拥有的最大内存映射区域数参考数据分配 2g/2621444g/41943048g/8388608
vm.max_map_count262144sysctl -p
sysctl -a | grep vm.max_map_countStep4 启动elasticsearch 创建数据存放路径并授权 mkdir -p /data/elk_data#授权
chown elasticsearch:elasticsearch /data/elk_data/启动 #启动elasticsearch
systemctl start elasticsearch.servicenetstat -antp | grep 9200Step4 查看节点信息
#查看节点 Node1、Node2 的信息
#浏览器访问
http://192.168.2.100:9200 http://192.168.2.102:9200 Step5 查看集群信息
#浏览器访问
http://192.168.2.100:9200/_cluster/health?prettyhttp://192.168.2.102:9200/_cluster/health?pretty使用以上方式查看状态并不友好可以通过 elasticsearch-head插件来直接管理。
5.3 安装 Elasticsearch-head 插件
Elasticsearch 在 5.0 版本后Elasticsearch-head 插件需要作为独立服务进行安装需要使用npm工具NodeJS的包管理工具安装。 安装 Elasticsearch-head 需要提前安装好依赖软件 node 和 phantomjs。 node是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 phantomjs是一个基于 webkit 的JavaScriptAPI可以理解为一个隐形的浏览器任何基于 webkit 浏览器做的事情它都可以做到。
Step1 编译安装 node
上传软件包 node-v8.2.1.tar.gz 到/opt
#安装依赖环境
yum install gcc gcc-c make -y#解压
cd /opt
tar zxf node-v8.2.1.tar.gz#编译安装
cd node-v8.2.1/
./configure
make -j2 make installStep2 安装 phantomjs
上传软件包 phantomjs-2.1.1-linux-x86_64.tar.bz2 到/opt。
#解压
cd /opt
tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin#复制相关文件
cp phantomjs /usr/local/binStep3 安装 Elasticsearch-head 数据可视化工具
上传软件包 elasticsearch-head-master.zip 到/opt。
#解压软件包
cd /opt
unzip elasticsearch-head-master.zip#安装依赖包
cd /opt/elasticsearch-head/
npm install Step4 修改 Elasticsearch 主配置文件
vim /etc/elasticsearch/elasticsearch.yml
......
--末尾添加以下内容--
http.cors.enabled: true #开启跨域访问支持默认为 false
http.cors.allow-origin: * #指定跨域访问允许的域名地址为所有systemctl restart elasticsearchStep5 启动 elasticsearch-head 服务
#必须在解压后的 elasticsearch-head 目录下启动服务
#进程会读取该目录下的 gruntfile.js 文件
#否则可能启动失败
cd /opt/elasticsearch-head/
npm run start #elasticsearch-head 监听的端口是 9100
netstat -natp |grep 9100Step6 通过 Elasticsearch-head 查看 Elasticsearch 信息
#浏览器访问
http://192.168.2.100:9100/
连接群集
#如果看到群集健康值为 green 绿色代表群集很健康Step7 插入索引
#通过命令插入一个测试索引索引为 index-demo类型为 test。
curl -X PUT localhost:9200/index-demo/test/1?prettypretty -H content-Type: application/json -d {user:zhangsan,mesg:hello world}#浏览器访问
http://192.168.2.100:9100/ #查看索引信息
可以看见索引默认被分片5个并且有一个副本#点击“数据浏览”
会发现在node1上创建的索引为 index-demo类型为 test 的相关信息。5.4 ELK Logstash 部署在 Apache 节点上操作
Logstash 一般部署在需要监控其日志的服务器。
在本案例中Logstash 部署在 Apache 服务器上用于收集 Apache 服务器的日志信息并发送到 Elasticsearch。
Step1 安装logstash和相关服务 安装Apahce服务httpd yum -y install httpd
systemctl start httpd安装Java环境 yum -y install java
java -version安装logstash 上传软件包 logstash-6.7.2.rpm 到/opt目录下
#rpm安装
cd /opt
rpm -ivh logstash-6.7.2.rpm
systemctl enable logstash.service --now#做软链接方便使用
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/Step2 测试 Logstash将信息写入 Elasticsearch 中
#使用 Logstash 将信息写入 Elasticsearch 中
logstash -e input { stdin{} } output { elasticsearch { hosts[192.168.2.100:9200] } }输入 输出 对接
......
www.baidu.com #键入内容标准输入
www.sina.com.cn #键入内容标准输入
www.google.com #键入内容标准输入#结果不在标准输出显示而是发送至 Elasticsearch 中浏览器访问
http://192.168.2.100:9100/
查看索引信息和数据浏览Step4 修改 logstash配置文件
#修改 Logstash 配置文件让其收集系统日志/var/log/messages并将其输出到 elasticsearch 中。
chmod r /var/log/messages
#让 Logstash 可以读取日志cd /etc/logstash/conf.d/vim system.conf
input {file{path /var/log/messagestype systemstart_position beginning# ignore_older 604800sincedb_path /etc/logstash/sincedb_path/log_progressadd_field {log_hostname${HOSTNAME}}}
}
output {elasticsearch {hosts [192.168.2.100:9200,192.168.2.102:9200]index system-%{YYYY.MM.dd} }
}#配置文件详解
#输入部分
input {file{path /var/log/messagestype systemstart_position beginning# ignore_older 604800sincedb_path /etc/logstash/sincedb_path/log_progressadd_field {log_hostname${HOSTNAME}}}
}
#path表示要收集的日志的文件位置
#type是输入ES时给结果增加一个叫type的属性字段
#start_position可以设置为beginning或者endbeginning表示从头开始读取文件end表示读取最新的这个要和ignore_older一起使用
#ignore_older表示了针对多久的文件进行监控默认一天单位为秒可以自己定制比如默认只读取一天内被修改的文件
#sincedb_path表示文件读取进度的记录每行表示一个文件每行有两个数字第一个表示文件的inode第二个表示文件读取到的位置byteoffset。默认为$HOME/.sincedb*
#add_field增加属性。这里使用了${HOSTNAME}即本机的环境变量如果要使用本机的环境变量那么需要在启动命令上加--alow-env##输出
output {elasticsearch { #输出到 elasticsearchhosts [192.168.2.100:9200,192.168.2.102:9200] #指定 elasticsearch 服务器的地址和端口index system-%{YYYY.MM.dd} #指定输出到 elasticsearch 的索引格式}
}#新建文件路径
mkdir /etc/logstash/sincedb_path/touch /etc/logstash/sincedb_path/log_progress#修改文件的属主属组
chown logstash:logstash /etc/logstash/sincedb_path/log_progress#使用logstash启动配置文件
logstash -f system.conf浏览器访问
http://192.168.2.100:9100/
查看索引信息5.5 ELK Kiabana 部署在 Node1 节点上操作)
Step1 安装Kibana
#上传软件包 kibana-6.7.2-x86_64.rpm 到/opt目录
cd /opt
rpm -ivh kibana-6.7.2-x86_64.rpmStep2 修改kibana主配置文件
vim /etc/kibana/kibana.yml#2行 取消注释Kiabana 服务的默认监听端口为5601
server.port: 5601#7行 取消注释设置 Kiabana 的监听地址0.0.0.0代表所有地址
server.host: 0.0.0.0#28行 取消注释配置es服务器的ip如果是集群则配置该集群中master节点的ip
elasticsearch.url: [http://192.168.2.100:9200,http://192.168.2.102:9200] #37行 取消注释设置在 elasticsearch 中添加.kibana索引
kibana.index: .kibana#96行 取消注释配置kibana的日志文件路径需手动创建不然默认是messages里记录日志
logging.dest: /var/log/kibana.logStep3 创建日志文件启动 Kibana 服务
touch /var/log/kibana.log
chown kibana:kibana /var/log/kibana.logsystemctl start kibana.service
systemctl enable kibana.servicess -natp | grep 5601Step4 验证 Kibana
浏览器访问
http://192.168.2.100:5601#第一次登录需要添加一个 Elasticsearch 索引
Management - Index Pattern - Create index patternIndex pattern 输入system-*
#在索引名中输入之前配置的 Output 前缀“system”Next step - Time Filter field name 选择 timestamp - Create index pattern单击 “Discover” 按钮可查看图表信息及日志信息。
数据展示可以分类显示在“Available Fields”中的“host”然后单击 “add”按钮可以看到按照“host”筛选后的结果Step5 将 Apache 服务器的日志访问的、错误的添加到 Elasticsearch 并通过 Kibana 显示
vim /etc/logstash/conf.d/apache_log.confinput {file{path /etc/httpd/logs/access_logtype accessstart_position beginning}file{path /etc/httpd/logs/error_logtype errorstart_position beginning}
}
output {if [type] access {elasticsearch {hosts [192.168.2.100:9200,192.168.2.102:9200]index apache_access-%{YYYY.MM.dd}}}if [type] error {elasticsearch {hosts [192.168.2.100:9200,192.168.2.102:9200]index apache_error-%{YYYY.MM.dd}}}
}cd /etc/logstash/conf.d/
/usr/share/logstash/bin/logstash -f apache_log.conf浏览器访问 http://192.168.2.100:9100 查看索引是否创建浏览器访问 http://192.168.2.100:5601 登录 Kibana
单击“Index Pattern - Create Index Pattern”按钮添加索引
在索引名中输入之前配置的 Output 前缀 apache_access-*并单击“Create”按钮。
再用相同的方法添加 apache_error-*索引。选择“Discover”选项卡
在中间下拉列表中选择刚添加的 apache_access-* 、apache_error-* 索引 可以查看相应的图表及日志信息。六、Filebeat作为日志收集器 ServerIPComponentsSystemNode1192.168.2.100Elasticsearch 、 KibanaCentOS7.4(64 位)Node2192.168.2.102ElasticsearchCentOS7.4(64 位)Apache192.168.2.103Logstash ApacheCentOS7.4(64 位)Filebeat节点192.168.2.105FilebeatCentOS7.4(64 位)
Step1 安装FilebeatNode1节点
上传软件包 filebeat-6.7.2-linux-x86_64.tar.gz 到/opt目录
#解压软件包
tar zxvf filebeat-6.7.2-linux-x86_64.tar.gzmv filebeat-6.7.2-linux-x86_64/ /usr/local/filebeatStep2 修改filebeat的主配置文件Node1节点
cd /usr/local/filebeatvim filebeat.yml
filebeat.inputs:
- type: log
#指定 log 类型从日志文件中读取消息enabled: truepaths:- /var/log/messages #指定监控的日志文件- /var/log/*.logtags: [sys] #设置索引标签fields: #可以使用 fields 配置选项设置一些参数字段添加到 output 中service_name: filebeatlog_type: syslogfrom: 192.168.2.105--------------Elasticsearch output-------------------
(全部注释掉)----------------Logstash output---------------------
output.logstash:hosts: [192.168.2.103:5044] #指定 logstash 的 IP 和端口Step3 启动 filebeat
#启动 filebeat
nohup ./filebeat -e -c filebeat.yml filebeat.out
#-e输出到标准输出禁用syslog/文件输出
#-c指定配置文件
#nohup在系统后台不挂断地运行命令退出终端不会影响程序的运行Step4 在 Logstash 组件所在节点上新建一个 Logstash 配置文件
cd /etc/logstash/conf.dvim filebeat.conf
input {beats {port 5044}
}#filebeat发送给logstash的日志内容会放到message字段里面logstash使用grok插件正则匹配message字段内容进行字段分割
#Kibana自带grok的正则匹配的工具http://your kibana IP:5601/app/kibana#/dev_tools/grokdebugger
# %{IPV6}|%{IPV4} 为 logstash 自带的 IP 常量
filter {grok {match [message, (?remote_addr%{IPV6}|%{IPV4})[\s\-]\[(?logTime.*)\]\s\(?method\S)\s(?url_path.)\\s(?rev_code\d) \d \(?req_addr.)\ \(?content.*)\]}
}output {elasticsearch {hosts [192.168.2.100:9200,192.168.2.102:9200]index %{[fields][service_name]}-%{YYYY.MM.dd}}stdout {codec rubydebug}
}
#启动 logstash
logstash -f filebeat.confStep5 浏览器访问验证
浏览器访问 http://192.168.2.100:5601 登录 Kibana
单击“Create Index Pattern”按钮添加索引“filebeat-*”
单击 “create” 按钮创建单击 “Discover” 按钮可查看图表信息及日志信息。