我按照别人的教程安装了一遍ELK,表示尊敬,送上大佬博客地址:ELK安装教程
但是安装过程中发现一些错误之处,所以自己动手装了几遍,现在总结下来,以备下次学习。
我安装的版本是elk7.3.0,mysql版本是8.0.20。
踩坑:logstash用的MySQL驱动jar包版本必须要和mysql版本对应上。比如说,我的MySQL版本是8.0.20,那么MySQL的驱动jar包也应该是8.0.20。如果你的elk是安装在阿里云上,也可以
1,安装es
下载es镜像
docker pull docker.io/elasticsearch:7.3.0
启动
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es -d docker.io/elasticsearch:7.3.0
2,安装kibana
下载kibana镜像
docker pull docker.io/kibana:7.3.0
启动
docker run --rm -p 5601:5601 \
-e ELASTICSEARCH_URL=http://localhost:9200 --name kibana \
-v /home/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml -d kibana:7.3.0
这个启动时挂载了一个配置文件kibana.yml,到目录/home/elk/kibana/config/目录下,新建配置文件kibana.yml,内容如下
#
## ** THIS IS AN AUTO-GENERATED FILE **
##
#
## Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.44.130:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN #汉化
3,安装logstash
下载镜像
docker pull docker.io/logstash:7.3.0
为了运行获取容器里面的配置文件(配置文件在本地的话,方便修改和多次使用),我们先新建一个logstash容器,然后将配置文件从容器中复制到本地。
运行容器
docker run --name logstash -d -p 5044:5044 -p 9600:9600 logstash:7.3.0
提前在本地创建配置文件目录并赋权限。我是root用户下安装的elk,所以直接赋root用户权限。
mkdir -p /home/elk/logstash && \
chown -R root /home/elk/logstash
拷贝配置文件
docker cp logstash:/usr/share/logstash/config /home/elk/logstash/config
删除容器
docker rm -f logstash
创建正式容器,到/home/elk/logstash/config下修改配置文件logstash-sample.conf
input {
jdbc {
jdbc_driver_library => "mysql-connector-java-8.0.20.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://mysql的ip地址:3306/数据库"
jdbc_user => "root"
jdbc_password => "123456"
schedule => "* * * * *"
jdbc_default_timezone => "Asia/Shanghai"
statement => "select * from table"
use_column_value => false
}
}
output{
elasticsearch{
hosts => "es地址:9200" # ES连接
index => "uum_user_log" # ES索引名称
document_id => "%{id}" # id对应MYSQL中主键字段
}
}
新建一个路径 /home/elk/jars/,存放相关jar包。从mysql官网下载驱动jar包mysql-connector-java-8.0.20.jar到 /home/elk/jars/ 目录下,这样在创建logstash容器时就会将jar包映射到容器的/usr/share/logstash/config/路径下
正式创建容器
docker run --name logstash -d \
-p 5044:5044 \
-p 9600:9600 \
-v /home/elk/logstash/config:/usr/share/logstash/config \
-v /home/elk/jars/mysql-connector-java-8.0.20.jar:/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.20.jar \
-e xpack.monitoring.elasticsearch.hosts=http://esIp地址:9200 \
logstash:7.3.0 \
-f /usr/share/logstash/config/logstash-sample.conf