使用 Docker 搭建一套 ELK

使用 docker 搭建一套 ELK

本文记录从零搭建一套 ELK 的实践过程。

环境

  • Ubuntu 18.04.1 LTS 2c4g
  • Docker version 20.10.5

安装

整套 ELK 可以使用 Elastic stack (ELK) on Docker 的 Docker Compose 来安装,非常方便。

git clone https://github.com/deviantony/docker-elk.git

cd docker-elk

docker-compose up

启动完,你可以执行 docker logs -f <container_name> 查看对应容器的日志,比如 docker logs -f docker-elk_logstash_1。不出意外的话,可以看到你的 kibana 服务已经跑在 <your ip>:5601 上了。

导入数据

服务已经起来了,这时候我们需要将数据导入到 es 里。这里我们使用 logstash 的 pipe 来导入数据。

以导入 mysql 单表数据作为例子。

首先需要下载 mysql-connector-java-8.0.23.jar 文件,放入到 /usr/share/logstash/logstash-core/lib/jars/ 里。

然后修改 logstash.conf。

vim logstash/pipeline/logstash.conf

修改默认配置为:

input {
  beats {
    port => 5044
  }

  jdbc {
    type => "rds"
    jdbc_connection_string => "jdbc:mysql://<your_mysql_server_url>:<port>/<your_db>"
    jdbc_user => ""
    jdbc_password => ""
    jdbc_validate_connection => true
    jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.23.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    statement => "SELECT * FROM <your_table>"
  }
}

output {
  elasticsearch {
    hosts => "elasticsearch:9200"
    index => "skdemo-test-%{+YYYY.MM.dd}"
    user => "elastic"
    password => "changeme"
  }
}

重启 logstash 服务:

docker-compose restart logstash

查看 logstash 日志应该就能看到 sql 语句被执行了。

此时回到页面 /app/management/kibana/indexPatterns 为导入的数据创建索引模式。

然后到 /app/visualize 就可以创建可视化图表了。

到这里为止就是这两天搭建 ELK 的成果。成功起了服务,成功导入数据,成功创建一张图表。

接下来要尝试:

  • 多数据库增量同步数据
  • 原有前端业务接入 ELK 可视化图表

本文参考

作者:hayato
文章版权:本站所有文章版权依赖于 CC BY-NC-SA 3.0 Unported License

本文链接:https://blog.axis-studio.org/2021/04/12/使用-docker-搭建一套-ELK/