#### 前言
存在日志更易读的需求,需要对日志进行json格式输出,对接logstash到es的链路,如下以nginx日志进行示例
#### yum源安装nginx
```
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 # 针对于centos7系统
cat > /etc/yum.repos.d/nginx.repo <<- EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/\$basearch/
gpgcheck=0
enabled=1
EOF
yum clean all && yum repolist
yum -y install nginx
systemctl enable nginx && systemctl restart nginx
```
#### 日志json化配置
nginx的安装与配置,这里不再赘述
```
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 定义日志json格式输出
log_format json escape=json '{"@timestamp":"$time_iso8601",'
'"@version":"1",'
'"server_addr":"$server_addr",'
'"remote_addr":"$remote_addr",'
'"host":"$host",'
'"uri":"$uri",'
'"body_bytes_sent":$body_bytes_sent,'
'"bytes_sent":$body_bytes_sent,'
'"upstream_response_time":$upstream_response_time,'
'"request":"$request",'
'"request_length":$request_length,'
'"request_time":$request_time,'
'"status":"$status",'
'"http_referer":"$http_referer",'
'"http_x_forwarded_for":"$http_x_forwarded_for",'
'"http_user_agent":"$http_user_agent"'
'}';
# access.log的日志输出以json格式打印
access_log /var/log/nginx/access.log json;
# access_log /var/log/nginx/access.log main;
```
#### 重新加载生效
> nginx -s reload
#### 测试
#### 访问nginx的网址
> curl localhost # 本机服务器终端访问
##### 查看日志
注释: 红色字体即为处理后的json日志格式