近期有客户Linux服务器遇到MySQL不能关闭,关机时也一直卡在MySQL关闭中状态,查看系统日志是硬盘没有空间的原因,其罪魁祸首就是MySQL日志占用了大量空间,删除mysql-bin日志如下:
mysql -uroot -ppasswd -e 'reset master;'
对于普通用户不需主从同步,可禁用mysql-bin日志:
#log-bin=mysql-bin
发布时间:April 30, 2012 // 分类:Iptables // No Comments
Iptables匹配相应规则后会触发一个动作,filter和nat表一般常用的有以下目标操作。
ACCEPT #允许数据包通过
DROP #丢弃数据包,不对该数据包进一步处理
REFECT #丢弃数据包,同时发送响应报文
--reject-with tcp-reset 返回tcp重置
--reject-with icmp-net-unreachable 返回网络不可达
--reject-with icmp-host-unreachable 返回主机不可达
RETURN #转到其它链处理
LOG #将数据包信息记录到syslog
本文就记录下LOG规则的使用,示例:进入的tcp端口为80的数据包记录到日记,错误级别err,描述前缀为INPUT,记录IP/TCP相关信息。
#https://www.haiyun.me
modprobe ipt_LOG #加载模块
iptables -A INPUT -p tcp --dport 80 -j LOG --log-level err --log-prefix "INPUT" --log-ip-options --log-tcp-sequence
--log-level #错误级别
--log-prefix "INPUT" #描述前缀
--log-ip-options #记录IP信息
--log-tcp-sequence #记录TCP序列号
然后访问服务器80端口测试,通过dmesg查看记录的信息如下:
INPUTIN=eth0 OUT= MAC=00:0c:29:73:e0:19:8c:89:a5:65:3a:4a:08:00 SRC=192.168.1.16 DST=192.168.1.2 \
LEN=522 TOS=0x00 PREC=0x00 TTL=128 ID=27499 DF PROTO=TCP SPT=5430 DPT=80 SEQ=3847892455 ACK=3435733082 WINDOW=16344 RES=0x00 ACK PSH URGP=0
还可以修改syslog将日志写入到文件。
vim /etc/syslog.conf #添加以下内容
kern.err /var/log/iptables #日志文件路径
/etc/init.d/syslog restart #重启syslog服务
发布时间:April 13, 2012 // 分类:日记分析 // No Comments
Nginx需配置日记格式为Apache日志格式,便于分析。
1.访问次数最多的前10个IP。
awk '{print $1}' www.haiyun.me.log|sort|uniq -c|sort -rn|head -n 10
2.访问次数最多的10个页面。
awk '{print $7}' www.haiyun.me.log|sort|uniq -c|sort -rn|head -n 10
3.访问最多的时间,取前十个。
awk '{print $4}' www.haiyun.me.log|cut -c 14-18|sort|uniq -c|sort -rn|head -n10
4.查看下载次数最多的文件,显示前10个。
awk '{print $7}' www.haiyun.me.log|awk -F '/' '{print $NF}'|sort|uniq -c|sort -rn|head -n 10
#如统计请求链接去除awk -F '/' '{print $NF}'|sort|
5.统计网站流量,以M为单位。
awk '{sum+=$10} END {print sum/1024/1024}' www.haiyun.me.log
6.统计IP平均流量、总流量。
awk 'BEGIN {print"ip average total"}{a[$1]+=$10;b[$1]++}END{for(i in a)print i,a[i]/1024/1024/b[i]"MB",\
a[i]/1024/1024"MB"}' www.haiyun.me.log |column -t
sed -n '/10\/Feb\/2012:18:[0-9][0-9]:[0-9][0-9]/,$p' www.haiyun.me.log
#截取二月10号18点后所有日志
sed -n '/10\/Feb\/2012:18:[0-9][0-9]:[0-9][0-9]/,/10\/Feb\/2012:20:[0-9][0-9]:[0-9][0-9]/p' \
www.haiyun.me.log
#截取二月10号18点到20点之间日志
8.统计404或403最多的网址。
awk '$9 ~ /403/ {print $7}' www.haiyun.me.log|sort|uniq -c|sort -rn|head -n 80
awk '$9 ~ /404/ {print $7}' www.haiyun.me.log|sort|uniq -c|sort -rn|head -n 80