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日志分析(2)Logstash -> 正文阅读

[大数据]三阶段--elk日志分析(2)Logstash

logstash跟filebeat的作用差不多

收集处理日志,推送到相关地方

安装测试运行

下载logstash-7.13.2-linux-x86_64.tar.gz包,并解压,大小约344M
修改名字logstash-7.13.2为logstash

Logstash管道两个必需元素 input 和 output
input模块收集,选择filters(过滤),然后输出outputs(可以输出到屏幕或者elk集群存起来)
主文件:/usr/local/logstash/bin/logstash
进入logstash的安装主目录下执行
/usr/local/logstash/bin/logstash -e ' input { stdin { type => stdin } } output { stdout { codec => rubydebug } } '
速度由性能决定,性能好点的速度可能会快一点,所以耐心等待。

配置输入输出

创建一个任意文件,并写入,作为logstash的管道配置文件
vim /usr/local/logstash/config/first-pipeline.conf
input { stdin { } } output { stdout { } }

配置文件语法测试
/usr/local/logstash/bin/logstash -f config/first-pipline.conf --config.test_and_exit
出现Configuration OK字样
/usr/local/logstash/bin/logstash -f config/first-pipline.conf运行

Grok过滤器插件

grok过滤器插件,解析web日志

将非结构化日志数据解析为结构化和可查询的内容
摘取感兴趣的片段
详细参考grok文档

  • 准备一个用于测试的日志
    vim /var/log/httpd.log
83.149.9.216 ‐ ‐ [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash‐monitorama‐ 2013/imageskibana‐search.png HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash‐monitorama‐2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"

没换机器,为避免冲突,删掉/usr/local/logstash/data/*
rm -rf /usr/local/logstash/data/*

input {
    file {
		path => ["/var/log/httpd.log"]
		start_position => "beginning"
	}
}
filter {
	grok {
		match => { "message" => "%{COMBINEDAPACHELOG}" }
	}
	mutate {
	##重写字段,rename重命名名称,把clientip改成cip。想定义哪个字段改哪个
		rename => {
			"clientip" => "cip"
			}
	}
	##删除字段remove_field,如message input_type @..等
	mutate { remove_field => ["message","input_type","@version","fields"] }
}
output {
	stdout { }
}

测试:
./bin/logstash -f config/first-pipeline.conf

在这里插入代码片

geoip过滤器插件–增强数据编辑

对信息进行来源查询—地理位置来源查询

input {
    file {
		path => ["/var/log/httpd.log"]
		start_position => "beginning"
	}
}
filter {
	grok {
		match => { "message" => "%{COMBINEDAPACHELOG}" }
	}
	geoip {
		source => "clientip"
	}

}
output {
	stdout { }
}

测试:
./bin/logstash -f config/first-pipeline.conf

配置接收Beats的输入

input {
#    file {
#		path => ["/var/log/httpd.log"]
#		start_position => "beginning"
#	}
	beats {
		port => 5044
	}
}
filter {
	grok {
		match => { "message" => "%{COMBINEDAPACHELOG}" }
	}
	#mutate {
	#	rename => {
	#		"clientip" => "cip"
	#		}
	#}
	#mutate { remove_field => ["message","input_type","@version","fields"] }
	#geoip {
	#	source => "clientip"
	#}
	
}
output {
	stdout { }
}

测试

清除缓存
rm -rf /usr/local/filebeat/data/
cd /usr/local/filebeat
./filebeat

ES集群

elasticsearch

  1. 基本介绍
    elastic search是elastic stack核心的分布式搜索和分析引擎。logstash和beats有助于收集,聚合和丰富你的数据并将其存储在elastic search中,使用kibana,可以交互探索,可视化和共享数据的见解,并管理和监视堆栈,elasticsearch是发生索引、搜索、分析数据的地方
    支持的数据类型
  • 结构化文本
  • 非结构化文本
  • 数字数据
  • 地理空间数据
    elasticsearch是***面向文档***的,
  • 文档是所有可搜索数据的最小单位:日志文件中的日志项;一部电影的具体信息,一张唱片的详细信息;MP3播放器里的一首歌,一篇PDF文档中的具体内容。
  • 文档会被序列化成json格式,保存在elasticsearch中:json对象由字段组成;每个字段都有对应的字段类型(字符串,数值,布尔,日期,二进制,范围类型)
  • 每个文档都有一个唯一id:可以自己指定id,或者通过elasticsearch自动生成

文档元数据

  • 元数据用于标注文档的相关信息
  • _index 文档所属的索引名
  • _type 文档所属的类型名
  • _id 唯一id

索引
增删改查
与关系型数据库的比较

ES集群部署

centos7 最少4G的内存,通常以集群出现,至少三个节点(三台服务器),更改主机名为ela1、ela2、ela3,并进行域名解析vim /etc/hosts

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch		#获取key
vim /etc/yum.repos.d/es.repo		#创建yum仓库
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG‐KEY‐elasticsearch
enabled=0
autorefresh=1 
type=rpm‐md

yum install -y elasticsearch		#安装es

##另外两台机器:
vim /etc/yum.repos.d/es.repo		#创建yum仓库
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=0
gpgkey=https://artifacts.elastic.co/GPG‐KEY‐elasticsearch
enabled=1
autorefresh=1 
type=rpm‐md
##然后安装
yum install -y elasticsearch
##过程很慢。因为我网不行,所以是下载的tar包,然后上传解压的。

##安装完成后
systemctl daemon-reload		#重新装载es程序
systemctl enable elasticsearch.service		#开机启动
systemctl start elasticsearch.service		#启动es
netstat -anpt		#查看开放的端口,当出现9200和9300的时候,es是正常启动的




sysctl -w vm.max_map_count=262144 > /etc/sysctl.conf		#修改内核参数,设置内存映射
sysctl -p		#
vim /etc/security/limits.conf		#设置文件描述符数量
tail /etc/security/limits.conf 
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

# End of file
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

二进制安装的配置文件的位置vim /usr/local/elasticsearch/config/elasticsearch.yml
rpm包安装的配置文件的位置vim /etc/elasticsearch/elasticsearch.yml

cluster.name: elk 		#cluster.name集群名称
node.name: ela1		#注意这里,节点名称,2、3节点的改成自己的名字,别的地方都一样 
node.data: true 		#指定节点是否为数据节点,数据节点包含并管理索引的一部分
network.host: 0.0.0.0 		#监听哪个网卡
http.port: 9200 		#监听端口,对外的
discovery.seed_hosts: #官方指定写法如下,3台机器一样 指定集群成员,用于主动发现他们,要把所有的机器都写进来,包括本机
  ‐ ela1 #节点1主机名称 
  ‐ 192.168.122.106:9300 #节点2的ip加端口 9300是对内的
  ‐ 192.168.122.218 #节点3的ip 
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]		#指定有资格称为master的节点,这里是所有的都由资格

启动:systemctl start elasticsearch.server 注意先启动ela1,(然后再启动ela2、3,这里先不启动)
systemctl enable elasticsearch.server
查看集群状态curl -X GET "localhost:9200/_cat/health?v"
失败了说明没起起来,重启再开一次服务,成功了再开ela2和3,然后查看集群节点都有哪些:curl -X GET "localhost:9200/_cat/nodes?v"
三台就成功了。
配置很简单,测试的适合内存不足,很难受。

ES集群测试

要确保Elasticsearch集群可用
vim /usr/local/logstash/config/first-pipeline.conf

input {
        beats {
                port => 5044
        }
}
filter {
        grok {
                match => { "message" => "%{COMBINEDAPACHELOG}" }
                remove_field => [ "message" ]
        }
        geoip {
                source => "clientip"
        }
}
output {
        stdout { 
                code => rubydebug
        }
        elasticesearch {
                hosts => [ "10.9.30.108:9200","10.9.30.13:9200","10.9.30.182:9200" ]
        }

}

先启动logstash cd /usr/local/logstash/
./bin/logstash -f config/first-pipeline.conf --config.reload.automatic
再验证ES集群中是否创建了索引:
curl -X GET "localhost:9200/_cat/indices"出现如下,成功(三个节点都出现。)
green open logstash-2021.07.14-000001 rf2l_VJxQJuL2o6gYEMp6Q 1 1 0 0 416b 208b

kibana

kibana7.13.2 装哪个机器上都行,不是非得安装在1上
搜索和观察日志,可视化分析,管理监控

部署

下载包kibana-7.13.2-linux-x86_64.tar.gz
解压并移动包tar xvzf kibana-7.13.2-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv kibana-7.13.2-linux-x86_64/ kibana
修改配置文件

vim ./kibana/config/kibana.yml
server.port: 5601 #改 
server.host: "0.0.0.0" #改 
# 用于连接到 ES 集群的地址和端口 
elasticsearch.hosts: ["http://ela1:9200"] #改 

# 日志文件路径 
# logging.dest: stdout 
logging.dest: /var/log/kibana/kibana.log #改 
# 设置页面的字体为中文 
i18n.locale: "zh‐CN" #改

添加用户useradd ela
创建目录mkdir /run/kibana /var/log/kibana
更改目录的属主和属组chown ela.ela /run/kibana/ /var/log/kibana/ /usr/local/kibana/ -R
运行kibananohup /usr/local/kibana/bin/kibana --allow-root &
或者su ela
/usr.local/kibana/bin/kibana

浏览器访问http://本机ip:5601

创建索引模式

菜单—Management—Srack Management----kibana—索引模式----创建索引模式
索引模式名称:写上然后下一步

查看数据

菜单—Analytics—Discover

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 16:15:11  更:2021-07-15 16:15:18 
 
开发: 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/3 0:23:42-

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