设为首页 收藏本站
查看: 1299|回复: 0

lnmp日志分析

[复制链接]

尚未签到

发表于 2015-11-16 08:32:32 | 显示全部楼层 |阅读模式
  在开发时,通常需要记录一些log方便后期排错和优化。无论是php、nginx,还是MySQL数据库,都提供记录log功能,在适当的时候打开log记录功能,有助于我们发现代码中的各种问题。

1.php日志

在php的配置文件php.ini中设置下面的选项:

;开启日志记录和记录的错误等级
log_errors = on

  这样,一旦php在运行时遇到错误,就会被记录。log文件的格式:时间+错误级别+错误信息+发生错误的文件+错误所在的代码行。
  2.nginx日志

Nginx日志主要分为两种:访问日志和错误日志。
  2.1访问日志

访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义。通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息。Nginx中访问日志相关指令主要有两条:

(1)log_format
log_format用来设置日志格式,也就是日志文件中每条日志的格式,具体如下:
log_format name(格式名称) type(格式样式)
举例说明如下:

    log_format  main  '$server_name $remote_addr - $remote_user [$time_local] "$request" '
'$status $uptream_status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'$ssl_protocol $ssl_cipher $upstream_addr $request_time $upstream_response_time';

  (2)access_log

access_log指令用来指定日志文件的存放路径(包含日志文件名)、格式和缓存大小,具体如下:
access_log path(存放路径) [format(自定义日志格式名称) [buffer=size | off]]
  2.2错误日志

错误日志主要记录客户端访问Nginx出错时的日志,格式不支持自定义。通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。因此,将日志好好利用,你可以得到很多有价值的信息。错误日志由指令error_log来指定,具体格式如下:
error_log path(存放路径) level(日志等级)
path含义同access_log,level表示日志等级,具体如下:
[ debug | info | notice | warn | error | crit ]
从左至右,日志详细程度逐级递减,即debug最详细,crit最少。

3.MySQL日志

MySQL中有四种日志,分别是错误日志、二进制日志、查询日志和慢查询日志。这些log可以在my.conf文件中配置。

3.1错误日志

错误日志记录MySQL启动和停止,以及服务器运行过程中发生的任何错误的相关信息。在配置文件里配置 “–log-error=[file-name]”指定错误日志存放的位置。如果没有指定[file-name],默认hostname.err为文件名。

2015-08-02 21:21:41 8198 [Note] Server hostname (bind-address): '*'; port: 3306
2015-08-02 21:21:42 8198 [Note] IPv6 is available.
2015-08-02 21:21:42 8198 [Note]   - '::' resolves to '::';
2015-08-02 21:21:42 8198 [Note] Server socket created on IP: '::'.
2015-08-02 21:21:42 8198 [Note] Event Scheduler: Loaded 0 events
2015-08-02 21:21:42 8198 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.6.23-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
2015-08-02 21:21:43 8198 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown

  上面是日志的摘录一部分。错误类型有 note/error等。

3.2二进制日志

二进制日志通常被称为binlog,包含所有更新数据或者已经潜在更新数据的所有语句。数据以“事件”的形式保存,描述数据更新,还包括关于每个更新数据库的语句的执行时间信息。二进制日志记录着所有的DDL和DML,但不包括数据查询语句。

binlog以binary方式存放,不能直接查看,需要使用MySQL提供的mysqlbinlog工具查看。

3.3查询日志

查询日志记录client的所有语句,在配置文件中通过配置log选项启用,启用方法:

log=/var/log/mysql_query.log

  查询日志也是一个文件,由于查询日志记录数据库所有操作,对访问频繁的系统,这种日志会造成性能影响,建议关闭或者间歇性打开。如果遇到安全问题,也可以通过这个日志进行排查。

3.4慢查询日志

这个大家应该很熟悉,它要在配置中设置 long_query_time(单位:秒),当某条SQL语句执行事件超过它的,并且慢查日志开启后,慢查语句就存放到指定的位置:

#日志存放的文件位置
log_slow_queries=/usr/local/mysql/var/slow.log

  慢查询日志对于跟踪有问题的查询非常有用,对MySQL的性能影响不大,建议打开。慢查询日志是MySQL优化的关键依据之一。

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139668-1-1.html 上篇帖子: lnmp基础 下篇帖子: centos6 搭建lnmp
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表