目录
1.采集Nginx日志
1.1.Nginx日志json格式化
采集nginx日志的json格式,需要修改nginx日志格式,如下:
为便于后期解析日志,建议日志格式按照如下配置,如图:在nginx.conf 里面配置json格式
log_format nginx_json escape=json '{"@timestamp":"$time_iso8601",'
'"server_addr":"$server_addr",'
'"client_ip":"$remote_addr",'
'"status":"$status",'
'"request_method": "$request_method",'
'"http_host":"$host",'
'"request_url":"$request_uri",'
'"proxy_add_x_forward":"$proxy_add_x_forwarded_for",'
'"proxy_port":"$proxy_port",'
'"proxy_host":"$proxy_host",'
'"upstream_host":"$upstream_addr",'
'"upstream_status":"$upstream_status",'
'"upstream_response_time":"$upstream_response_time",'
'"http_user_agent":"$http_user_agent",'
'"http_origin":"$http_origin",'
'"http_upgrade":"$http_upgrade",'
'"http_referer":"$http_referer",'
'"http_x_forward":"$http_x_forwarded_for",'
'"https":"$https",'
'"http_scheme":"$scheme",'
'"ssl_protocol":"$ssl_protocol",'
'"ssl_cipher":"$ssl_cipher"}';
在应用nginx日志里面引用json格式,加上nginx_json,配置如下:
server {
...
access_log /path/to/access.log nginx_json;
}
1.2.logstash-nginx.yml文件配置
配置文件路径:在/home/elk/logstash-7.8.0/config/目录下
创建logstash-nginx.yml配置文件,配置示例如下:
赋权:chmod 755 logstash-nginx.yml
input {
file {
path => "/usr/local/nginx/logs/xpebackend.log"
type => "mall-nginx-xpebackend"
start_position => "beginning"
stat_interval => "3"
codec => json
}
file {
path => "/usr/local/nginx/logs/xpesisap.log"
type => "mall-nginx-xpesisap"
start_position => "beginning"
stat_interval => "3"
codec => json
}
}
output {
if [type] == "mall-nginx-xpebackend"{
elasticsearch {
hosts => "10.62.196.19:9200"
index => "mall-nginx-xpebackend-%{+YYYY.MM.dd}"
}
}
if [type] == "mall-nginx-xpesisap"{
elasticsearch {
hosts => "10.62.196.19:9200"
index => "mall-nginx-xpesisap-%{+YYYY.MM.dd}"
}
}
}
配置说明:
input:
path:配置需要采集的日志路径:xpesisap.log路径
type:日志类型是mall-nginx-xpesisap
说明:mall是业务系统得名称
start_position => "beginning" - 指定从文件的哪个位置开始读 取。 这里指定的是从文件的开头(beginning)开始读取。
stat_interval => "3" - 指定每隔多少秒检查一次文件的状态。这 里 指定的是每隔3秒检查一次。
codec => json - 指定要使用的编解码方式。这里指定的是json, 意味着会将每一行数据解析为JSON格式。
output:
Index:创建索引的格式,是按业务日志作用和每天创建。
1.3.nginx日志查询验证
1.3.1.启动服务
路径:/usr/local/logstash-7.8.0/bin
命令: ./logstash -f ../config/logstash-nginx.yml &
1.3.2.创建索引模板
a.登录kibana管理界面
b.选择:Management-stack-Management-Elasticsearch
进入“索引管理”,选择“索引模板”,创建nginx模板,具体参 数如下:
名称:nginx
索引模式:mall-nginx-*
索引设置:
{
"index": {
"highlight": {
"max_analyzed_offset": "2000000000"
},a
"refresh_interval": "1s",
"blocks": {
"read_only_allow_delete": "false"
},
"query": {
"default_field": [
"*"
]
},
"priority": "1",
"number_of_replicas": "0",
"write": {
"wait_for_active_shards": "1"
}
}
}
然后直接下一步,创建索引模板成功,展示如下:
1.3.3.创建索引模式
a.登录kibana管理界面
b.选择:Management-stack-Management-kibana
c.选择“索引模式”,点击“创建索引模式”,定义一个索引模式,能够匹配到生成的mall-nginx-*的索引,然后保存。如下图所示:
1.3.4.查询结果展示
进入“discover”界面,选择mall-nginx-*模式,在搜索栏目填写搜索条件:type:"mall-nginx-xpesisap",然后点击:刷新,日志展示结果如下: