lnmp日志分析

在开发时,通常需要记录一些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优化的关键依据之一。

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

时间: 2024-11-07 04:26:46

lnmp日志分析的相关文章

linux系统web日志分析脚本

linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照互联网上图文教程也无从下手.对于此情况我编写了一个web日志分析脚本,功能比较简单,无需配置,有需要的朋友可以再尝试一下.  脚本地址: gbk版(一般ssh客户端不用调整直接可用: wget http://jinxiang.oss-cn-hangzhou.aliyuncs.com/weblogch

CentOS 7 使用ELK套件搭建日志分析和监控平台

1 概述 ELK套件(ELK stack)是指ElasticSearch.Logstash和Kibana三件套.这三个软件可以组成一套日志分析和监控工具. 由于三个软件各自的版本号太多,建议采用ElasticSearch官网推荐的搭配组合:http://www.elasticsearch.org/overview/elkdownloads/ 2 环境准备 2.1 软件要求 本文把ELK套件部署在一台CentOS单机上. 具体的版本要求如下: 操作系统版本:CentOS 6.4: JDK版本:1.

CentOS7下Elastic Stack 5.0日志分析系统搭建

一.概述 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个开源的用于收集,分析和存储日志的工具. Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以汇总.分析和搜索重要数据日志. Beats是elasticsearch公司开源的一款采集系统监控数据的代理ag

mysql慢查询日志分析工具mysqlsla

一.介绍    mysqlsla是一个分析mysql慢日志的工具,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比.执行时间.等待销的时间等. 公司的数据库有很多慢查询日志,导致的系统的负载很高,而mysql慢查询日志文件内容格式不太好看,经推荐使用mysqlsla:使用方便,操作简单. 二.安装mysqlsla 系统环境 CentOS release 6.6 (Final) 2.6.32-504.el6.x86_64 官网已经不能下载,所需要的文件已在百度云

AWStats日志分析工具

awstats官方网站:http://awstats.sourceforge.net/ perl官方网站:http://www.perl.com/ Awstats是一个非常简洁而且强大的统计工具.它可以统计您站点的如下信息: 一:访问量,访问次数,页面浏览量,点击数,数据流量等精确到每月.每日.每小时的数据二:访问者国家.访问者IP.操作系统.浏览器等三:Robots/Spiders的统计四:纺客持续时间五:对不同Files type 的统计信息六:Pages-URL的统计七:其它信息(搜索关键

iOS崩溃日志分析-b

1名词解释 1.1. UUID 一个字符串,在iOS上每个可执行文件或库文件都包含至少一个UUID,目的是为了唯一识别这个文件. 1.2. dwarfdump 苹果提供的命令行工具,其中一些功能就是查看可执行文件或库文件的UUID.示例: dwarfdump --uuid 应用名称.app/应用名称 dwarfdump --uuid 应用名称.dSYM 1.3. symbolicatecrash 苹果提供的命令行工具,可以将crash日志符号化为可读的堆栈信息.XCode6/XCode7版本中,

project03日志分析工具AWStats

++++++++++++++++++++ 日志分析工具AWStats ++++++++++++++++++++ http://www.oschina.net/project http://www.oschina.net/project/tag/147/log-analyzer --统计日志分析工具 http://www.awstats.org/ --官方网站 http://www.nltechno.com/awstats/awstats.pl?config=destailleur.fr  --官

Storm实时日志分析实战

项目背景 最近公司做一个项目,用户需要对网站访问者的广告点击/浏览记录进行实时统计分析,分析结果存入数据库,输出报表.我们采用了Kafka+Storm+Zookeeper的解决方案.之前没有接触过,经过一段时间的研究,最终完成了项目.接下来的内容我将介绍我们的解决方案.供大家参考.我们的系统结构如下: 总体结构介绍 业务系统把点击/浏览广告业务日志统一按规定的格式发送到Kafka集群中,不同的业务日志可以分别发送给Kafka不同的主题.Storm集群中运行了我们的实时统计拓扑,该统计拓扑分别从K

awk日志分析

前言 今天我们来讲讲如何用awk进行网站日志分析,得到页面平均耗时排行 文件 [[email protected]_28_6_20 ~]$ cat logs 222.83.181.42 - - [09/Oct/2010:04:04:03 +0800] GET /pages/international/tejia.php HTTP/1.1 "200" 15708 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows