Nginx——关闭Nginx日志

  有时候,nginx日志十分吓人,我们有个客户受到攻击,nginx出现too many connections错误,日志5分钟就写入了10GB,硬盘很快就会满了。 那么,如何关闭Nginx日志?怎么取消/停止Nginx日志? 可以修改nginx.conf

access_log /dev/null;
error_log /dev/null;

这样全部把他们丢到系统的黑洞里了。不用每时每刻都往系统磁盘疯狂的读写日志了 还延长硬盘的寿命。
修改完,重启Nginx( kill -HUP `cat logs/nginx.pid` )即可。

apache的日志级别和设置

1.emerg
紧急 - 系统无法使用。
"Child cannot open lock file. Exiting"
2.alert
必须立即采取措施。
"getpwuid: couldn’t determine user name from uid"
3.crit
致命情况。
"socket: Failed to get a socket, exiting child"
4.error
错误情况。
"Premature end of script headers"
5.warn
警告情况。
"child process 1234 did not exit, sending another SIGHUP"
6.notice
一般重要情况。
"httpd: caught SIGBUS, attempting to dump core in ..."
7.info
普通信息。
"Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)..."
8.debug
出错级别信息
"Opening config file ..."
当指定了特定级别时,任何级别高于他的信息也会同时报告。比如说,当指定了LogLevel info时,任何 notice和warn级别的信息也会被记录。
建议至少要使用crit级别。

sqlserver日志删除

长期积累,sqlserver数据库日志文件会变的非常大,确保日志文件不再使用的前提下,可以删除日志文件,对数据库瘦身。具体方法如下:

1. 打开SQL查询分析器,选择数据库,键入:dump transaction db_name with no_log,运行即可。

2. setp1完成后,使用企业管理器,打开数据库,右击当前数据库→所有任务→收缩数据库→点击文件→下拉选择数据文件、日志文件→点选“收缩文件至”选项,指定文件大小,确定即可。

注意:此操作,收缩数据库,文件大小的调整,sqlserver会指定一个最小文件大小,设定值不能超过此值。

其它方法请参考:http://www.bitscn.com/pdb/mssql/201010/191420.html

mysqlbinlog:处理mysql binlog二进制日志文件的实用工具

服务器生成的二进制日志文件写成二进制格式。要想检查这些文本格式的文件,应使用mysqlbinlog实用工具。
应这样调用mysqlbinlog:

shell> mysqlbinlog [options] log-files...
例如,要想显示二进制日志binlog.000003的内容,使用下面的命令:

shell> mysqlbinlog binlog.0000003
输出包括在binlog.000003中包含的所有语句,以及其它信息例如每个语句花费的时间、客户发出的线程ID、发出线程时的时间戳等等。

通常情况,可以使用mysqlbinlog直接读取二进制日志文件并将它们用于本地MySQL服务器。也可以使用–read-from-remote-server选项从远程服务器读取二进制日志。

当读取远程二进制日志时,可以通过连接参数选项来指示如何连接服务器,但它们经常被忽略掉,除非你还指定了–read-from-remote-server选项。这些选项是–host、–password、–port、–protocol、–socket和–user。 Continue reading

Kloxo关闭日志和网站统计

Filesystem Size Used Avail Use% Mounted on
/dev/simfs 50G 47G 3.1G 94% /

官方说法:

Every day, if the log file's size is larger than 50MB, they are moved into the client's home directory. If you set the remove_processed_logs as true, then instead of moving, they will be deleted. Your main statistics calculation will not be affected at all.

在Kloxo/Lxadmin里添加了一个域名,默认的是打开了网站统计.建议在添加域名时就关闭这个功能。如果没有关闭统计并且流量很大,用不了多久硬盘就会被统计文件撑爆。如果你的MySQL不能正常启动,很有可能是这个原因。可以在下图所示位置关掉统计

为避免这样的情况发生,请作以下设置:

ssh登录vps,删除已有的统计文件
输入命令:
rm -f /home/admin/__processed_stats/* Continue reading

mysql-log-filter

官方地址:http://code.google.com/p/mysql-log-filter/

The script filters the MySQL Slow Query Log to show queries which impacted performance most and is intended to be used by DB admins and application developers.

The log file is analyzed and processed as a stream, line after line, so there is no need to load the whole log file into memory.

--no-duplicates is a very useful option to see only necessary statistics.

--incremental remembers last input file positions and statistics in a SQLite 3 database, so periodical executions on the same files run much faster.

The Python version is usually 3-5 times faster than the PHP5 version. Continue reading

5种mysql日志分析工具比拼

mysql slow log 是用来记录执行时间较长(超过long_query_time秒)的sql的一种日志工具.

启用 slow log
有两种启用方式:
1, 在my.cnf 里 通过 log-slow-queries[=file_name]
2, 在mysqld进程启动时,指定–log-slow-queries[=file_name]选项
比较的五款常用工具
mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter
mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下:
主要功能是, 统计不同慢sql的
出现次数(Count),
执行最长时间(Time), Continue reading

MYSQL开启错误日志的方法

mysql有以下几种日志:
错误日志:   -log-err
查询日志:   -log
慢查询日志:     -log-slow-queries
更新日志:     -log-update
二进制日志:   -log-bin

在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了。
例如:
#Enter   a   name   for   the   binary   log.   Otherwise   a   default   name   will   be   used.
#log-bin=
#Enter   a   name   for   the   query   log   file.   Otherwise   a   default   name   will   be   used.
#log=
#Enter   a   name   for   the   error   log   file.   Otherwise   a   default   name   will   be   used.
log-error=
#Enter   a   name   for   the   update   log   file.   Otherwise   a   default   name   will   be   used.
#log-update=

如何查看FreeBSD的系统日志

由于FreeBSD是一个多用 户系统,那么就需要管理员进行日常维护,特别是用做网络服务器的系统,一旦因为缺乏维护而造成停机故障,就会造成很大损失。即使对于单用户的 FreeBSD系统,同样也要执行这些不可缺乏的维护任务,只是由于系统归个人使用,那么对维护的要求就不必那么高,维护任务就轻松一些。

系统日志

系统的日志记录提供了对系统活动的详细审计,这些日志用于评估、审查系统的运行环境和各种操作。对于一般情况,日志记录包括记录用户登录时间、登录地点、进行什么操作等内容,如果使用得当,日志记录能向系统管理员提供有关危害安全的侵害或入侵试图等非常有用的信息。

BSD提供了详细的各种日志记录,以及有关日志的大量工具和实用程序。这些审计记录通常由程序自动产生,是缺省设置的一部分,能够帮助Unix管理员来寻找系统中存在的问题,对系统维护十分有用。还有另一些日志记录,需要管理员进行设置才能生效。

大部分日志记录文件被保存在/var/log目录中,在这个目录中除了保存系统生成日志之外,还包括一些应用软件的日志文件。当然/var目录下的其他子目录中也会记录下一些其他种类的日志记录文件,这依赖于具体的应用程序的设置。

$ ls /var/log

adduser maillog.5.gz sendmail.st.1

dmesg.today maillog.6.gz sendmail.st.10

dmesg.yesterday maillog.7.gz sendmail.st.2

httpd-access.log messages sendmail.st.3

httpd-error.log messages.0.gz sendmail.st.4

kerberos.log messages.1.gz sendmail.st.5

lastlog messages.2.gz sendmail.st.6

lpd-errs messages.3.gz sendmail.st.7

maillog messages.4.gz sendmail.st.8

maillog.0.gz messages.5.gz sendmail.st.9

maillog.1.gz news setuid.today

maillog.2.gz ppp.log setuid.yesterday

maillog.3.gz sendmail.st userlog

maillog.4.gz sendmail.st.0 wtmp

系统登录日志

系统会保存每个用户的登录记录,这些信息包括这个用户的名字、登录起始结束时间以及 从何处登录入系统的等等。它们被保存到/var/log/lastlog、/var/log/wtmp和/var/run/utmp文件中,这三个文件以 二进制格式保存了这些用户的登录数据。

其中/var/run/utmp文件中保存的是当前系统用户的登录记录,因此这个文件会随着用户进入和离开系统而不断变化,而它也不会为用户保留很长的记录,只保留当时联机的用户记录。系统中需要查询当前用户状态的程序,如 who、w等就需要访问这个文件。

utmp可能不包括所有精确的信息,某些突发错误会终止用户登录会话,当没有及时更新utmp记录,因此utmp的记录不是百分之百的可以信赖的。

而/var/log/wtmp保存了所有的登录、退出信息,以及系统的启动、停机记 录,因此随着系统正常运行时间的增加,它的大小也会越来越大,增加的速度依赖于系统用户登录次数。因此可以利用这个日志用来查看用户的登录记录,last 命令就通过访问这个文件来获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。ac命令同样也使 用wtmp中的数据产生报告,但它的显示方式不同。它可以根据用户(ac -p),或按日期(ap -d)显示信息,这样管理员就能获得一些非常有用的反常信息,如一个平时不太活跃的用户突然登录并连接很长时间,就有理由怀疑这个帐户被窃取了。

注意:X Window由于会同时打开多个终端窗口,因此会使得用户登录连接时间迅速增加。

lastlog文件保存的是每个用户的最后一次登录信息,包括登录时间和地点,这个文件一般只有login程序使用,通过用户的UID,来在lastlog文件中查找相应记录,然后报告其最后一次登录时间和终端tty。然后, login程序就使用新的记录更新这个文件。

这三个文件是使用二进制格式保存的,因此不能直接查看其中的内容,而需要使用相关命 令。当然也可以通过程序来访问这三个文件,这就需要了解它们使用的数据结构。其中utmp和wtmp使用同样的数据结构,而lastlog使用另外一个数 据结构,可使用man来进行查询具体结构。如果系统的用户数量很多,那么wtmp文件的大小会迅速增加,在系统/var文件系统空间紧张的情况下,就导致 这个文件系统被占满。系统不会主动控制这个文件的大小,因此这需要管理员的干预,需要手工及时清除,或编写shell脚本定期保存和清除。

系统还可以提供记账统计的功能,要打开系统的计账功能,需要使用accton命令,注意,accton必须跟随记账日志文件的名字作参数,而不带参数的accton将关闭记账进程。

当打开了记账功能后,可以使用lastcomm来检查在系统中执行的所有命令的信息,包括执行的命令、执行命令的用户、用户使用的终端tty,命令完成的时间,执行时间等。从lastcomm的输出也能帮助管理员检查可能的入侵行为。

此外可以使用ac命令来查询用户的连接时间的报告,sa命令来查询用户消耗的处理器时间的报告。

Syslog日志记录

最初,syslog只是为了sendmail而设计的消息日志工具,由于它提供了一 个中心控制点,使得sys log非常好用和易配置,因此当今很多程序都使用syslog来发送它们的记录信息。syslog是一种强大的日志记录方式,不但可以将日志保存在本地文 件中,还可以根据设置将syslog记录发送到网络上的另一台主机中。

支持syslog方式的系统启动了syslogd守护进程,这个程序从本地的 Unix套接字和监听在514端口(UDP)上的Internet套接字,来获得syslog的记录。本机中进程使用syslog系统调用发送来sy slog记录,然后由syslogd将他们保存到正确的文件或发送到网络上另一台运行syslogd主机中去。

syslogd的设置文件为/etc/syslog.conf,定义消息对应的相应目标,一条消息可以达到多个目标,也可能被忽略。

# $Id: syslog.conf,v 1.9 1998/10/14 21:59:55 nate Exp $

#

# Spaces are NOT valid field separators in this file.

# Consult the syslog.conf(5) manpage.

*.err;kern.debug;auth.notice;mail.crit /dev/console

*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

mail.info /var/log/maillog

lpr.info /var/log/lpd-errs

cron.* /var/cron/log

*.err root

*.notice;news.err root

*.alert root

*.emerg *

!ppp

*.* /var/log/ppp.log

syslog.conf的配置可以分为两个部分,第一部分用于区分消息的类型,另一 个用于设置消息发送的目的地。通常,消息的类型包括消息的产生者,例如kern表示内核产生的消息,auth表示认证系统产生的消息,等等,还包括消息的 级别,例如emerg表示非常重要的紧急信息,alert表示系统告警状态,crit表示关键状态,err 表示一般的错误信息,warning表示警告信息,notice表示提示信息,但还不是错误,info表示一般信息,debug表示调试信息等,因此一个 消息的类型可能为:kern.debug、mail.info等,但页可以使用通配符*进行匹配。

从上面的syslog.conf的设置可以看出,系统正常运行中的很多重要的信息, 如错误信息*.err、内核调试信息kern.debuf、认证报告auth.notice等被直接输出的console中,另外还有一些比较重要的信息 被输出到/var/log/messages文件中,发送邮件的记录将被保存在/var/log/mail log文件中,打印记录为/var/log/lpd-errs等,使得管理员可以根据这些文件来查询相关记录,进行统计或寻找系统问题。其中使用 syslog记录的messages文件中包括root登录的信息、用户多次登录失败的尝试等对系统安全相当重要的信息,因此也是系统遭受攻击之后,攻击 者会根据syslog.conf中设置试图清除相关文件。