logstash安装:
## 解压安装
tar -zxvf logstash-6.6.0.tar.gz -C /usr/local/
## conf下配置文件说明:
# logstash配置文件:/config/logstash.yml
# JVM参数文件:/config/jvm.options
# 日志格式配置文件:log4j2.properties
# 制作Linux服务参数:/config/startup.options
## 配置文件说明:
vim /usr/local/logstash-6.6.0/config/logstash.yml
--path.config 或 –f :logstash启动时使用的配置文件
--configtest 或 –t:测试 Logstash 读取到的配置文件语法是否能正常解析
--log或-l:日志输出存储位置
--pipeline.workers 或 –w:运行 filter 和 output 的 pipeline 线程数量。默认是 CPU 核数。
--pipeline.batch.size 或 –b:每个 Logstash pipeline 线程,在执行具体的 filter 和 output 函数之前,最多能累积的
--pipeline.batch.delay 或 –u:每个 Logstash pipeline 线程,在打包批量日志的时候,最多等待几毫秒。
--verbose:输出调试日志
--debug:输出更多的调试日志
## 虚拟机配置
vim /usr/local/logstash-6.6.0/config/jvm.options
## 启动配置 比如启动时的java位置、LS的home等
vim /usr/local/logstash-6.6.0/config/startup.options
## 数据收集目录:/usr/local/logstash-6.6.0/data
## 插件目录:/usr/local/logstash-6.6.0/vendor/bundle/jruby/1.9/gems
## 查看插件命令:
/usr/local/logstash-6.6.0/bin/logstash-plugin list
## 更新插件命令:
/usr/local/logstash-6.6.0/bin/logstash-plugin update logstash-xxxx-xxxxx
## 安装插件命令:
/usr/local/logstash-6.6.0/bin/logstash-plugin install logstash-xxxx-xxxxx
## 插件地址: https://github.com/logstash-plugins
logstash语法与基本使用:
1. Logstash设计了自己的DSL包括有区域,注释,数据类型(布尔值,字符串,数值,数组,哈希),条件判断字段引用等。
2. Logstash用{}来定义区域。区域内可以包括插件区域定义,你可以在一个区域内定义多个插件。插件区域内则可以定义键值对设置。
3. 格式、语法、使用方式:
# 注释.
input {
...
}
filter {
...
}
Xpack-Watchs基本使用:
首先看一个watcher的例子:
## 创建一个watcher,比如定义一个trigger 每个10s钟看一下input里的数据
PUT _xpack/watcher/watch/school_watcher
{
"trigger": {
"schedule": {
"interval": "10s"
}
},
## 查看任务信息
"input": {
"search": {
"request": {
## 监控具体索引
"indices": ["school*"],
## body里面具体些搜索语句
"body": {
"size": 0,
"query": {
"match": {
## 比如索引里面name 有 hello 则进行报警
"name": "hello"
}
}
}
}
}
},
## 对于上面的查询结果进行比较:
"condition": {
## compare进行比较
"compare": {
## 上面的query查询的结果会放入到ctx.payload中:
## 比如获取 ctx.payload.hits.total ctx.payload._shards.total 等等
"ctx.payload.hits.total": {
"gt": 0
}
}
},
## transform作用:重新查询出文档内容赋值给ctx.payload
"transform": {
"search": {
"request": {
"indices": ["school*"],
"body": {
"size": 10,
"query": {
"match": {
"name": "hello"
}
}
}
}
}