ELK 7.5.0(五)Logstash正则分析提取日志,优化日志记录

秒速五厘米 2023-06-19 07:23 32阅读 0赞

一、实验环境

  1. 主机名 IP
  2. es 192.168.14.210
  3. kibana 192.168.14.210
  4. logstash 192.168.14.211
  5. nginx 192.168.14.211

优化说明:

删除字段是为了减少es的数据库大小

提取添加字段是为了kibana更加明确的展示,也有助于创建可视化视图提供依据。

二、Nginx编译安装

1、安装依赖环境

  1. [root@logstash ~]# yum install -y lrzsz wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel

2、解压缩包

  1. [root@logstash ~]# tar -zxvf nginx-1.14.2.tar.gz

3、简单编译安装

  1. [root@logstash ~]# cd nginx-1.14.2
  2. [root@logstash ~]# ./configure --prefix=/usr/local/nginx && make && make install

4、设置环境变量并启动

  1. [root@logstash ~]# vi /etc/profile
  2. export PATH=$PATH:/usr/local/nginx/sbin/
  3. [root@logstash ~]# source /etc/profile
  4. #检测配置文件正常就启动
  5. [root@logstash ~]# nginx -t
  6. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  7. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  8. [root@logstash ~]# nginx

5、Nginx日志格式说明

  1. 192.168.5.53 - - [05/Dec/2019:08:17:11 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" "-"
  2. 192.168.5.53 - - [05/Dec/2019:08:17:11 +0800] "GET /favicon.ico HTTP/1.1" 404 571 "http://192.168.14.211/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" "-"
  3. 从左往右分别是:
  4. 访问IP地址
  5. 访问时间
  6. 请求方式(GET/POST)
  7. 请求URL
  8. 状态码
  9. 响应body大小
  10. Referer
  11. User Agent

三、Logstash正则提取日志

1、提取客户端IP

参考kibana的Grok Debugger了解语法:

Grok使用(?提取内容)来提取xxx字段

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70

2、grok提取nginx日志(tomcat等日志使用方法类似)

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 1

3、修改Logstash配置文件

  1. [root@logstash ~]# vi /usr/local/logstash-7.5.0/config/logstash.conf
  2. input {
  3. file {
  4. path => "/usr/local/nginx/logs/access.log" #nginx日志路径
  5. }
  6. }
  7. filter {
  8. grok {
  9. match => {
  10. "message" => '(?<clientip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) - - \[(?<requesttime>[^ ]+ \+[0-9]+)\] "(?<requesttype>[A-Z]+) (?<requesturl>[^ ]+) HTTP/\d.\d" (?<status>[0-9]+) (?<bodysize>[0-9]+) "[^"]+" "(?<ua>[^"]+)"'
  11. }
  12. }
  13. }
  14. output {
  15. elasticsearch {
  16. hosts => ["http://192.168.14.210:9200"] #es服务器IP地址
  17. user => "elastic"
  18. password => "elkpwd"
  19. index => "logstash-%{+YYYY.MM.dd}" #索引格式
  20. }
  21. }

4、Logstash后台启动

  1. [root@logstash ~]# nohup logstash -f /usr/local/logstash-7.5.0/config/logstash.conf >/tmp/logstash.log 2>/tmp/logstash.log &
  2. #如果已经启动,可以直接重载配置
  3. [root@logstash ~]# kill -1 11863 #11863是Logstash进程ID

四、kibana查看索引的字段

1、为了区别明显,先删除旧的日志索引

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 2

2、访问nginx使其产生日志,添加新的日志索引(如果日志索引只有名称没有日期,可以停止Logstash再启动)

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 3

3、根据自动搜索的索引格式,可以是logstash*或者是logstash-日期区分

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 4

4、选择时间轴

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 5

5、查看到logstash自定义的字段

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 6

五、Logstash删除无需记录字段(只能去除_source里的)

1、删除之前的字段

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 7

2、修改logstash配置文件,删除无需记录字段

  1. [root@logstash ~]# vi /usr/local/logstash-7.5.0/config/logstash.conf
  2. remove_field => ["message","@version","path"]

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 8

3、重载logstash配置,如不行就停止重新启动

  1. [root@logstash ~]# ps auxf|grep logstash
  2. root 12830 14.0 10.1 4909284 811844 pts/0 Sl 15:09 3:12 ...忽略
  3. [root@logstash ~]# kill -1 12830 #进程ID

4、删除之后的字段

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 9

至此完成

发表评论

表情:
评论列表 (有 0 条评论,32人围观)

还没有评论,来说两句吧...

相关阅读