ELK-日志服务【redis-配置使用】

这篇具有很好参考价值的文章主要介绍了ELK-日志服务【redis-配置使用】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

环境

【1】redis配置

【2】filebeat配置

【3】对接logstash配置

【4】验证

【5】安全配置:第一种:kibana-nginx访问控制

【6】第二种:在ES-主节点-配置TLS

【7】kibana配置密码

【8】logstash添加用户密码


环境

es-01,kibana

10.0.0.21

es-02

10.0.0.22

es-03

10.0.0.23

filebeat,nginx

10.0.0.25

logstash

10.0.0.26

redis

10.0.0.27

【1】redis配置

[root@redis ~]# vim /etc/redis.conf 
.....
bind 0.0.0.0
.....
requirepass 111
.....

【2】filebeat配置

[root@filebeat ~]# vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  tags: ["access"]

- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log
  tags: ["error"]

output.redis:
  hosts: ["10.0.0.27:6379"]
  password: "111"
  db: 0
  timeout: 5
  keys:
    - key: "filebeat-nginx-access"
      when.contains:
        tags: "access"
    - key: "filebeat-nginx-error"
      when.contains:
        tags: "error"

[root@filebeat ~]# systemctl restart filebeat.service

## 验证redis是否有数据写入,查看key的长度
[root@redis ~]# redis-cli
127.0.0.1:6379> auth 111
OK
127.0.0.1:6379> keys *
1) "filebeat-nginx-access"
2) "filebeat-nginx-error"
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> LLEN filebeat-access
(integer) 19
127.0.0.1:6379> LLEN filebeat-error
(integer) 15
127.0.0.1:6379>

【3】对接logstash配置

[root@logstash ~]# cat /etc/logstash/conf.d/file-redis-log.conf 
input {
  redis {
    host => "10.0.0.27"
    password => "111"
    db => "0"
    data_type => "list"
    key => "filebeat-access"
  }
  redis {
    host => "10.0.0.27"
    password => "111"
    db => "0"
    data_type => "list"
    key => "filebeat-error"
  }
}
 
filter {
    if "access" in [tags][0] {
        grok {
          match => { 
            "message" => "%{COMBINEDAPACHELOG}"
          }
        }
        
        geoip {
            source => "clientip"
        }
        
        date {
            match => ["timestamp","dd/MMM/yyyy:HH:mm:ss Z"]
            target => "@timestamp"
            timezone => "Asia/Shanghai"
        }

        useragent {
            source => "agent"
            target => "useragent"
        }
        
        mutate {
            convert => ["bytes","integer"]
            convert => ["response_time", "float"]
            convert => ["upstream_response_time", "float"]
            remove_field => ["message"]
            add_field => { "target_index" => "app-logstash-nginx-access-%{+YYYY.MM.dd}" }	   
      }
 
        # 提取 referrer 具体的域名 /^"http/
        if [referrer] =~ /^"http/ {
            grok {
                match => { "referrer" => '%{URIPROTO}://%{URIHOST:referrer_host}' }
            }
        }
    
        # 提取用户请求资源类型以及资源 ID 编号
        if "test.com" in [referrer_host] {
            grok {
                match => { "referrer" => '%{URIPROTO}://%{URIHOST}/(%{NOTSPACE:test_type}/%{NOTSPACE:test_res_id})?' }
            }
        }
    }
 
    else if "error" in [tags][0] {
        date {
            match => ["timestamp","dd/MMM/yyyy:HH:mm:ss Z"]
                target => "@timestamp"
                timezone => "Asia/Shanghai"
        }
        mutate {
            add_field => { "target_index" => "app-logstash-nginx-error-%{+YYYY.MM.dd}" }
        }
    }
}
 
output {
    elasticsearch {
        hosts => ["10.0.0.21:9200","10.0.0.22:9200","10.0.0.23:9200"]
        index => "%{[target_index]}"
        template_overwrite => true
    }
}

[root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file-redis-log.conf -r

【4】验证

ELK-日志服务【redis-配置使用】,ELK-日志服务,elk

ELK-日志服务【redis-配置使用】,ELK-日志服务,elk

【5】安全配置:第一种:kibana-nginx访问控制

[root@es-01 ~]# yum -y install httpd-tools.x86_64
[root@es-01 ~]# htpasswd -c -b /etc/nginx/basic_passwd kibana 123123
Adding password for user kibana
[root@es-01 ~]# cat /etc/nginx/basic_passwd 
kibana:$apr1$SASZLDcF$mHc2stQeQOCYXeapYhMj7/

[root@es-01 ~]# vim /etc/nginx/conf.d/kibana.conf
server {
  listen 80;
  server_name nginx.kibana.org;
  location / {
     proxy_pass http://127.0.0.1:5601$request_uri;
     auth_basic "请输入用户名、密码";
     auth_basic_user_file /etc/nginx/basic_passwd; 
  }
}

[root@es-01 ~]# systemctl start nginx

ELK-日志服务【redis-配置使用】,ELK-日志服务,elk

【6】第二种:在ES-主节点-配置TLS

## 在主节点配置TLS
[root@es-01 ~]# /usr/share/elasticsearch/bin/elasticsearch-certutil \    
> cert -out /etc/elasticsearch/elasticsearch-certificates.p12 -pass ""

[root@es-01 ~]# chmod 660 /etc/elasticsearch/elasticsearch-certificates.p12 

## 编辑配置文件,添加以下内容,所有节点都需要添加
[root@es-01 ~]# vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elasticsearch-certificates.p12
xpack.security.transport.ssl.truststore.path: elasticsearch-certificates.p12

[root@es-02 ~]# vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elasticsearch-certificates.p12
xpack.security.transport.ssl.truststore.path: elasticsearch-certificates.p12

[root@es-03 ~]# vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elasticsearch-certificates.p12
xpack.security.transport.ssl.truststore.path: elasticsearch-certificates.p12

## 将TLS证书拷贝到所有节点
[root@es-01 ~]# scp -rp /etc/elasticsearch/elasticsearch-certificates.p12 root@10.0.0.22:/etc/elasticsearch/
[root@es-01 ~]# scp -rp /etc/elasticsearch/elasticsearch-certificates.p12 root@10.0.0.23:/etc/elasticsearch/

## 重新启动所有节点
[root@es-01 ~]# systemctl restart elasticsearch

## 主节点运行后,集群配置密码,auto随机密码,interactive手动
[root@es-01 ~]# /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y


Changed password for user apm_system
PASSWORD apm_system = IFYVDU9pa0BaYqn8bFdi

Changed password for user kibana
PASSWORD kibana = 3S32IGJTj9bpgIy8q4bP

Changed password for user logstash_system
PASSWORD logstash_system = EbaDFZhIMqNMgtMWaBFY

Changed password for user beats_system
PASSWORD beats_system = hFivaRmv8BUGxr11vkRM

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 68xmYgepf2L40Zr5HPLI

Changed password for user elastic
PASSWORD elastic = PpCC9KV8FnoDepE7DYZU

[root@es-01 ~]# 

ELK-日志服务【redis-配置使用】,ELK-日志服务,elk

ELK-日志服务【redis-配置使用】,ELK-日志服务,elk

【7】kibana配置密码

[root@es-01 ~]# vim /etc/kibana/kibana.yml
......
elasticsearch.username: "kibana"
elasticsearch.password: "vERKRjujB5kfukYCT77w"

[root@es-01 ~]# systemctl restart kibana

ELK-日志服务【redis-配置使用】,ELK-日志服务,elk

【8】logstash添加用户密码

ELK-日志服务【redis-配置使用】,ELK-日志服务,elk

 文章来源地址https://www.toymoban.com/news/detail-574001.html

[root@logstash ~]# cat /etc/logstash/conf.d/file-redis-log.conf 
input {
  redis {
    host => "10.0.0.27"
    password => "111"
    db => "0"
    data_type => "list"
    key => "filebeat-access"
  }
  redis {
    host => "10.0.0.27"
    password => "111"
    db => "0"
    data_type => "list"
    key => "filebeat-error"
  }
}
 
filter {
    if "access" in [tags][0] {
        grok {
          match => { 
            "message" => "%{COMBINEDAPACHELOG}"
          }
        }
        
        geoip {
            source => "clientip"
        }
        
        date {
            match => ["timestamp","dd/MMM/yyyy:HH:mm:ss Z"]
            target => "@timestamp"
            timezone => "Asia/Shanghai"
        }

        useragent {
            source => "useragent"
            target => "useragent"
        }
        
        mutate {
            convert => ["bytes","integer"]
            convert => ["response_time", "float"]
            convert => ["upstream_response_time", "float"]
            remove_field => ["message"]
            add_field => { "target_index" => "app-logstash-nginx-access-%{+YYYY.MM.dd}" }	   
      }
 
        # 提取 referrer 具体的域名 /^"http/
        if [referrer] =~ /^"http/ {
            grok {
                match => { "referrer" => '%{URIPROTO}://%{URIHOST:referrer_host}' }
            }
        }
    
        # 提取用户请求资源类型以及资源 ID 编号
        if "test.com" in [referrer_host] {
            grok {
                match => { "referrer" => '%{URIPROTO}://%{URIHOST}/(%{NOTSPACE:test_type}/%{NOTSPACE:test_res_id})?' }
            }
        }
    }
 
    else if "error" in [tags][0] {
        date {
            match => ["timestamp","dd/MMM/yyyy:HH:mm:ss Z"]
                target => "@timestamp"
                timezone => "Asia/Shanghai"
        }
        mutate {
            add_field => { "target_index" => "app-logstash-nginx-error-%{+YYYY.MM.dd}" }
        }
    }
}
 
output {
    elasticsearch {
        hosts => ["10.0.0.21:9200","10.0.0.22:9200","10.0.0.23:9200"]
        user => "logstash_push_es"
        password => "111111"
        index => "%{[target_index]}"
        template_overwrite => true
    }
  stdout {
    codec => rubydebug
  }
}

ELK-日志服务【redis-配置使用】,ELK-日志服务,elk

 

到了这里,关于ELK-日志服务【redis-配置使用】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ELK之Filebeat安装配置及日志抓取

    轻量型日志采集器 无论您是从安全设备、云、容器、主机还是 OT 进行数据收集,Filebeat 都将为您提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁杂。 Filebeat 随附可观测性和安全数据源模块,这些模块简化了常见格式的日志的收集、解析和可视化过程

    2024年02月02日
    浏览(53)
  • ELK 日志采集使用

    Docker 最新版Version 20.10安装_docker最新版本是多少_猿小飞的博客-CSDN博客 安装docker compose_猿小飞的博客-CSDN博客 1.3.1.编写 docker-compose.yml 脚本启动 ELK 服务 忘记了文件在哪里,可以使用下面命令进行查找    1.3.2.创建对应容器挂载目录 针对微服务,我们不同的服务,会专门设置

    2024年02月08日
    浏览(47)
  • 【ELK 使用指南 1】ELK + Filebeat 分布式日志管理平台部署

    在运维中, 日志是非常重要的工具 ,用于记录系统、应用程序或设备的运行状态、事件和异常情况。 1)故障排除和问题诊断 日志是排查故障和诊断问题的关键信息源。 通过分析日志文件,可以查找和定位系统故障、错误和异常,帮助运维人员迅速找出问题的根本原因,并

    2024年02月07日
    浏览(50)
  • k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es

    如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台 网关gateway服务 ,然后到 鉴权spring-sercurity服务 ,然后到 业务订单服务 ,然后到 支付服务 ,后续还有发货、客户标签等等服务

    2024年02月16日
    浏览(43)
  • Linux:ELK:日志分析系统(使用elasticsearch集群)

    1. 将日志进行集中化管理(beats) 2. 将日志格式化(logstash) 将其安装在那个上面就对那个进行监控 3. 对格式化后的数据进行索引和存储(elasticsearch) 4. 前端数据的展示(kibana) 要准备安装包 elasticsearch elasticsearch-head kibana logstash node phantomjs 这些安装包都在网上很好找,自

    2024年02月14日
    浏览(40)
  • ELK 使用kibana查询和分析nginx日志

    背景:使用kibana查询和分析nginx请求日志,方便开发人员查询系统日志和分析系统问题。 setp 1、定义Index patterns 2、定义Discover(Search 查询数据) 3、定义Visualizations 3.1 定义Vertical Bar 3.2 、Choose a source 3.3、定义图表 4、定义Dashboards 4.1、添加面板(选择Search or Visualize)

    2024年02月15日
    浏览(46)
  • ELK日志监控系统搭建详细步骤(针对docker容器启动的镜像、微服务版)

         ELK Stack 是 Elasticsearch 、Logstash、Kiban a 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称 。 百度介绍:       Elasticsearch是强大的数据搜索引擎,是分布式、通过restful方式进行交互的近实时搜索

    2024年02月05日
    浏览(47)
  • SpringBoot应用整合并使用Docker安装ELK实现日志收集

    ELK即Elasticsearch、Logstash、Kibana,组合起来可以搭建线上日志系统,本文主要讲解使用ELK来收集SpringBoot应用产生的日志。 Elasticsearch:用于存储收集到的日志信息; Logstash:用于收集日志,SpringBoot应用整合了Logstash以后会把日志发送给Logstash,Logstash再把日志转发给Elasticsearch; Kiban

    2023年04月08日
    浏览(43)
  • 使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志

    书接上回:《ELK中Logstash的基本配置和用法》 默认情况下,Nginx的日志记录的是下面的格式: 在 nginx.conf 中也可以看到相关配置信息: 现在为了方便收集日志,我们把这里的格式改为 json格式,在 nginx.conf 中加入下面的内容: 以上配置是手动组装了一个json格式的配置信息。

    2024年02月11日
    浏览(45)
  • ELK之使用Grafana读取ES集群的Nginx日志进行分析展示

    直通车 ------------↓↓↓↓↓↓ 需要ES集群 https://blog.csdn.net/wdy_2099/article/details/125441436 需要filebeat https://blog.csdn.net/wdy_2099/article/details/125445893 需要logstash https://blog.csdn.net/wdy_2099/article/details/125464226 需要grafana https://blog.csdn.net/wdy_2099/article/details/124211397 需要nginx 需要对grafana添加

    2024年01月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包