作者: | 来源:互联网 | 2023-08-16 21:55
首先先搭建好ELK中的ElasticSearch存储数据和Logstash采集数据ElasticSearch本地快速搭建与使用es的独立性也很强,它本身是一个分布式的搜索引擎,通过
首先先搭建好ELK中的ElasticSearch存储数据 和Logstash采集数据
ElasticSearch 本地快速搭建与使用
es的独立性也很强,它本身是一个分布式的搜索引擎,通过倒排序索引对存储的数据进行索引。
当输入查询关键字之后,es依据命中结果的匹配度有序返回结果,效果就像大家百度或者google搜索一样。
在ELK组合中,担当的是数据存储、索引和提供查询接口的功能。
Logstash安装配置
kibana图形显示数据
kibana是一个数据展示的客户端,提供对es中数据的可视化搜索和展示功能,主要提供了时间维度和数据中字段值的检索。以及功能丰富的看板,能够添加曲线图、饼图、地址分布图等多种样式的展示图形。
elasticsearch 服务安全配置
elasticsearch 服务安全配置
一、目前主要通过插件的形式来控制:
- 常用的插件主要包括:elasticsearch-http-basic,search-guard,shield
- 由于shield是收费的暂时还未研究(研究后统一补充)
- search-guard主要用于elasticsearch2.x以后的版本(研究后统一补充)
- elasticsearch-http-basic主要用于elasticsearch1.x的版本
- 基于目前我们es集群大部分都是1.5.2版本的,所以主要使用http-basic来控制来自http请求的访问。
二、elasticsearch-http-basic安装:
- 下载elasticsearch-http-basic-1.5.1.jar(下载地址:https://github.com/Asquera/elasticsearch-http-basic/releases)
- 在ES的plugins文件夹下新建http-basic文件夹
- 把下载的 elasticsearch-http-basic-1.5.1.jar拷贝到新建的http-basic文件夹下
- 修改ES的配置文件elasticsearch.yml,在文件末尾添加以下配置:
配置名 默认值 说明
http.basic.enabled true 开关,开启会接管全部HTTP连接
http.basic.user "admin" 账号
http.basic.password "admin_pw" 密码
http.basic.ipwhitelist ["localhost", "127.0.0.1"] 白名单内的ip访问不需要通过账号和密码,支持ip和主机名,不支持ip区间或正则
http.basic.trusted_proxy_chains [] 信任代理列表
http.basic.log false 把无授权的访问事件添加到ES的日志
http.basic.xforward "" 记载代理路径的header字段名
5.重启ES集群
目前我们主要通过http.basic.ipwhitelist 白名单 + 用户名、密码来控制外部机器对ES集群的http请求,
1.在白名单内的ip列表用户无需验证可直接通过ES节点的ip地址访问ES,白名单外的用户无权访问ES集群
2.由于白名单无法控制通过域名的访问,如果要通过域名访问ES必须要通过用户名和密码来访问
安装
下载地址:https://www.elastic.co/downloads/kibana
解压:tar zxvf kibana-6.4.0-linux-x64.tar.gz
配置 Kibana
Kibana server 启动时从 kibana.yml 文件中读取配置属性。Kibana 默认配置 localhost:5601 。改变主机和端口号,或者连接其他机器上的 Elasticsearch,需要更新 kibana.yml 文件。也可以启用 SSL 和设置其他选项。
Kibana 基础配置项
https://www.elastic.co/guide/cn/kibana/current/settings.html(官方配置文档)
#默认值: 5601 Kibana 由后端服务器提供服务,该配置指定使用的端口号。
server.port: 5601
#默认值: "localhost" 指定后端服务器的主机地址。
server.host: "192.168.1.191"
#默认值: "http://localhost:9200" 用来处理所有查询的 Elasticsearch 实例的 URL 。
elasticsearch.url: "http://192.168.1.191:9200"
启动Kibana
./kibana //不能关闭终端
nohup ./kibana > /nohub.out & //可关闭终端,在nohup.out中查看log
在浏览器中访问:http://192.168.1.191:5601/
输入*配备所有目录 选择其中一个生成数据
ELK日志平台整合
因为没有特负责的业务,所以这里采用FileBeats收集日志直接输出到elasticsearch ,用kibana展示查询
安装运行 FileBeats
FileBeats 也提供了下载包,地址为 https://www.elastic.co/downloads/beats/filebeat 。找到系统对应的包下载后解压即可。
tar zxvf filebeat-6.2.2-darwin-x86_64.tar.gz
cd filebeat-6.2.2-darwin-x86_64
进入目录编辑 filebeat.yml 找到对应的配置项,配置如下
###################### Filebeat Configuration Example #########################
# 此文件是一个示例配置文件,仅突出显示最常见的配置文件
#=========================== Filebeat inputs =============================
filebeat.inputs:
# 每个 - 是一个输入。 大多数选项可以在输入级别设置,因此您可以使用不同的输入进行各种配置。下面是输入特定的配置。
- type: log
# 为true以启用此输入配置。
enabled: true
# 采集文件的路径
paths:
- /usr/local/apache-tomcat-8.5.34/logs/*.txt
#要匹配的正则表达式列表。 它会删除与列表中任何正则表达式匹配的行。
#exclude_lines: ['^DBG']
# 要匹配的正则表达式列表
#include_lines: ['^ERR', '^WARN']
# 排除文件。 要匹配的正则表达式列表
#exclude_files: ['.gz$']
# 可选的附加字段。 可以***选择这些字段以将其他信息添加到已爬网日志文件以进行过滤
#fields:
# level: debug
# review: 1
### Multiline options
# 多行可用于跨越多行的日志消息。 这对于Java Stack Traces或C-Line Continuation来说很常见
# 必须匹配的正则表达式模式。 示例模式匹配以[以[]开头的所有行
#multiline.pattern: ^\[
# 定义是否取消设置的模式。 默认值为false。
#multiline.negate: false
#============================= Filebeat modules ===============================
filebeat.config.modules:
# 用于配置加载的Glob模式
path: ${path.config}/modules.d/*.yml
#设置为true以启用配置重新加载
reload.enabled: false
#检查路径下文件的更改周期
#reload.period: 10s
#====================Elasticsearch模板设置 ==========================
setup.template.settings:
index.number_of_shards: 3
#index.codec: best_compression
#_source.enabled: false
#============================== Kibana 设置=====================================
setup.kibana:
host: "192.168.1.191:5601"
#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
hosts: ["192.168.1.191:9200"]
template.name: "filebeat"
template.path: "filebeat.template.json"
template.overwrite: false
# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
配置完成后执行如下命令,启动 FileBeat 即可(elasticsearch先启动)
# FileBeat 需要以 root 身份启动,因此先更改配置文件的权限
sudo chown root filebeat.yml
sudo ./filebeat -e -c filebeat.yml -d "publish"
#后台启动
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
访问kibana就会出现新加入的索引列表filebeat-6.4.0-2018.09.29