ELK简单介绍二

学习目标

  • 能够部署kibana并连接elasticsearch集群
  • 能够通过kibana查看elasticsearch索引信息
  • 知道用filebeat收集日志相对于logstash的优点
  • 能够安装filebeat
  • 能够使用filebeat收集日志并传输给logstash

kibana

kibana介绍

Kibana是一个开源的可视化平台,可以为ElasticSearch集群的管理提供友好的Web界面,帮助汇总,分析和搜索重要的日志数据。

文档路径: Set up | Kibana Guide [8.11] | Elastic

kibana部署

第1步: 在kibana服务器(我这里是VM1)上安装kibana

[root@vm1 ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.2-x86_64.rpm
[root@vm1 ~]# rpm -ivh kibana-6.5.2-x86_64.rpm 

第2步: 配置kibana

[root@vm1 ~]# cat /etc/kibana/kibana.yml |grep -v '#' |grep -v '^$'
server.port: 5601                               端口
server.host: "0.0.0.0"                          监听所有,允许所有人能访问
elasticsearch.url: "http://10.1.1.12:9200"      ES集群的路径
logging.dest: /var/log/kibana.log               我这里加了kibana日志,方便排错与调试
​
日志要自己建立,并修改owner和group属性
[root@vm1 ~]# touch /var/log/kibana.log
[root@vm1 ~]# chown kibana.kibana /var/log/kibana.log

第3步: 启动kibana服务

[root@vm1 ~]# systemctl start kibana
[root@vm1 ~]# systemctl enable kibana
​
[root@vm1 ~]# lsof -i:5601
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    10420 kibana   11u  IPv4 111974      0t0  TCP *:esmagent (LISTEN)

第4步: 通过浏览器访问 http://kibana服务器IP:5601

kibana汉化

https://github.com/anbai-inc/Kibana_Hanization/

[root@vm1 ~]# wget https://github.com/anbai-inc/Kibana_Hanization/archive/master.zip
​
[root@vm1 ~]# unzip Kibana_Hanization-master.zip -d /usr/local
[root@vm1 ~]# cd /usr/local/Kibana_Hanization-master/
​
这里要注意:1,要安装python; 2,rpm版的kibana安装目录为/usr/share/kibana/
[root@vm1 Kibana_Hanization-master]# python main.py /usr/share/kibana/
​
汉化完后需要重启
[root@vm1 Kibana_Hanization-master]# systemctl stop kibana
[root@vm1 Kibana_Hanization-master]# systemctl start kibana

再次通过浏览器访问 http://kibana服务器IP:5601

通过kibana查看集群信息

通过kibana查看logstash收集的日志索引

最后点发现查看

通过kibana做可视化图形

filebeat

因为logstash消耗内存等资源太高,如果在要采集的服务上都安装logstash,这样对应用服务器的压力增加。所以我们要用轻量级的采集工具才更高效,更省资源。

beats是轻量级的日志收集处理工具,Beats占用资源少

  • Packetbeat: 网络数据(收集网络流量数据)

  • Metricbeat: 指标 (收集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)

  • Filebeat: 文件(收集日志文件数据)

  • Winlogbeat: windows事件日志(收集 Windows 事件日志数据)

  • Auditbeat:审计数据 (收集审计日志)

  • Heartbeat:运行时间监控 (收集系统运行时的数据)

我们这里主要是收集日志信息, 所以只讨论filebeat。

filebeat可以直接将采集的日志数据传输给ES集群(EFK), 也可以给logstash(==5044==端口接收)。

filebeat收集日志直接传输给ES集群

第1步: 下载并安装filebeat(再开一台虚拟机vm4模拟filebeat, 内存1G就够了, 安装filebeat)

[root@vm4 ~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.2-x86_64.rpm
[root@vm4 ~]# rpm -ivh filebeat-6.5.2-x86_64.rpm

第2步: 配置filebeat收集日志

[root@vm4 ~]# cat /etc/filebeat/filebeat.yml |grep -v '#' |grep -v '^$'
filebeat.inputs:
- type: log
  enabled: true                     改为true
  paths:
    - /var/log/*.log                收集的日志路径
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
output.elasticsearch:               输出给es集群
  hosts: ["10.1.1.12:9200"]         es集群节点ip
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

第3步: 启动服务

[root@vm4 ~]# systemctl start filebeat
[root@vm4 ~]# systemctl enable filebeat

第4步: 验证

在es-head和kibana上验证(验证过程省略, 参考前面的笔记)

练习:可以尝试使用两台filebeat收集日志,然后在kibana用筛选器进行筛选过滤查看。(可先把logstash那台关闭logstash进行安装filebeat测试)

filebeat传输给logstash

第1步: 在logstash上要重新配置,开放5044端口给filebeat连接,并重启logstash服务

[root@vm3 ~]# vim /etc/logstash/conf.d/test.conf 
input {
    beats {
        port => 5044
    }
}
​
output {
    elasticsearch {
        hosts => ["10.1.1.12:9200"]
        index =>  "filebeat2-%{+YYYY.MM.dd}"
    }
    stdout {                                    再加一个标准输出到屏幕,方便实验环境调试
    }
}
[root@vm3 ~]# cd /usr/share/logstash/bin/
​
如果前面有使用后台跑过logstash实例的请kill掉先
[root@vm3 bin]# pkill java
​
[root@vm3 bin]# ./logstash --path.settings /etc/logstash/ -r -f /etc/logstash/conf.d/test.conf

第2步: 配置filebeat收集日志

[root@vm4 ~]# cat /etc/filebeat/filebeat.yml |grep -v '#' |grep -v '^$'
filebeat.inputs:
- type: log
  enabled: true						改为true
  paths:
    - /var/log/*.log				收集的日志路径
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
output.logstash:					这两句非常重要,表示日志输出给logstash
  hosts: ["10.1.1.13:5044"]			IP为logstash服务器的IP;端口5044对应logstash上的配置
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

第3步: 启动服务

[root@vm4 ~]# systemctl stop filebeat
[root@vm4 ~]# systemctl start filebeat

第5步: 去ES-head上验证

第6步:在kibana创建索引模式(过程省略,参考上面的笔记操作),然后点发现验证

filebeat收集nginx日志

1, 在filebeat这台服务器上安装nginx,启动服务。并使用浏览器访问刷新一下,模拟产生一些相应的日志(==强调==: 我们在这里是模拟的实验环境,一定要搞清楚实际情况下是把filebeat安装到nginx服务器上去收集日志)

[root@vm4 ~]# yum install epel-release -y
[root@vm4 ~]# yum install nginx -y
[root@vm4 ~]# systemctl restart nginx
[root@vm4 ~]# systemctl enable nginx

2, 修改filebeat配置文件,并重启服务

[root@vm4 ~]# cat /etc/filebeat/filebeat.yml |grep -v '#' |grep -v '^$'
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
    - /var/log/nginx/access.log			只在这里加了一句nginx日志路径(按需求自定义即可)
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
output.logstash:
  hosts: ["10.1.1.13:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  
[root@vm4 ~]# systemctl stop filebeat
[root@vm4 ~]# systemctl start filebeat

3, 验证(在kibana或es-head上查询)

练习: 尝试收集httpd,mysql日志

实验中易产生的问题总结:

  • filebeat配置里没有把output.elasticsearch改成output.logstash

  • filebeat在收集/var/log/*.log日志时,需要对日志进行数据的改变或增加,才会传。当/var/log/yum.log增加了日志数据会传输,但不会触发配置里的其它日志传输。(每个日志的传输是独立的)

  • filebeat收集的日志没有定义索引名称, 我这个实验是在logstash里定义的。(此例我定义的索引名叫filebeat2-%{+YYYY.MM.dd})

  • es-head受资源限制可能会关闭了,你在浏览器上验证可能因为缓存问题,看不到变化的结果。

  • 区分索引名和索引模式(index pattern)名

filebeat日志简单过滤

[root@vm4 ~]# grep -Ev '#|^$' /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/yum.log
    - /var/log/nginx/access.log
  include_lines: ['Installed']		表示收集的日志里有Installed关键字才会收集
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
output.logstash:
  hosts: ["10.1.1.13:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

[root@vm4 ~]# systemctl restart filebeat

测试方法:

通过yum installyum remove 产生日志,检验结果

结果为: yum install安装可以收集,yum remove卸载的不能收集

其它参数可以自行测试

  • exclude_lines

  • exclude_files

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/234691.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux 15day apache apache服务安装 httpd服务器 安装虚拟主机系统 一个主机 多个域名如何绑定

目录 一、apache安装二、访问控制总结修改默认网站发布目录 三、虚拟主机 一、apache安装 [rootqfedu.com ~]# systemctl stop firewalld [rootqfedu.com ~]# systemctl disable firewalld [rootqfedu.com ~]# setenforce 0 [rootqfedu.com ~]# yum install -y httpd [rootqfe…

用23种设计模式打造一个cocos creator的游戏框架----(十二)状态模式

1、模式标准 模式名称:状态模式 模式分类:行为型 模式意图:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 结构图: 适用于: 1、一个对象的行为决定于它的状态,并且它必须…

记录一次云原生线上服务数据迁移全过程

文章目录 背景迁移方案调研迁移过程服务监控脚本定时任务暂停本地副本服务启动,在线服务下线MySQL 数据迁移Mongo 数据迁移切换新数据库 ip 本地服务启动数据库连接验证服务打包部署服务重启前端恢复正常监控脚本定时任务启动旧服务器器容器关闭 迁移总结 背景 校园…

代码随想录二刷 |二叉树 |101. 对称二叉树

代码随想录二刷 |二叉树 |101. 对称二叉树 题目描述解题思路 & 代码实现递归法迭代法使用队列使用栈 题目描述 101.对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,…

adb unauthorized 踩坑记录

给Realme X7 Pro 安装Root后,发现adb连接设备呈现unauthorized 状态: 在Google以后,尝试了很多方案,均无效,尝试的方案如下: 重启手机,电脑。不行撤销调试授权,开关usb调试&#xf…

持续集成交付CICD:Jenkins配置Nexus制品发布

目录 一、实验 1.Jenkins配置Nexus制品发布 一、实验 1.Jenkins配置Nexus制品发布 (1)策略 发布其实就是下载制品,然后将制品发送到目标主机,最后通过脚本或者指令启动程序。 (2)安装Maven Artifact …

基于JavaWeb+SSM+Vue马拉松报名系统微信小程序的设计和实现

基于JavaWebSSMVue马拉松报名系统微信小程序的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.…

SQL命令---添加新字段

介绍 使用sql语句为表添加新字段。 命令 alter table 表名 add 新字段名 数据类型;例子 向a表中添加name字段,类型为varchar(255)。 alter table a add name varchar(255);下面是执行添加有的表结构:

react之项目打包,本地预览,路由懒加载,打包体积分析以及如何配置CDN

react之项目打包,本地预览,路由懒加载,打包体积分析以及如何配置CDN 一、项目打包二、项目本地预览三、路由懒加载四、打包体积分析五、配置CDN 一、项目打包 执行命令 npm run build根目录下生成的build文件夹 及时打包后的文件 二、项目本地预览 1.全局安装本地服务包 npm…

内存分配器

实现分配器需要考虑的问题 空闲块的组织方式:如何记录现有的空闲块空闲块的选择:如何选择一个合适的空闲块空闲块的分割:选择了一个合适的空闲块后如何处理空闲块内部的剩余部分空闲块的合并:如何处理一个刚刚被释放的块&#xf…

Python sqlalchemy使用

基本结构 #!/usr/bin/python3 # -*- coding:utf-8 -*- """ author: JHC file: base_db.py time: 2023/6/19 21:34 desc: """ from sqlalchemy import create_engine,text from sqlalchemy.orm import sessionmaker,scoped_session from contex…

计算机服务器中了Mallox勒索病毒怎么解密,Mallox勒索病毒解密步骤

计算机网络技术的不断发展与应用,为企业的生产运营提供了坚实的基础,大大提高了企业的生产与工作效率,但随之而来的网络安全威胁也在不断增加。在本月,云天数据恢复中心接到了很多企业的求助,企业的计算机服务器遭到了…

Nacos源码解读12——Nacos中长连接的实现

短连接 VS 长连接 什么是短连接 客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。 长连接 客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立…

数理统计基础:参数估计与假设检验

在学习机器学习的过程中,我充分感受到概率与统计知识的重要性,熟悉相关概念思想对理解各种人工智能算法非常有意义,从而做到知其所以然。因此打算写这篇笔记,先好好梳理一下参数估计与假设检验的相关内容。 1 总体梳理 先从整体结…

【Spring 基础】00 入门指南

【Spring 基础】00 入门指南 文章目录 【Spring 基础】00 入门指南1.简介2.概念1)控制反转(IoC)2)依赖注入(DI) 3.核心模块1)Spring Core2)Spring AOP3)Spring MVC4&…

用python 网络自动化统计交换机有多少端口UP

用python统计交换机有多少端口UP 用python统计交换机有多少端口UP,可以间接的反馈有多少个用户在线。我们使用上次的脚本将可达的网络设备ip统计到reachable_ip.txt中,这次我们使用reachable_ip.txt来登陆设备来统计多少端口是UP的 云配置 拓扑 交换机…

ModuleNotFoundError: No module named ‘docx‘

ModuleNotFoundError: No module named ‘docx’ 文章目录 ModuleNotFoundError: No module named docx背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用之前的代码时,报错: Traceback (most recent call last): Fi…

循环依赖:解析软件设计的迷局

目录 引言 循环依赖的本质 影响与挑战 1. 编译和构建问题 2. 耦合度增加 3. 难以进行单元测试 4. 可扩展性降低 解决循环依赖的策略 1. 模块重构 2. 引入接口抽象 3. 依赖注入 4. 模块化与分层设计 5. 使用工具进行分析 实际案例:Spring框架的循环依赖…

Redis高效恢复策略:内存快照与AOF

第1章:Redis宕机恢复的重要性和挑战 大家好,我是小黑。今天咱们来聊聊Redis宕机后的恢复策略。想象一下,你的网站突然宕机了,所有的数据都飘了,这种情况下,快速恢复数据就显得尤为重要。Redis作为一个高性…

令牌桶算法理解学习(限流算法)

令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。 用简单的话语来说就是限制…