IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ELK日志系统部署和使用初体验 -> 正文阅读

[大数据]ELK日志系统部署和使用初体验

ELK分别是Elasticsearch、Logstash、Kibana三个开源框架缩写。

参考文档:

https://www.cnblogs.com/yycc/p/7422628.html

https://blog.csdn.net/qq_22211217/article/details/80764568

https://www.cnblogs.com/zhaijunming5/p/6639553.html

架构:

filebeat --> redis -->logstash --> es --> kibana

关键词:多服务器、转发、汇总、展示、轻量级

  • 每个客户端需要安装filebeat收集PHP日志

  • filebeat把收集到的日志传到redis

  • logstash从redis读取日志,读取一条日志就从redis里删除一条日志

  • logstash把日志发送到es

  • 最后kibana可视化查询日志

官网:https://www.elastic.co/cn/blog/kibana-4-video-tutorials-part-1

四个包都可以解压即用,不用安装

Elasticsearch:

/config/elasticsearch.yml

# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#network.host: 0.0.0.0???????????##服务器ip 本机
#
# Set a custom port for HTTP:
#http.port: 9200?????????????????##服务端口
#
# For more information, consult the network module documentation.

启动elasticsearch

/ELK/elasticsearch/bin/elasticsearch?????#命令窗运行

/ELK/elasticsearch/bin/elasticsearch??-d????#后台线程运行

关闭elasticsearch

ctrl+c #命令窗关闭

ps -ef | grep elastic #后台线程关闭

kill -9 4442 ##pid 4442为查处线程的pid

??????????

启动测试连接:

http://127.0.0.1:9200/

kibana:

/config/kibana.yml

server.port: 5601???????##服务端口

server.host: "0.0.0.0"??##服务器ip??本机

elasticsearch.url: "http://localhost:9200" ##elasticsearch服务地址 与elasticsearch对应

启动:

/ELK/kibana/bin/kibana #命令窗启动

nohup /ELK/kibana/bin/kibana & #后台线程启动

关闭kibana

ctrl+c #命令窗关闭

ps -ef | grep kibana #后台线程关闭

kill -9 4525 ##pid 4525 为查处线程的pid

常见错误:

1、运行一段时间es达到了瓶颈

retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"index [logstash-2019.07.30] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];”})

解决办法1

在kibana开发控制台执行下面语句即可

PUT _settings

??? {

    ??? "index": {

???     "blocks": {
    
???         "read_only_allow_delete": "false"

???         }

???     }

??? }

解决方法2

如果kibana无法执行命令,可以使用下面命令解决

curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

Logstash:

/config/server.conf

# 配置logstash输入源

input {

????# 输出到redis

????redis {

????????host => "localhost"???# redis主机地址

????????port => 6379??????????????# redis端口号

????????data_type => "list"????# 使用发布/订阅模式

????????key => "logstash_list_0"??# 发布通道名称

????}

}

filter{

????##匹配consul healthcheck get request

????if([message]=~ "healthcheck.php"){

????????### 丢弃

????????drop{}

????}

}

# 配置输出的地方

output {

??# 控制台

??stdout { codec => rubydebug }

??# es

??elasticsearch {

????????hosts => [ "localhost:9200" ]

????}

}

启动:

/ELK/logstash/bin/logstash -f? /ELK/logstash/config/server.conf ##命令窗形式

?

nohup??/ELK/logstash/bin/logstash -f

/ELK/logstash/config/server.conf &???##后台线程形式

关闭:

ctrl+c #命令窗关闭

ps -ef | grep logstash #后台线程关闭

kill -9 4617 ##pid 4617 为查处线程的pid

Logstash持久化到磁盘

当发生异常情况,比如logstash重启,有可能发生数据丢失,可以选择logstash持久化到磁盘,修改之前重启logstash数据丢失,修改之后重启logstash数据不丢失。以下是具体操作:

在config/logstash.yml中进行配置以下内容

queue.type: persisted

path.queue: /usr/share/logstash/data #队列存储路径;如果队列类型为persisted,则生效

queue.page_capacity: 250mb #队列为持久化,单个队列大小

queue.max_events: 0 #当启用持久化队列时,队列中未读事件的最大数量,0为不限制

queue.max_bytes: 1024mb #队列最大容量

queue.checkpoint.acks: 1024 #在启用持久队列时强制执行检查点的最大数量,0为不限制

queue.checkpoint.writes: 1024 #在启用持久队列时强制执行检查点之前的最大数量的写入事件,0为不限制

queue.checkpoint.interval: 1000 #当启用持久队列时,在头页面上强制一个检查点的时间间隔

修改完后,重启logstash

filebeat:

/filebeat.yml

output.redis:
   hosts: "127.0.0.1:6379"    #输出到redis的机器
   timeout: 5    #连接超时时间
   key: "logstash_list_0"    #以default_list的keys传输到redis


filebeat.inputs:
# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.
- type: log
  # Change to true to enable this input configuration.
  enabled: true
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /Applications/XAMPP/xamppfiles/htdocs/ELK/filebeat/logs/input         #检测log文件路径
    #- c:\programdata\elasticsearch\logs\*

启动:

/ELK/filebeat/filebeat??-c /ELK/filebeat/filebeat.yml

其他配置?/filebeat/modules.d/**

配置路径path

修改文件名,去掉disable

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:37:33  更:2021-07-10 14:37:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 23:09:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码