企业级Nginx增加日志选项
2023-09-11 14:20:11 时间
日志介绍
目的:将用户的访问信息记录到指定的文件中由ngx_http_log_module模块负责
访问日志参数:
access_log:指定日志文件的路径和使用何种日志格式记录日志
log_format:用来指定日志的格式
可以放置标签段: main,http,server,location
日志格式
添加日志:
sed -i '1 i error_log logs/error.log error;' /usr/local/nginx/conf/nginx.conf
创建日志路径:
mkdir -p /usr/local/nginx/logs
配置访问日志(使用默认的配置)
1. 配置log_format(在http中配置)
sed -n '21,24p' nginx.conf.default
取出信息后添加都nginx.conf的http模块中(server之前)
2. 配置access_log(最好在虚拟主机里面配置,便于统计)
默认配置:#access_log logs/access.log main;
放置位置:http server location
本机配置:在单独的虚拟域名的location后配置(注意封号)
server { listen 80; server_name www.etiantian.com etiantian.com; location / { root html/etiantian; index index.html index.htm; } access_log logs/access_etiantian.log main; } # main 表示全局,所有的访问虚拟主机etianitian的都会打入
3. 配置windows的hosts解析
C:\Windows\System32\drivers\etc
4. 测试结果
浏览器访问www.etiantian.com【注意,真实环境也有此IP,本次仅作实验用,记得恢复hosts文件】
关于日志的深入研究
1. 高并发可以写入缓存
access_log log/access_baobaotao.log main gzip buffer=32k flush=5s;
2. nginx访问日志的轮询处理(日志按天分割) -->推荐
缘由:指定的访问日志长时间写入会导致文件过大而无法分析,可以使用切割脚本
#!/bin/sh Dateformat=`date +%Y%m%d` Basedir="/usr/local/nginx" Nginxlogdir="$Basedir/logs" Logname="access_etiantian" [ -d $Nginxlogdir ] && cd $Nginxlogdir||exit 1 [ -f ${Logname}.log ] || exit 1 /bin/mv ${Logname}.log ${Dateformat}_${Logname}.log $Basedir/sbin/nginx -s reload
3.切割脚本添加到定时任务
crontab –e
00 00 * * * /bin/sh cut_nginx.sh &>/dev/null
关于日志收集的工具
自带:syslog rsyslog
开源:flume logstash scrible Awstats ELK
相关文章
- 阿里云日志api创建logStore
- 分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介
- Spring Boot 2.x基础教程:找回启动日志中的请求路径列表
- Android日志系统驱动程序Logger源代码分析
- 《Oracle高性能自动化运维》一一第3章 Oracle重做日志(Redo)
- jboss eap 6.2 ear包 下使用log4j日志
- ES (ElasticSearch) 简易解读(三)企业级日志分析ELK架构的搭建与使用
- Java异常处理基础知识笔记:异常处理机制、异常继承关系、捕获异常、抛出异常、异常的传播、异常调用栈、自定义异常、第三方日志库
- 程序日志-应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITYSYSTEM SID (S-1-5-18)授予针对 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520