ELK企业级日志分析平台——logstash

部署

新建一台虚拟机elk4部署logstash

复制代码
[root@elk4 ~]# yum install -y jdk-11.0.15_linux-x64_bin.rpm

[root@elk4 ~]# yum install -y logstash-7.6.1.rpm

命令方式

复制代码
[root@elk4 bin]# /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

elasticsearch输出插件

复制代码
[root@elk4 conf.d]# pwd

[root@elk4 conf.d]# vim test.conf

input {
        stdin { }
}

output {
        stdout {}

        elasticsearch {
                hosts => "192.168.92.31:9200"
                index => "logstash-%{+YYYY.MM.dd}"
        }
}
复制代码
[root@elk4 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

启动成功后录入数据,ctrl+c退出

elasticsearch-head插件

安装依赖

复制代码
[root@k8s1 ~]# yum install -y bzip2

[root@k8s1 ~]# tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2

[root@k8s1 ~]# cd phantomjs-2.1.1-linux-x86_64

[root@k8s1 phantomjs-2.1.1-linux-x86_64]# cp bin/phantomjs /usr/local/bin/

[root@k8s1 ~]# yum install -y fontconfig

[root@k8s1 ~]# phantomjs

安装插件

复制代码
[root@k8s1 ~]# rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm

[root@k8s1 ~]# yum install -y unzip

[root@k8s1 ~]# unzip elasticsearch-head-master.zip

[root@k8s1 ~]# cd elasticsearch-head-master/

[root@k8s1 elasticsearch-head-master]# npm install  --registry=https://registry.npm.taobao.org

[root@k8s1 elasticsearch-head-master]# vim _site/app.js

启动服务

复制代码
[root@k8s1 elasticsearch-head-master]# npm run start &
复制代码
[root@k8s1 elasticsearch-head-master]# netstat -antlp|grep :9100

修改es配置

复制代码
[root@elk1 ~]# vim /etc/elasticsearch/elasticsearch.yml

http.cors.enabled: true
http.cors.allow-origin: "*"

[root@elk1 ~]# systemctl  restart elasticsearch.service

访问:192.168.92.11:9100

file输入插件

复制代码
[root@elk4 conf.d]# vim es.conf

input {
      #file {
      #       path => "/var/log/messages"
      #       start_position => "beginning"
      #  }

      syslog {}

}


output {
        stdout {}

        elasticsearch {
                hosts => "192.168.92.31:9200"
                index => "rsyslog-%{+YYYY.MM.dd}"
        }
}
复制代码
[root@elk4 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

.sincedb文件保存文件读取进度,避免数据冗余读取

复制代码
[root@elk4 file]# pwd

[root@elk4 file]# l.

sincedb文件一共6个字段

  1. inode编号
  2. 文件系统的主要设备号
  3. 文件系统的次要设备号
  4. 文件中的当前字节偏移量
  5. 最后一个活动时间戳(浮点数)
  6. 与此记录匹配的最后一个已知路径

删除后重新读取

复制代码
[root@elk4 file]# rm -f .sincedb_452905a167cf4509fd08acb964fdb20c

syslog 插件

logstash伪装成日志服务器

复制代码
[root@elk4 conf.d]# vim test.conf

input {
        syslog {}
}

output {
         stdout {}

        elasticsearch {
                hosts => "192.168.92.31:9200"
                index => "syslog-%{+YYYY.MM.dd}"
        }

}

[root@elk4 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

配置客户端日志输出

root@server1 \~# vim /etc/rsyslog.conf

去掉以下行的注释

复制代码
[root@elk1 ~]# systemctl  restart rsyslog.service

多行过滤插件

从server1拷贝模板文件

复制代码
[root@elk1 elasticsearch]# pwd

[root@elk1 elasticsearch]# scp my-es.log elk4:/var/log/
复制代码
[root@elk4 conf.d]# vim my-es-log.conf

input {

        file {
                path => "/var/log/my-es.log"
                start_position => "beginning"
                codec => multiline {
                pattern => "^\["
                negate => true
                what => previous
                }
        }

}

output {
        stdout {}

        elasticsearch {
                hosts => "192.168.92.31:9200"
                index => "myeslog-%{+YYYY.MM.dd}"
        }

}
复制代码
[root@elk4 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

grok过滤

复制代码
[root@elk4 ~]# yum install -y httpd

[root@elk4 ~]# systemctl  enablel --now httpd

[root@elk4 ~]# echo www.westos.org > /var/www/html/index.html

访问此站点生成日志信息

复制代码
ab -c 1 -n 500 http://192.168.92.34/index.html

编写文件

复制代码
[root@elk4 conf.d]# vim grok.conf

input {
        file {
                path => "/var/log/httpd/access_log"
                start_position => "beginning"
        }
}

filter {
        grok {
                match => { "message" => "%{HTTPD_COMBINEDLOG}" }
        }
}

output {
        stdout {}

        elasticsearch {
                hosts => "192.168.92.31:9200"
                index => "apachelog-%{+YYYY.MM.dd}"
        }

}
复制代码
[root@elk4 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf
相关推荐
是店小二呀3 小时前
鸿蒙PC_Dart-Sass-ohos适配全记录
linux·运维·windows
智能运维指南10 小时前
代码管理软件如何融入 DevOps 工具链?全链路联通的 5 个关键点
运维·devops·信创适配·嘉为蓝鲸
充电zcx10 小时前
Linux:4:开发工具详解
linux·运维·服务器
gongfeng300014 小时前
福州企业级AI自动化获客解决方案品牌梳理与适用场景分析
运维·人工智能·自动化·g-claw ai员工
光电笑映15 小时前
网络通信基础:从协议分层到 Socket 编程预备
linux·运维·服务器·网络
微小冷16 小时前
用Mermaid画时序图
运维·流程图·时序图·mermaid·生命线
其实防守也摸鱼16 小时前
Codex 下载与本地部署实战:从安装到运行全指南
android·大数据·运维·安全·自动化
wdfk_prog16 小时前
ROS教程07:从 ros::start() 顺着源码读懂 Master、XML-RPC 与 Topic 注册发现
运维·缓存·docker·容器·ros
吴声子夜歌16 小时前
Shell编程实例——与解析相关的任务(二)
linux·运维·shell
倔强的石头10618 小时前
【Linux指南】动静态库系列(八):ELF 加载与进程地址空间:程序还没运行,为什么已经有地址
linux·运维