折腾了一套 ELK Stack 日志平台(三)

·  阅读 65

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情

你好,我是悟空呀~

前言

最近在折腾 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。

专门实操了一波,这玩意看起来简单,但是里面的流程步骤还是很多的,而且遇到了很多坑。在此记录和总结下。

部署 logstash 日志过滤、转换工具

安装 Java JDK

$ sudo apt install openjdk-8-jdk
复制代码

修改 /etc/profile 文件

sudo vim /etc/profile
复制代码

添加如下的行到你的 .profile 文件中:

# JAVA
JAVA_HOME="/usr/lib/jdk/jdk-12"
PATH="$PATH:$JAVA_HOME/bin"
复制代码

再在命令行中打入如下的命令:

source /etc/profile
复制代码

查看 java 是否配置成功

java -version
复制代码

安装 logstash

下载 logstash 安装包

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.7.1.tar.gz
复制代码

解压安装

tar -xzvf logstash-7.7.1.tar.gz
复制代码

要测试 Logstash 安装,请运行最基本的 Logstash 管道。 例如:

cd logstash-7.7.1
bin/logstash -e 'input { stdin { } } output { stdout {} }'
复制代码

等 Logstash 完成启动后,我们在 stdin 里输入一下文字,我们可以看到如下的输出:

当我们打入一行字符然后回车,那么我们马上可以在 stdout 上看到输出的信息。如果我们能看到这个输出,说明我们的 Logstash 的安装是成功的。

我们进入到 Logstash 安装目录,并修改 config/logstash.yml 文件。我们把 config.reload.automatic 设置为 true。

另外一种运行 Logstash 的方式,也是一种最为常见的运行方式,运行时指定 logstash 配置文件。

配置 logstash

Logstash 配置文件有两个必需元素,输入(inputs)和输出(ouputs),以及一个可选元素 filters。 输入插件配置来源数据,过滤器插件在你指定时修改数据,输出插件将数据写入目标。

我们首先需要创建一个配置文件,配置内容如下图所示:

创建 kibana 配置文件 weblog.conf

mkdir -p /logstash-7.7.1/streamconf
vim /logstash-7.7.1/streamconf/weblog.conf
复制代码

配置内容如下:

input {
  tcp {
    port => 9900
  }
}
 
filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
 
  mutate {
    convert => {
      "bytes" => "integer"
    }
  }
 
  geoip {
    source => "clientip"
  }
 
  useragent {
    source => "agent"
    target => "useragent"
  }
 
  date {
    match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
  }
}
 
output {
  stdout { }
 
  elasticsearch {
    hosts => ["localhost:9200"]
  }
}
复制代码

在上面,我们同时保留两个输出:stdout 及 elasticsearch。事实上,我们可以定义很多个的输出。stdout 输出对于我们初期的调试是非常有帮助的。等我们完善了所有的调试,我们可以把上面的 stdout 输出关掉。

等更新完这个配置文件后,我们在另外一个 console 中发送第一个 log:

head -n 1 weblog-sample.log | nc localhost 9900
复制代码

这个命令的意思:我们使用 nc 应用读取第一行数据,然后发送到 TCP 端口号 9900,并查看 console 的输出。

这里的 weblog-sample.log 为样例数据,内容如下,把它放到本地作为日志文件。

14.49.42.25 - - [12/May/2019:01:24:44 +0000] "GET /articles/ppp-over-ssh/ HTTP/1.1" 200 18586 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5"

logstash 控制台打印出了 weblog-samle.log 中的内容:

这一次,我们打开 Kibana,执行命令,成功看到 es 中的这条记录。

GET logstash/_search
复制代码

分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改