文章目录
- 一、ElasticSearch 安装
- 1.elasticsearch 单节点安装
- 2.elasticsearch 分布式集群安装
- 3.elasticsearch 配置身份认证
- 二、Elasticsearch cerebro 展示工具安装
- 三、Kibana 安装
- 四、Filebeat 安装(EFK 架构)
- 1.Filebeat 的基础使用:
- 2.filebeat 收集 nginx
- 2.1.安装 nginx
- 2.2.安装 filebeat
- 2.2.1.收集 nginx 原生日志,推送给 es
- 2.2.2.1.filebeat 收集单个文件
- 2.2.2.2.filebeat 收集多个文件
- 注意事项:
- 2.2.2.3.kibana 展示 nginx 日志
- 2.2.2.收集 nginx json 日志,推送给 es
- 2.2.3.使用内置模块收集 nginx 日志 -- 不好用,生产不建议使用...
- 2.2.4.收集 nginx 指定字段信息,忽略其他
- 3.filebeat 收集 tomcat
- 3.1.使用内置模块收集 tomcat 日志 -- 不好用,生产不建议使用...
- 3.2.收集 tomcat 原生日志
- 3.3.收集 tomcat json 日志
- 3.4.收集 tomcat 多行匹配
- 4.filebeat 收集 nginx 日志保存到本地
- 五、Logstash 安装(ELFK 架构)
- 1.单节点/分布式集群安装logstash
- 2.修改 logstash 的配置文件
- 3.logstash filter grok插件根据正则取出想要的字段
- 4.logstash filter date插件修改写入时间
- 5.filebeat 收集 nginx,tomcat日志推送给logstash,logstash发送es
- 六、Kibana 自定义 dashboard
- 1.统计PV(指标)
- 2.统计客户端IP(指标)
- 3.统计web下载带宽(指标)
- 4.访问页面统计(水平条形图)
- 5.IP的Top 5统计(饼图)
- 6.统计后端IP服务访问高的Top 5(圆环图)
- 7.最终效果图
- 七、Kafka部署(ELKFK架构)
- 1.kafka 单节点部署
- 1.1.zookeeper 单节点
- 1.2.kafka 单节点
- 1.3.filebeat 收集 nginx 日志发送给kafka,logstash消费kafka消息发送给es,Kibana最终展示
- 2.kafka 分布式集群部署
- 2.1.zookeeper 集群部署
- 2.2.kafka 集群部署
- 2.3.filebeat 收集 tomcat 日志发送给kafka,logstash消费kafka消息发送给es,Kibana最终展示
- 2.4.filebeat收集 nginx,tomcat,mysql-slow日志发送 kafka,logstash grok 分析 nginx,发送给es,kibana展示
环境 | IP |
ElasticSearch、Logstash、Kafka、Zookeeper | 172.16.3.226/21 |
ElasticSearch、Logstash、Kafka、Zookeeper | 172.16.3.227/21 |
ElasticSearch、Logstash、Kafka、Zookeeper | 172.16.3.228/21 |
Kibana、FileBeat、Nginx、Tomcat | 172.16.4.184/21 |
- 软件包下载地址
- ELFK版本:点击这里可以搜索自己想要下载的版本
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.5-x86_64.rpm
https://artifacts.elastic.co/downloads/kibana/kibana-7.17.5-x86_64.rpm
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.5-x86_64.rpm
https://artifacts.elastic.co/downloads/logstash/logstash-7.17.5-x86_64.rpm
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
https://downloads.apache.org/kafka/3.2.1/kafka_2.12-3.2.1.tgz
一、ElasticSearch 安装
1.elasticsearch 单节点安装
- 3.226 机器上操作:
2.elasticsearch 分布式集群安装
- 3.226 操作
- 在这需要注意所有主机都安装一下
elasticsearch
3.elasticsearch 配置身份认证
二、Elasticsearch cerebro 展示工具安装
其他安装方式可点击这里
- 这里演示 Kubernetes 安装
三、Kibana 安装
- 浏览器访问Kibana: http://172.16.4.184:5601/
四、Filebeat 安装(EFK 架构)
1.Filebeat 的基础使用:
2.filebeat 收集 nginx
2.1.安装 nginx
2.2.安装 filebeat
2.2.1.收集 nginx 原生日志,推送给 es
2.2.2.1.filebeat 收集单个文件
2.2.2.2.filebeat 收集多个文件
注意事项:
2.2.2.3.kibana 展示 nginx 日志
2.2.2.收集 nginx json 日志,推送给 es
2.2.3.使用内置模块收集 nginx 日志 – 不好用,生产不建议使用…
2.2.4.收集 nginx 指定字段信息,忽略其他
3.filebeat 收集 tomcat
3.1.使用内置模块收集 tomcat 日志 – 不好用,生产不建议使用…
3.2.收集 tomcat 原生日志
3.3.收集 tomcat json 日志
- 这里就不做测试了,原理跟Nginx json是一样的。
3.4.收集 tomcat 多行匹配
4.filebeat 收集 nginx 日志保存到本地
五、Logstash 安装(ELFK 架构)
1.单节点/分布式集群安装logstash
2.修改 logstash 的配置文件
3.logstash filter grok插件根据正则取出想要的字段
4.logstash filter date插件修改写入时间
5.filebeat 收集 nginx,tomcat日志推送给logstash,logstash发送es
六、Kibana 自定义 dashboard
1.统计PV(指标)
2.统计客户端IP(指标)
3.统计web下载带宽(指标)
4.访问页面统计(水平条形图)
5.IP的Top 5统计(饼图)
6.统计后端IP服务访问高的Top 5(圆环图)
7.最终效果图
七、Kafka部署(ELKFK架构)
- 注意:这里我是单独部署的zookeeper,没有用kafka内置zookeeper。
- 如果想用 kafka 内置的zookeeper则可以参考这篇文章
1.kafka 单节点部署
1.1.zookeeper 单节点
zookeeper配置文件解释:
dataDir ZK数据存放目录。.
dataLogDir ZK日志存放目录。
clientPort 客户端连接ZK服务的端口。
tickTime ZK服务器之间或客户端与服务器之间维持心跳的时间间隔。
initLimit 允许follower(相对于Leaderer言的“客户端”)连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
syncLimit Leader与Follower之间发送消息时,请求和应答时间⻓度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
1.2.kafka 单节点
kafka配置文件解释:
broker.id 每个server需要单独配置broker id,如果不配置系统会自动配置。需要和上一步ID一致
listeners 监听地址,格式PLAINTEXT://IP:端口。
num.network.threads 接收和发送网络信息的线程数。
num.io.threads 服务器用于处理请求的线程数,其中可能包括磁盘I/O。
socket.send.buffer.bytes 套接字服务器使用的发送缓冲区(SO_SNDBUF)
socket.receive.buffer.bytes 套接字服务器使用的接收缓冲区(SO_RCVBUF)
socket.request.max.bytes 套接字服务器将接受的请求的最大大小(防止OOM)
log.dirs 日志文件目录。
num.partitions partition数量。
num.recovery.threads.per.data.dir 在启动时恢复日志、关闭时刷盘日志每个数据目录的线程的数量,默认1。
offsets.topic.replication.factor 偏移量话题的复制因子(设置更高保证可用),为了保证有效的复制,偏移话题的复制因子是可配置的,在偏移话题的第一次请求的时候可用的broker的数量至少为复制因子的大小,否则要么话题创建失败,要么复制因子取可用broker的数量和配置复制因子的最小值。
log.retention.hours 日志文件删除之前保留的时间(单位小时),默认168
log.segment.bytes 单个日志文件的大小,默认1073741824
log.retention.check.interval.ms 检查日志段以查看是否可以根据保留策略删除它们的时间间隔。
zookeeper.connect ZK主机地址,如果zookeeper是集群则以逗号隔开。
zookeeper.connection.timeout.ms 连接到Zookeeper的超时时间。
1.3.filebeat 收集 nginx 日志发送给kafka,logstash消费kafka消息发送给es,Kibana最终展示
2.kafka 分布式集群部署
2.1.zookeeper 集群部署
2.2.kafka 集群部署
2.3.filebeat 收集 tomcat 日志发送给kafka,logstash消费kafka消息发送给es,Kibana最终展示
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
(4)227 配置
…
broker.id=227
listeners=PLAINTEXT://172.16.3.227:9092
(5)228 配置
…
broker.id=228
listeners=PLAINTEXT://172.16.3.228:9092
(6)启动kafka
kafka-server-start.sh -daemon /usr/local/kafka_2.12-3.2.1/config/server.properties
kafka-server-stop.sh # 关闭Kafka服务
(7)验证kafka是否是集群模式:
zkCli.sh ls /brokers/ids | grep “^[”
[226, 227, 228]
2.4.filebeat收集 nginx,tomcat,mysql-slow日志发送 kafka,logstash grok 分析 nginx,发送给es,kibana展示