ELK 1.3之kibana
1.安装kibana,直接压缩包安装就可以,kibana默认端口5601
2.配置kibana配置文件
[root@kibana config]# vim /opt/kibana/config/kibana.yml
server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://192.168.1.11:9200"] i18n.locale: "zh-CN"
3.生成启动脚本文件,查看下有没有这个启动脚本文件,没有就写一个,脚本内容参照elasticsearch.service的脚本
cat /usr/lib/systemd/system.kibana.service
4.重启下
[root@kibana system]# systemctl daemon-reload
[root@kibana system]# systemctl start kibana
5.查看端口和进程是否启动
[root@kibana ~]# ps -ef |grep kibana 查看进程名 root 36300 1 18 09:32 ? 00:00:24 /opt/kibana/bin/../node/bin/node /opt/kibana/bin/../src/cli --allow-root root 36400 33966 0 09:34 pts/0 00:00:00 grep --color=auto kibana [root@kibana ~]# ss -anputl|grep 5601 查看端口,kibana默认5601端口 tcp LISTEN 0 128 *:5601 *:* users:(("node",pid=36300,fd=18)) [root@kibana ~]# systemctl status kibana 查看kibana状态
3)过滤插件(filter)
过虑阶段:将日志格式化处理,常用插件 json kv grok geoip date
过滤插件都支持的字段:
• add_field 如果过滤成功,添加一个字段到这个事件
• add_tags 如果过滤成功,添加任意数量的标签到这个事件
• remove_field 如果过滤成功,从这个事件移除任意字段
• remove_tag 如果过滤成功,从这个事件移除任意标签
JSON插件:接收一个json数据,将其展开为Logstash事件中的 数据结构,放到事件顶层。 常用字段:
• source 指定要解析的字段,一般是原始消息message字段
• target 将解析的结果放到指定字段,如果不指定,默认在 事件的顶层
6.修改conf文件的配置,加入json解析
input { file { path => "/var/log/test/*.log" exclude => "error.log" start_position => "beginning" tags => 'nginx' tags => 'web' type => 'access' add_field => { 'project' => 'ali cloud' 'app' => 'pdd' } } } filter { json{ source => 'message' } } output { file { path => "/tmp/test.log" } }
7.重启并启动test.conf文件
[root@logstash ~]# systemctl daemon-reload [root@logstash ~]# systemctl start logstash [root@logstash ~]# /opt/logstash/bin/logstash -f /opt/logstash/conf.d/test.conf
8.去文件输入内容
[root@logstash data]# echo zht >> '/var/log/test/access.log'
9.查询下是解析成功,可以看到failer失败了,因为输入的文本不是json格式
{"type":"access","app":"pdd","tags":["nginx","web","_jsonparsefailure"],"project":"ali cloud","@timestamp":"2022-03-23T01:48:15.359Z","@version":"1","path":"/var/log/test/access.log","message":"zht","host":"logstash"}
10.输入json格式的内容
echo '{"remote_addr": "192.168.213.6","url":"/index","status":"200"}' >>/var/log/test/access.log
11.查看解析成功了
{"@timestamp":"2022-03-23T02:17:20.933Z","type":"access","message":"{\"remote_addr\": \"192.168.213.6\",\"url\":\"/index\",\"status\":\"200\"}","project":"cloud service","app":"douyu","path":"/var/log/test/access.log","host":"logstash","@version":"1","tags":["web","nginx"]}
12.进入json转化网址:https://www.bejson.com/
13.把logstash的日志推送到elasticsearch
14.修改conf文件
input { file { path => "/var/log/test/*.log" exclude => "error.log" start_position => "beginning" tags => 'nginx' tags => 'web' type => 'access' add_field => { 'project' => 'ali cloud' 'app' => 'pdd' } } } filter { } output { elasticsearch { #输出到elasticsearch host => '192.168.213.4:9200' #elasticsearch的ip地址 index => 'test-%{+YYYY.MM.dd}' #insex是elasticsearch的数据库 } }
15.在网页登录kibana的ip和kibana的端口,选择Stack Management
16.建立好的索引可以去kibana下的discover查看
选好时间可以查看
在/var/log/test/access.log下输入文本内容,可以去kibana这查看