今日任务:1.学习简单操作logstash
2.上传数据文件、导入海量数据
3.利用kibana完成数据可视化
4.安装python和pycharm、使用综合案例实现ES日志检索平台
1.学习简单操作logstash
准备工作:按照昨天的步骤启动elasticsearch和kibana出现kibana控制台
1.logstash启动——“sh logstash -e 'input { stdin{} } output{ stdout{}}'”(图1.1)
[root@hadoop ~]# cd /h ome/softwares/logstash-6.6.2/
[root@hadoop logstash-6.6.2]# cd bin
[root@hadoop bin]# sh logstash -e 'input { stdin{} } output{ stdout{}}'
2.在logstash目录下创建一个logstash.conf文件
[root@hadoop logstash-6.6.2]# touch logstash.conf
3.编辑此文件
[root@hadoop logstash-6.6.2]# vim logstash.conf
添加下面代码(图1.2):(若有问题用notepad++检查这个代码文件--可能会吞字--我的是input的i被吞了)
input { stdin{} }
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch {index=>"accesslog" }
stdout {codec =>rubydebug}
}
4.再启动logstash (图1.3)
[root@hadoop logstash-6.6.2]# bin/logstash -f logstash.conf
5.启动logstash完成后将下面代码粘进命令行(不回车) (图1.4)
hello world
{
"message" => "hello cumtb",
"@version" => "1",
"@timestamp" => "2016-03-17T03:31:30.308Z",
"host" => "hostname:hadoop"
}
然后会出现图1.5
6.在kibana页面代码部分添加一行代码并运行(图1.6、1.7)
GET accesslog/_search
2.上传数据文件、导入海量数据
1.上传文件“nyc_collision_logstash.conf”到/home/softwares/logstash-6.2.2 (图2.1)
2.在/home/data目录下创建文件夹elk,然后上传文件"nyc_collision_data.csv" (图2.2)
3.将"nyc_collision_template.json"文件的代码复制到kibana控制台并运行控制台程序 (图2.3)
注:文尾附"nyc_collision_template.json"文件代码
4.kibana控制台添加代码“GET nyc_visionzero/_search”(图2.4)
5.启动logstash并指定文件
[root@hadoop logstash-6.6.2]# bin/logstash -f nyc_collision_logstash.conf (图2.5)
6.kibana控制台运行“GET nyc_visionzero/_search”出现图2.6就可以进行数据可视化了(图2.6)
3.利用kibana完成数据可视化
1.创建index pattern(图3.1.1、3.1.2、3.1.3、3.1.4)
点击Management->Index Patterns 按照图的指示(出现图3.1.4表示创建成功)
2.下面就可以进行数据可视化了,点击visualize进行自己想要的可视化方式
4.安装python和pycharm、使用综合案例实现ES日志检索平台
1.安装完pycharm,用pycharm打开项目kds_web
2.打开pycharm的terminal键入指令"pip install django==3.0.0" (图4.2)
3.若屏幕提示升级pip就升级——指令"python -m pip install --upgrade pip" (图4.3)
4.进入到search目录安装elasticsearch (图4.4)
5.修改配置文件“config.py”中的IP(控制台的IP) (图4.5)
6.代码报错的话点击ignore。。。 (图4.6.1、图4.6.2)
7.terminal中键入"python manage.py runserver"----注意:在search目录下(图4.7)
8.在谷歌浏览器下面输入"localhost:8000" (图4.8.1、图4.8.2)
今天的任务就结束啦~嗨心哒放假啦~
附:2.3中的“nyc_collision_template.json"文件代码
{
"index_patterns": "nyc_visionzero",
"settings": {
"index.refresh_interval": "5s"
},
"mappings": {
"doc": {
"properties": {
"location": {
"type": "geo_point",
"ignore_malformed": true
},
"@version": {
"type": "keyword"
},
"borough": {
"type": "keyword"
},
"zip_code": {
"type": "keyword"
},
"unique_key": {
"type": "keyword"
},
"cross_street_name": {
"type": "keyword"
},
"off_street_name": {
"type": "keyword"
},
"on_street_name": {
"type": "keyword"
},
"contributing_factor_vehicle": {
"type": "keyword"
},
"vehicle_type": {
"type": "keyword"
},
"intersection": {
"type": "keyword"
},
"hour_of_day": {
"type": "integer",
"ignore_malformed": true
},
"number_of_motorist_injured": {
"type": "integer",
"ignore_malformed": true
},
"number_of_cyclist_killed": {
"type": "integer",
"ignore_malformed": true
},
"number_of_persons_killed": {
"type": "integer",
"ignore_malformed": true
},
"number_persons_impacted": {
"type": "integer",
"ignore_malformed": true
},
"number_of_pedestrians_killed": {
"type": "integer",
"ignore_malformed": true
},
"number_of_motorist_killed": {
"type": "integer",
"ignore_malformed": true
},
"number_of_cyclist_injured": {
"type": "integer",
"ignore_malformed": true
},
"number_of_pedestrians_injured": {
"type": "integer",
"ignore_malformed": true
},
"number_of_persons_injured": {
"type": "integer",
"ignore_malformed": true
},
"latitude": {
"type": "float",
"ignore_malformed": true
},
"longitude": {
"type": "float",
"ignore_malformed": true
}
}
}
},
"aliases": {}
}