使用 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/
