ELK(三):nginx+filebeat+redis

本贴最后更新于 2646 天前,其中的信息可能已经渤澥桑田

1. 调整 nginx 的 access 日志格式为 json

log_format json '{"@timestamp":"$time_iso8601",'
                '"source":"nginxgold56",'
                '"serverAddr":"$server_addr",'
                '"remoteAddr":"$remote_addr",'
                '"remoteUser":"$remote_user",'
                '"size":$body_bytes_sent,'
                '"status":$status,'
                '"time":$request_time,'
                '"method":"$request_method",'
                '"protocol":"$server_protocol",'
                '"url":"$scheme://$host$request_uri",'
                '"host":"$http_host",'
                '"uri":"$uri",'
                '"referer":"$http_referer",'
                '"xforwarded":"$http_x_forwarded_for",'
                '"agent":"$http_user_agent",'
                '"upsTime":"$upstream_response_time",'
                '"sslPro":"$ssl_protocol",'
                '"sslCip":"$ssl_cipher",'
                '"upsStatus":"$upstream_status"}';
                
access_log logs/access.log json;

2. filebeat 读取 nginx 日志到 redis

2.1. 安装 filebeat

#下载fielbeat
cd /opt/install
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.5.1-linux-x86_64.tar.gz

#解压
tar -zxvf filebeat-5.5.1-linux-x86_64.tar.gz -C /opt/app/

#重命名
cd /opt/app/
mv mv filebeat-5.5.1-linux-x86_64 filebeat

2.2. 配置 filebeat

vim filebeat/filebeat.yml

2.2.1. 配置 filebeat.prospectors 读取 nginx access 日志

filebeat.prospectors:
- input_type: log
  paths:
    #nginx日志位置
    - /usr/local/nginx/logs/access.log
  #相当于elk的表名
  document_type: gold
  #ngxin的json日志作为根
  json.keys_under_root: true
  #覆盖filebeat自身的字段
  json.overwrite_keys: true

2.2.2. 配置 output.redis 输出到 redis 服务器

output.redis:
  enabled: true
  hosts: ["192.168.254.210:6379"]
  key: logstash
  datatype: list

2.2.3. 配置 path

#filebeat安装目录
path.home: /usr/local/filebeat
#filebeat数据目录
path.data: /usr/local/filebeat/data
#filebeat日志目录
path.logs: /usr/local/filebeat/logs

2.2.4. 配置 filebeat 自身日志参数

logging.to_files: true
logging.files:
  #每个日志文件大小
  rotateeverybytes: 10485760
  #最多保存N个日志文件
  keepfiles: 10

3. 启动 filebeat

nohup /opt/app/filebeat/filebeat >/dev/null 2>&1 &

附 filebeat 文件:filebeat.yml

  • ELK
    23 引用 • 18 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...