记录….配置ELK的全过程,其中 为了方便配置和数据库的连接,logstash安装在物理机上,Elasticsearch 和Kibana安装在docker中
(PS:主要是记录过程,有些步骤带主观意味直接跳过,未做过多描述,有疑问的可以留言沟通!)
先决条件:
1.本机安装java1.8 jdr,并添加到环境变量
2.本机安装docker环境
配置过程
1.docker中安装es:
在powershell 中键入 'docker pull elasticsearch:7.3.0'(注意小写)
2.docker中安装kibana:
在powershell 中键入 'docker pull kibana:7.3.0'(注意小写)
3.windows安装logstash
在官网下载:https://www.elastic.co/cn/downloads/logstash,下载完成后解压在指定文件夹
图例是本次安装地址
启动实例
1.docker创建Elasticsearch,Kibanam
powershell 中 键入 'docker run -d –name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.3.0'
创建名为 es的Elasticsearch实例
powershell 中 键入 'docker run –name kibana730 -p 5601:5601 -d kibana:7.3.0'
创建名为 es的Elasticsearch实例
完成后 键入'docker ps ' 查看创建好的实例
其中,这个地方需要对kibana做一个单独的另外修改(踩过的坑!)
键入'docker exec -it kibana /bin/bash'进入创建的kibana实例内部
进入到目录下,查看配置文件
键入 'cat kibana.yml'
将文件第一处红框的内的ip地址修改成和图例中一样,同时新建第一处红框中的内容(功能是:kibana汉化)
(PS:不知道怎么修改linux文件内容的童鞋,百度查查对应的指令,本文不做过多赘述)
修改完成后,
键入 'docker stop kibana' 停止实例
然后
键入 'docker start kibana' 开启实例
即可.
到这里,ES和Kibana已经全部创建完成,
打开浏览器:
http://192.168.99.100:5601 查看kibana
http://192.168.99.100:9200 查看 es
2.使用logstash进行将数据存入ES实例中
导入SQL server和MySQL数据,需要引入相应的驱动包:
SQL server驱动包
MySQL驱动包
下载完成后将文件放在 logstash 的lib目录下
(1).引入SQL server数据:
在logstash 的bin目录下新建一个 TestMssql.conf 文本文件,输入下列代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 1input {
2 jdbc {
3 jdbc_driver_library => "F:\logstash-7.3.1\lib\驱动包名"
4 jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
5 jdbc_connection_string => "jdbc:sqlserver://你的数据库ip地址;databaseName=你的数据库;"
6 jdbc_user => "登录名"
7 jdbc_password => "密码"
8 jdbc_default_timezone => "Asia/Shanghai"
9 statement => "要执行的语句"
10 }
11}
12}
13output {
14 elasticsearch {
15 hosts => ["192.168.99.100:9200"]
16 index => "logstash-要创建的索引名"
17 }
18}
19
按照中文提示,替换为相应的实际代码即可
(2).引入MySQL数据
在logstash 的bin目录下新建一个 TestMssql.conf 文本文件,输入下列代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 1input {
2 jdbc {
3 jdbc_driver_library => "F:\logstash-7.3.1\lib\驱动包名"
4 jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
5 jdbc_connection_string => "jdbc:mysql://你的数据库ip地址/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8"
6 jdbc_user => "你的登录名"
7 jdbc_password => "你的密码"
8 jdbc_default_timezone => "Asia/Shanghai"
9 statement => "要执行的代码"
10 }
11}
12output {
13 elasticsearch{
14 hosts => ["192.168.99.100:9200"]
15 index => ["logstash-要创建的索引名"]
16 }
17}
18
按照中文提示,替换为相应的实际代码即可
创建过后,使用powershell 在 logstash 的bin 目录下 执行
'.\logstash -f .\相应的文件名'
即可完成对数据的导入
图例(对每天登录数据的次数进行聚合统计展示)