日志片断分析

systemd:服务报出来的信息

kvm:内核模块kvm报出来的信息

kernel: tun: 内核的tun模块报出来的信息

kernel: br0: 内核的br0模块报出来的信息

kernel: kvm [1437] kvm进程为pid1437报出来的信息

Jul 31 11:00:01 localhost systemd: Starting Session 4 of user root.

Jul 31 11:01:01 localhost systemd: Started Session 5 of user root.

Jul 31 11:01:01 localhost systemd: Starting Session 5 of user root.

Jul 31 11:01:55 localhost kvm: 1 guest now active

Jul 31 11:01:55 localhost kernel: tun: Universal TUN/TAP device driver, 1.6

Jul 31 11:01:55 localhost kernel: tun: (C) 1999-2004 Max Krasnyansky

Jul 31 11:01:55 localhost kernel: device tap0 entered promiscuous mode

Jul 31 11:01:55 localhost kernel: br0: port 2(tap0) entered forwarding state

Jul 31 11:01:55 localhost kernel: br0: port 2(tap0) entered forwarding state

Jul 31 11:01:57 localhost kernel: kvm [1437]: vcpu0 disabled perfctr wrmsr: 0xc2 data 0xffff

Jul 31 11:01:57 localhost kernel: kvm [1437]: vcpu0 unhandled rdmsr: 0x570

Jul 31 11:02:10 localhost kernel: br0: port 2(tap0) entered forwarding state

Jul 31 11:02:17 localhost kernel: br0: port 2(tap0) entered disabled state

Jul 31 11:02:17 localhost kernel: device tap0 left promiscuous mode

Jul 31 11:02:17 localhost kernel: br0: port 2(tap0) entered disabled state

Jul 31 11:02:17 localhost kvm: 0 guests now active

Jul 31 11:02:33 localhost kvm: 1 guest now active

Jul 31 11:02:33 localhost kernel: device tap0 entered promiscuous mode

Jul 31 11:02:33 localhost kernel: br0: port 2(tap0) entered forwarding state

Jul 31 11:02:33 localhost kernel: br0: port 2(tap0) entered forwarding state

Jul 31 11:02:48 localhost kernel: br0: port 2(tap0) entered forwarding state

Jul 31 11:02:59 localhost kernel: kvm [1463]: vcpu0 disabled perfctr wrmsr: 0xc2 data 0xffff

Jul 31 11:02:59 localhost kernel: kvm [1463]: vcpu0 unhandled rdmsr: 0x570

Jul 31 11:03:36 localhost systemd: getty@tty1.service has no holdoff time, scheduling restart.

Jul 31 11:03:36 localhost systemd: Started Getty on tty1.

Jul 31 11:03:36 localhost systemd: Starting Getty on tty1...

Jul 31 11:03:58 localhost systemd-logind: New session 6 of user root.

Jul 31 11:03:58 localhost systemd: Started Session 6 of user root.

Jul 31 11:03:58 localhost systemd: Starting Session 6 of user root.

Jul 31 11:10:01 localhost systemd: Started Session 7 of user root.

Jul 31 11:10:01 localhost systemd: Starting Session 7 of user root.

Jul 31 11:11:46 localhost yum[1599]: Installed: pciutils-3.2.1-4.el7.x86_64

http://blog.csdn.net/hxh129/article/details/8089474

格式

日志设备(类型).(连接符号)日志级别   日志处理方式(action)  其中连接符号有.|.=|.!三种

日志设备

注释

日志级别

注释

动作

注释

auth

pam产生的日志

debug

有调式信息的,日志信息最多

/var/log/file.log

authpriv

ssh,ftp等登录信息的验证信息

info

一般信息的日志,最常用

/dev/pts/0

cron

时间任务相关

notice

最具有重要性的普通条件的信息

@192.168.0.1

udp远程

kern

内核

warning

警告级别

@@192.168.0.1:10514

tcp远程

mark

rsyslog服务内部的信息,时间标识

err

错误级别,阻止某个功能或者模块不能正常工作的信息

root

在线root

uucp

unix to unix copy, unix主机之间相关的通讯

cirt

严重级别,阻止整个系统或者整个软件不能正常工作的信息

root,kadefor,up01

在线多个

lpr

打印

alert

需要立刻修改的信息

*

所有在线

news

新闻组

emerg

内核崩溃等严重信息

~

忽略,丢弃

users

用户程序产生的相关信息

none

什么都不记录

^/tmp/a.sh

执行脚本

mail

邮件

local1~7

自定义的日志设备

last 与lastb一样,只不过lastb默认显示的是btmp文件

[root@test1 ~]# rpm -qa|grep log

sysklogd-1.4.1-46.el5

logwatch-7.3-9.el5_6

logrotate-3.7.4-12

rsyslog-3.22.1-7.el5

[root@test1 ~]# rpm  -qa|grep init

initscripts-8.45.42-1.el5.centos

[root@test1 ~]# rpm -qa|grep psacct

psacct-6.3.2-44.el5

/var/run/utmp 当前的,/var/log/wtmp 历史的,/var/log/btmp 失败的

[root@cache ~]# last

root     pts/0        36.44.101.18     Sat Jul 19 19:19   still logged in

root     pts/0        36.44.101.18     Sat Jul 19 18:59 - 19:18  (00:19)

root     pts/0        172.16.1.18      Fri Jul 18 22:18 - 01:47  (03:28)

wtmp begins Mon Jul 14 19:02:38 2014

[root@cache ~]# last -f /var/log/btmp  查看失败纪录的  -f /var/run/utmp -f /var/log/wtmp

root     ssh:notty    36.44.101.18     Sat Jul 19 19:18   still logged in

root     ssh:notty    36.44.101.18     Sat Jul 19 19:18 - 19:18  (00:00)

btmp begins Sat Jul 19 19:18:54 2014

登录记账

登录会话(如login程序,telnet程序和sshd程序)

/var/run/utmp

/var/log/wtmp

/var/log/lastlog

[root@250-shiyan include]# less bits/utmpx.h

[root@250-shiyan include]# less utmp.h

[root@250-shiyan include]# less utmpx.h

[root@250-shiyan include]# less paths.h

[root@250-shiyan include]# pwd

/usr/include

一般来说,应用程序无需知道/var/run/utmp,/var/log/wtmp这些路径名,因为这些路径名是编译进glibc的。需要引用这些文件的存储位置的程序应该使用在(and )中定义的_path_utmp和_path_wtmp路径名常量,而不是在代码中硬编码路径名。

wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。

last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户

lastlog命令查看各个用户最后一次登录时间

users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话

w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息

who命令查询utmp文件并报告当前登录的每个用户

ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时)

ac -d按天计算登录的时间,ac -p按用户计算登录时间,ac -d lzb查找此用户每天的登录时间

包含下列结构的一个二进制记录写入这两个文件中:

struct utmp {

char ut_line[8]; /* tty line: "ttyh0", "ttyd0", "ttyp0", ... */

char ut_name[8]; /* login name */

long ut_time; /* seconds since Epoch */

};

登录时,login程序填写这样一个结构,然后将其写入到utmp文件中,同时也将其添写到wtmp文件中。

销时,init进程将utmp文件中相应的记录擦除(每个字节都填以0

),并将一个新记录添写到wtmp文件中。读wtmp文件中的该注销记录,其ut_name字段清除为0。在系统再启动时,以及更改系统时间和日期的前

后,都在wtmp文件中添写特殊的记录项。who( 1 )程序读utmp文件,并以可读格式打印其内容。后来的UNIX版本提供last( 1

)命令,它读wtmp文件并打印所选择的记录。wtmp文件,它跟踪各个登录和注销事件。

wted

wtmp/utmp日志编辑程序。你可以使用这个工具编辑所有wtmp或者utmp类型的文件。

z2

utmp/wtmp/lastlog日志清理工具。可以删除utmp/wtmp/lastlog日志文件中有关某个用户名的所有条目。不过,如果用于Linux系统需要手工修改其源代码,设置日志文件的位置。

连接时间日志

进程统计日志

错误日志

[root@cache ~]# rpm -qa|grep psacct

psacct-6.3.2-63.el6_3.3.x86_64

[root@cache ~]# service psacct stop

Shutting down process accounting:                          [  OK  ]

[root@test1 account]# service psacct start    服务启动

Starting process accounting:                               [  OK  ]

[root@test1 account]# /etc/init.d/psacct start  脚本启动

Starting process accounting:                               [  OK  ]

[root@test1 ~]# lastcomm pts/0          通过终端名

[root@test1 ~]# lastcomm ls               通过命令名

[root@test1 ~]# lastcomm oracle         通过用户名查询

[root@cache ~]# lastcomm

crond             SF    root     __         0.03 secs Sat Jul 19 20:01

run-parts               root     __         0.03 secs Sat Jul 19 20:01

S 命令由超级用户执行

F 命令由fork产生,但没有exec

D 命令终止并创建一个core文件

X 命令被sigterm信号终止

[root@cache ~]# sa

90   32918.77re       0.02cp    15590k

2     103.78re       0.00cp    17840k   sshd

2       0.00re       0.00cp    40344k   rpm

15   32719.14re       0.00cp    15922k   ***other*

4       0.00re       0.00cp    27552k   ps

3      95.59re       0.00cp    14420k   sftp-server

3       0.00re       0.00cp    27104k   psacct

6       0.00re       0.00cp     4355k   unix_chkpwd

4       0.00re       0.00cp    29324k   ls

7       0.00re       0.00cp    13053k   bash*

0.36re "实际时间" 单位为分钟。

0.12cp 系统和用户时间总数(CPU时间, 单位为分钟)。

31156K 核心使用所占的平均CPU时间, 一个单元的大小为1KB。

up2date 命令名。

显示每一个用户:

[root@test1 ~]# sa -u

root       0.00 cpu      917k mem accton

root       0.00 cpu    15806k mem touch

root       0.00 cpu    16060k mem psacct

oracle     0.07 cpu    35696k mem oracle

oracle     0.00 cpu   327296k mem oracle           *

[root@test1 ~]# sa -a

245     107.25re       0.12cp    74539k

44      57.27re       0.05cp    35697k   oracle

4       0.04re       0.04cp    28412k   rpmq

1       0.12re       0.03cp    78080k   yum-updatesd-he

2      24.14re       0.00cp    16330k   sshd

2      23.90re       0.00cp    16576k   bash

[root@test1 ~]# sa -b

249     110.34re       0.12cp    74947k

4       0.04re       0.04cp    28412k   rpmq

13       1.24re       0.03cp    14194k   ***other

46      60.35re       0.06cp    35697k   oracle

2      24.14re       0.00cp    16330k   sshd

2      23.90re       0.00cp    16576k   bash

2       0.00re       0.00cp    16464k   ps

[root@test1 ~]# sa -m

252     111.34re       0.13cp    75499k

root                                  156      49.77re       0.07cp    12392k

oracle                                 94      61.36re       0.06cp   181496k

sshd                                    2       0.22re       0.00cp    16000k

你可以通过查看re, k, cp/cpu(见上面输出解释)时间来找出可疑的活动, 或某个用户/命令占用了所有的CPU时间。如果CPU/Memeory使用数(命令)在不断增加, 可以说明命令存在问题。

logrotate 指令

compress 通过gzip 压缩转储以后的日志

nocompress 不需要压缩时,用这个参数

missingok 如果日志不存在,不会发出抱怨

dateext  切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,没有这个配置项会附加一个小数点加一个数字序号

copytruncate 用于还在打开中的日志文件,把当前日志备份并截断,在复制当前日志文件后,将日志文件清空;而不是将当前日志文件改名后创建一个新的

nocopytruncate 备份日志文件但是不截断

create mode owner group 转储文件,使用指定的文件模式创建新的日志文件

nocreate 不建立新的日志文件

delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩

nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。

errors address 专储时的错误信息发送到指定的Email 地址

ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。

notifempty 如果是空文件的话,不转储

mail address 把转储的日志文件发送到指定的E-mail 地址

nomail 转储时不发送日志文件

olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统

noolddir 转储后的日志文件和当前日志文件放在同一个目录下

prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行

postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

daily 指定转储周期为每天

weekly 指定转储周期为每周

monthly 指定转储周期为每月

rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份

tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~

size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及K (sizek)或者M (sizem).

prerotate 命令指定转储以前的动作

/usr/bin/chattr -a 去掉/var/log/messages文件的“只追加”属性

endscript 结束 prerotate 部分的脚本

postrotate 指定转储后的动作

/usr/bin/killall -HUP syslogd 用来重新初始化系统日志守护程序 syslogd

/usr/bin/chattr +a /var/log/messages 重新为 /var/log/messages 文件指定“只追加”属性,这样防治程序员或用户覆盖此文件。

最后的 endscript 用于结束 postrotate 部分的脚本

1、在/etc/logrotate.d目录下创建一个nginx的配置文件"nginx"配置内容如下

#vim /etc/logrotate.d/nginx

/usr/local/nginx/logs/*.log {

daily

rotate 5

missingok

notifempty

sharedscripts

postrotate

if [ -f /usr/local/nginx/logs/nginx.pid ]; then

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

fi

endscript

}

#/usr/sbin/logrotate -f /etc/logrotate.d/nginx

4、配置文件说明

daily:日志文件每天进行滚动

rotate:保留最5次滚动的日志

notifempty:日志文件为空不进行滚动

sharedscripts:运行postrotate脚本

下面是一个脚本

postrotate

if [ -f /usr/local/nginx/logs/nginx.pid ]; then

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

fi

endscript

脚本让nginx重新生成日志文件。

以下两步即可实现一个应用的日志轮转

[root@109-com1 cron.daily]# cat /etc/logrotate.d/asterisk

/var/log/asterisk/messages

{

missingok

copytruncate

create

notifempty

rotate 5

}

[root@109-com1 cron.daily]# crontab -l

*/5 * * * * /usr/sbin/logrotate /etc/logrotate.d/asterisk

但是运行却发现每天虽然在生成新日志文件,但是日志还是被写到旧文件里去。好好研究了一下发现这错误犯的真2,rsyslog和logrotate根本就是两个软件包两回事嘛。虽然logrotate重命名了当前log,删了旧log,但是rsyslog不知道哇,打开的文件还是旧文件嘛。当然写的就是旧文件了嘛。

经探索后发现这个问题有两种解决办法。

1.copytruncate,拷贝后截断。

把当前log拷贝后截断。可以理解为把内容拷贝走作为备份,然后清空当前文件。但是这有一个问题就是拷贝和截断之间会有时间差,存在丢数据的可能。

2.给rsyslog发信号。重新打开log文件。

在/etc/logrotate.d/zw_log里添加

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

endscript

postrotate表示在日志轮转后执行

sharedscripts表示zw_notice.log、zw_info.log两个日志共享这个脚本,就是说他俩轮转完成后只执行一次这个脚本,默认情况下是每个脚本轮转完成就执行一次。

sharedscripts...endscripts设置起来使用才行。至于可用环境为:

prerotate:在启动logrotate之前进行的命令,例如修改日志文件的属性等;

postrotate:在做完logrotate之后启动的命令,例如重启某个服务。

例子:

sharedscripts

postrotate

pkill -USR1 iscsiuio 2> /dev/null || true

endscript

/var/log/spooler

{

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

endscript

}

http://www.rsyslog.com/doc/v5-stable/configuration/basic_structure.html

rsyslogd日志丢失的解决

rsyslog报错误消息

imuxsock begins to drop messages

增加下面两个参数后,便不丢失日志

方法1(有效)

vi /etc/rsyslog.conf,加入下面两句,然后重启rsyslog服务即可

$IMUXSockRateLimitInterval 0

$SystemLogRateLimitInterval 0

方法2(好像不怎么有效)

$SystemLogRateLimitInterval 60

$SystemLogRateLimitBurst 3000

linux 启动rsyslog服务_linux服务之rsyslog相关推荐

  1. linux启动mysql命令_LINUX启动/重启/停上MYSQL的命令(详解)

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld sta ...

  2. linux停止network服务命令是,Linux启动关闭重启网络服务的两种方式

    注意:1.这三种方式主要用于以redhat为基础的发行版 2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验 第一种方式:ln -s 建立启动软连接 在Linux中有7种运行级别(可在/et ...

  3. python使用telnet远程连接linux系统读取信息_Linux服务笔记之一:Telnet 远程登录

    最近,在学习Linux服务器中的搭建,感觉上非常强大.下面,我写下在Linux下搭建Telnet服务来远程管理设备--这也是一种古老的远程管理方 式这一. 其中,Telnet服务也是基于C/S模式的. ...

  4. linux 启动rsyslog服务_linux rsyslog服务部署

    软件安装 在centos7,rsyslog默认安装,重点在于配置文件. [root@localhost samba]# vim /etc/rsyslog.conf $ModLoad imuxsock ...

  5. linux 启动rsyslog服务_我的服务器怎么老这么慢,难道说是被挖矿了?linux开机启动项自查...

    黑客技术点击右侧关注,了解黑客的世界! Java开发进阶点击右侧关注,掌握进阶之路! Python开发点击右侧关注,探讨技术话题! 作者丨小熊爱编程 来源丨编程三分钟(coding3min) &quo ...

  6. linux 关闭redis 命令_linux关闭redis命令 redis配置redis的服务器启动和关闭 - Redis - 服务器之家...

    linux关闭redis命令 redis配置redis的服务器启动和关闭 发布时间:2017-04-13 来源:服务器之家 # chkconfig: 2345 10 90 # description: ...

  7. linux svn 服务 关闭,Linux下启动、关闭SVN服务

    Linux下启动/关闭Oracle 一.Linux下启动Oracle Linux下启动Oracle分为两步: 1)启动监听: 2)启动数据库实例: 1.登录服务器,切换到oracle用户,或者以ora ...

  8. linux svn 启动命令行,Linux下启动、关闭SVN服务

    Linux下启动/关闭Oracle 一.Linux下启动Oracle Linux下启动Oracle分为两步: 1)启动监听: 2)启动数据库实例: 1.登录服务器,切换到oracle用户,或者以ora ...

  9. linux启动keepalived服务,keepalived的原理及安装应用

    一.keepalived 1.vrrp协议的软件实现,原生设计目的是为了高可用ipvs服务 2.功能: vrrp协议完成地址流动 为vip地址所在的节点生成ipvs规则 为ipvs集群的各RS做健康状 ...

最新文章

  1. 字节码学院全栈学习笔记
  2. 35岁老码农:老板,你看我还有机会吗?
  3. Tomcat发布项目方法!
  4. 如何计算ModBus超时时间?
  5. BZOJ2298 [HAOI2011]problem a 【dp】
  6. python 缺失值处理(Imputation)
  7. Mysql Connector 5.1 好用的新特性
  8. 扫描枪读条码数据在单片机串口电路的读取与显示
  9. 前端工程化开发方案app-proto
  10. 手机端本地图片或者拍照的上传功能
  11. windows下consul安装启动
  12. 用sublime Text2来开发ruby on rails项目
  13. VS2012+Win7网站发布详细步骤
  14. 翻译 - 元编程动态方法之public_send
  15. Android 长按Button出现一个菜单
  16. Abaqus2020帮助文件无法搜索问题
  17. FileZillaServer创建FTP服务器
  18. 伺服驱动器cn1引脚定义_关于三菱驱动器CN1端口的接线-专业自动化论坛-中国工控网论坛...
  19. MATLAB 计算点到直线的距离
  20. 常用论文检查语法错误软件和网址

热门文章

  1. 2022年最新内测分发内测托管、上架App Store教程
  2. 程序员找工作经历,一个人在北京工作的艰辛
  3. DruidCP源码阅读8 -- removeAbandoned机制
  4. Funk吉他学习笔记001 【6 Sick Funk Guitar Grooves From Leo Nocentelli of The Meters】
  5. lubuntu12.04将64G minSD卡 格式exFAT 转 FAT32
  6. 半边数据结构【Half Edge】
  7. Android中微信抢红包助手的实现
  8. 中小型企业优选的免费OA品牌
  9. Java电子信箱系统的设计与实现
  10. 网络安全——SQL注入攻击