• windows环境搭建ELK


    目录

    资源下载(8.9.1)

    ES安装、注册、使用

    Kibana安装、注册、使用

    Logstash安装、注册、使用

    Filebeat安装、使用(如果只有一个数据流,则不需要使用filebeat,直接上logstash即可)


    资源下载(8.9.1)

            ES下载    Kibana下载    Logstash下载    FileBeat下载    NSSM下载(用来注册系统服务)

    ES安装、注册、使用

    跳转到bin目录,执行下面的代码将es注册为系统服务

    elasticsearch-service.bat install

    执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)


    服务启动成功后访问https://127.0.0.1:9200注意协议是https,如果想要使用http协议,可以修改【config\elasticsearch.yml】,将xpack.security.http.ssl:enable设置为【false】然后重启

    第一次访问需要用户名、密码,默认的用户名是【elastic】,可以通过下面的命令重置密码(切换到bin目录下执行)

    elasticsearch-reset-password --username elastic -i

    Kibana安装、注册、使用

    kibana需要从elasticsearch中读取数据,所以在启动时需要连接elasticsearch,可以通过【kibana\config\kibana.yml】中的【elasticsearch.hosts】来指定elasticsearch地址(由于elasticsearch开启了身份验证,所以连接时需要提供用户名、密码或者token,上面提到过elasticsearch默认用户是elastic,但是elastic是超级管理员,不允许直接连接,所以这里可以新建一个用户供kibana使用或者使用token的方式),下面提供的是生成token的命令(切换到【elasticsearch\bin】下执行,namespace、service、token_name自行替换)

    elasticsearch-service-tokens create / 

    下载NSSM,然后将nssm.exe(结合操作系统位数选择相应的exe)复制到【kibana\bin】目录下,然后在bin目录下执行

    nssm install kibana

     

    执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)


    服务启动成功后访问http://127.0.0.1:5601(用户名、密码与elasticsearch用户名、密码一致)

    1. kibana.yml
    2. # 中文显示
    3. i18n.locale: "zh-CN"
    Logstash安装、注册、使用

    logstash主要用input、filter、output三个模块,其中input负责数据录入、output负责数据输出、filter负责数据处理

    1. #log-example.conf
    2. input {
    3. # 从filebeats读取数据
    4. # beats {
    5. # host => xxxx
    6. # port => 5044
    7. # ssl => false
    8. # }
    9. # 从指定位置的文件读取数据
    10. file {
    11. # 注意这里文件分隔符不能使用'\'
    12. path => ['D:/logs/project1/*.log', 'D:/logs/project2/*.log']
    13. start_position => 'beginning'
    14. type => 'logs'
    15. # 将多行日志转换为一条记录(比如异常栈)
    16. codec => multiline {
    17. charset => 'GB2312'
    18. pattern => '^\d{4}'
    19. negate => true
    20. what => 'previous'
    21. }
    22. }
    23. }
    24. filter {
    25. grok {
    26. # 解析输入记录转换为json格式并为每个字段命名
    27. match => {"message" => "%{TIMESTAMP_ISO8601:timestamp} %{DATA:level} %{DATA:thread} %{DATA:class} %{DATA:ip} %{DATA:username} %{GREEDYDATA:msg}"}
    28. }
    29. date {
    30. match => ['timestamp', 'yyyy-MM-dd HH:mm:ss.SSS']
    31. # 使用grok中解析出来的timestamp替换@timestamp
    32. target => '@timestamp'
    33. # 删除grok中解析出来的timestamp字段
    34. remove_field => ['timestamp']
    35. }
    36. }
    37. output {
    38. # 输出到ES
    39. elasticsearch {
    40. hosts => ["http://xxxx:9200"]
    41. index => "log-%{+YYYY.MM.dd}"
    42. user => "xxx"
    43. password => "xxx"
    44. }
    45. # debug模式下启用,可以将数据输出到控制台
    46. stdout {
    47. codec => json
    48. }
    49. }

    将nssm.exe(结合操作系统位数选择相应的exe)复制到【logstash\bin】目录下,然后在bin目录下执行(注意Arguments需要指定配置文件,比如上面给出来的log-example.conf)

    nssm install logstash

     

     执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)


    Filebeat安装、使用(如果只有一个数据流,则不需要使用filebeat,直接上logstash即可)

    话不多说,直接提供一个filebeat.yml模板

    1. # ============================== Filebeat inputs ===============================
    2. filebeat.inputs:
    3. - type: log
    4. # Unique ID among all inputs, an ID is required.
    5. id: log
    6. enabled: true
    7. tail_file: true
    8. encoding: GB2312
    9. # 将多行日志转换为一条记录(比如异常栈)
    10. multiline.pattern: '^\d{4}'
    11. multiline.negate: true
    12. multiline.match: after
    13. paths:
    14. - D:\logs\project1\*.log
    15. - D:\logs\project2\*.log
    16. # ============================== Filebeat modules ==============================
    17. filebeat.config.modules:
    18. path: ${path.config}/modules.d/*.yml
    19. reload.enabled: false
    20. # ================================== Outputs ===================================
    21. # ------------------------------ Logstash Output -------------------------------
    22. output.logstash:
    23. # The Logstash hosts
    24. enabled: true
    25. hosts: ["xxxx:5044"]
    26. # ================================= Processors =================================
    27. processors:
    28. - add_host_metadata:
    29. when.not.contains.tags: forwarded
    30. - add_cloud_metadata: ~
    31. - add_docker_metadata: ~
    32. - add_kubernetes_metadata: ~
    33. - add_fields:
    34. target: '@metadata'
    35. fields:
    36. source: 'log'
    37. - drop_fields:
    38. fields: ['agent', 'ecs', 'host', 'mac', 'hostname', 'architecture', 'os', 'input', '@timestamp', 'log']

  • 相关阅读:
    Linux上执行内存中的脚本和程序
    uniapp开发的跳转到小程序
    【C++】Floyd多源最短路算法
    Centos7.6 源码编译部署percona mysql 5.7.39-42
    MindSpore,易用性提升的思考与实践
    [jetson][转载]jetson上安装pycharm
    【Mybatisplus】初识Mybatisplus+SpringBoot整合
    海康威视H5无插件方式显示WSS协议的视频的笔记
    [机缘参悟-82]:企业、HR、管理者激励员工的本质
    高项 07 项目成本管理
  • 原文地址:https://blog.csdn.net/xiaoming120915/article/details/132584112