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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于