Linux——logstash数据采集&kibana数据可视化

1. logstash简介

Logstash是一个开源的服务器端数据处理管道。
Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器。
在这里插入图片描述

输入

采集各种样式、大小和来源的数据
在这里插入图片描述

过滤器

实时解析和转换数据
数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,
识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、
更快速地分析和实现商业价值。
在这里插入图片描述

输出

选择存储库,导出数据
在这里插入图片描述

2. logstash安装部署

logstash使用java编写,所以需要安装jdk

rpm -ivh jdk-8u171-linux-x64.rpm
rpm -ivh logstash-7.6.1.rpm

logstash区分文件版本

logstash会把进度保存到sincedb文件中,目录为/usr/share/logstash/data/plugins/inputs/file/,清空对应的sincedb文件,logstash将从头上传文件内容

cat .sincedb_452905a167cf4509fd08acb964fdb20c
20297 0 64768 119226 1551859343.6468308
1. inode编号
2. 文件系统的主要设备号
3. 文件系统的次要设备号
4. 文件中的当前字节偏移量
5. 最后一个活动时间戳(浮点数)
6. 与此记录匹配的最后一个已知路径

logstash输入输出案例

- 标准输入输出

/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

将标准输入输出至标准输出

在这里插入图片描述

- 标准输入至文件

vim file.conf
input {
	stdin {}
}

output {
 file {
   path => "/tmp/testfile"
   codec => line { format => "custom format: %{message}"}
 }
}
 /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf 

在这里插入图片描述

- 标准输入到es主机

vim es.conf
#####################
input{
	stdin {}
}

output {
	stdout {}

	elasticsearch {
		hosts => ["172.25.52.3:9200"]
		index => "logstash-%{+yyyy.MM.dd}"
	}
}
###################
 /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf

在这里插入图片描述在elasticsearch-head中查看刚才输入的信息
在这里插入图片描述

- 文件内容输出到es主机

logstash读取文件时,以logstash用户访问,因此需要具有访问文件的权限

chmod 644 /var/log/messages
vim message-es.conf
######################
input {
	file {
		
		path => "/var/log/messages"
		start_position => "beginning"
	}
}
output {
	stdout {}

	elasticsearch {
		hosts => "172.25.52.3:9200"
		index => "local-syslog-%{+YYYY.MM.dd}"
	}
}
######################
 /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/message-es.conf

在这里插入图片描述
在elasticsearch-head中查看信息
在这里插入图片描述

- 接受远程日志

在远端主机配置rsyslog开放端口,指定日志服务器至logstash主机

vim /etc/rsyslog.conf
systemctl restart rsyslog
$ModLoad imudp
$UDPServerRun 514

*.* @@172.25.52.2:514

编辑 logstash 配置文件

vim remote-log.conf 
###########
input {
	syslog {
		port => 514
	}
}

output {
	stdout { }
	elasticsearch {
                hosts => "172.25.52.3:9200"
                index => "remote-syslog-%{+YYYY.MM.dd}"
	}
}
#######
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/remote-es.conf

在远端主机生成日志
在这里插入图片描述在es-head网页查看
在这里插入图片描述

- 多行合并

多行过滤可以把多行日志记录合并为一行事件

vim /etc/logstash/conf.d/multiline.conf
input {
      file {
        path => "/var/log/my-es.log"
        start_position => "beginning"
          codec => multiline {
            pattern => "^\["  #将以[开头的日志记录过滤
            negate => "true"
            what => "previous"
          }
      }
}

output {
	stdout {}

	elasticsearch {
		hosts => ["172.25.52.3:9200"]
		index => "eslog-%{+yyyy.MM.dd}"
	}

}

过滤 filter 案例

logstash官方提供了许多应用适配模板以供参考,存放在/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns 内。
安装httpd

yum  install -y httpd

修改httpd日志文件权限

chmod 755 /var/log/httpd/

编写logstash过滤文件

vim grok.conf
input {
        file {
                path => "/var/log/httpd/access_log"
                start_position => "beginning"
        }

}

filter {
        grok {
        match => { "message" => "%{HTTPD_COMBINEDLOG}" } #httpd模板
        }
}

output {
        stdout {}

        elasticsearch {
                hosts => ["172.25.52.3:9200"]
                index => "apachelog-%{+yyyy.MM.dd}"
        }

}

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf 

访问httpd主页

ab -n 100 -c1 http://172.25.52.2/index.html

在这里插入图片描述
在logstash端查看过滤情况
在这里插入图片描述在这里插入图片描述

3. kibana数据可视化

Kibana 开发工具为开发人员提供了多种强大方法来帮助其与Elastic Stack 进行交互。

官网 : https://elasticsearch.cn/download/

rpm -ivh kibana-7.6.1-x86_64.rpm
vim /etc/kibana/kibana.yml
server.port: 5601 #服务端口
server.host: "172.25.52.2" #服务监听地址
elasticsearch.hosts: ["http://172.25.52.3:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"

启动服务

systemctl enable --now kibana

访问kibana
在这里插入图片描述

httpd 日志仪表板

创建索引策略 指定目标日志,时间使用*匹配,时间筛选字段名称:@timestamp
在这里插入图片描述
分别新建可视化指标以及柱状图,选中设定的apachelog

在这里插入图片描述

指标可视化 设定时间为今天或其余有数据的时间
在这里插入图片描述柱状图设定 x坐标 ,时间同样设定在有数据的范围
在这里插入图片描述分别保存两个可视化项目,新建仪表板,添加两个保存好的可视化项目

在这里插入图片描述在这里插入图片描述
即可看到httpd的有关日志指标
在这里插入图片描述

集群监控模式

集群模式下kibana可以通过不同的插件采集到集群内部的数据信息。
首先,在es-master节点创建证书

cd /usr/share/elasticsearch/
bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
cp elastic-certificates.p12 elastic-stack-ca.p12 /etc/elasticsearch
cd /etc/elasticsearch
chown elasticsearch elastic-certificates.p12 elastic-stack-ca.p12

将证书复制至其余节点的/etc/elasticsearch下,并同样修改所有者为elasticsearch用户
在所有es节点开启xpack认证

vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12

重启ES集群的所有节点上的es服务,成功后,在master节点设定用户密码

systemctl restart elasticsearch
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

在这里插入图片描述在部署kibana的节点上设置用户密码

vim /etc/kibana/kibana.yml
systemctl restart kibana
elasticsearch.username: "kibana"
elasticsearch.password: "westos"

重新登陆kibana
在这里插入图片描述此时可以通过内部采集模式查看ES节点工作状态
在这里插入图片描述而logstash的采集也需要增加用户认证才可以继续传输数据

output {
	stdout {}

	elasticsearch {
		hosts => ["172.25.52.3:9200"]
		index => "apachelog-%{+yyyy.MM.dd}"
		user => "elastic"
		password => "westos"
	}
	
}

在这里插入图片描述

ES-head Xpack设定

在所有节点的es配置文件中添加访问支持

http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

重启es服务

systemctl restart elasticsearch

访问head服务时添加用户名密码认证,可以正常访问

http://172.25.52.4:9100/?auth_user=elastic&auth_password=westos

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值