推动日志滚动的守护进程是

推动日志滚动的守护进程是,第1张

几乎所有的网络设备都可以通过syslog协议,将日志信息以UDP的形式传送给远端服务器,远端接收日志服务器必须通过syslogd监听UDP端口514,并根据 syslogconf 配置文件张的配置处理。配置文件 /etc/rsyslogconf 中规定了syslogd如何根据设备和信息的重要级别来报告信息。
CentOS65之前,配置文件为/etc/syslogconf,从CentOS65之后,配置文件名变更为/etc/rsyslogconf 。
syslog支持日志分类输出到特定文件中,但是有几个限制:
1、syslog日志输出支持分类,但不支持每个进程单独输出到某个文件(因为syslog并不是作为一套完整的日志库而产生的);
2、syslog输出的日志文件位置并不是任意的,默认仅仅限于/var/log/目录下,如果指定到其他位置,视为无效;
配置文件的格式:
服务优先级 <tab> action字段。

其中,服务优先级一起统称为选择条件。条件选择是对服务进行了分类,便于syslog对日志的输出管理。同时一行的配置中,允许出现多个选择条件,多个选择条件使用 ; 隔开。

服务(facility),用来指定syslog的功能,主要包括:

1 kern 内核信息,首先通过 klogd 传递;
2 user 用户进程;
3 mail 邮件;
4 daemon 后台进程;
5 authpriv 授权信息;
6 syslog 系统日志;
7 lpr 打印信息;
8 news 新闻组信息;
9 uucp 由uucp生成的信息
10 cron 计划和任务信息。
11 mark syslog 内部功能用于生成时间戳
12 local0---local7 与自定义程序使用,例如使用 local5 做为 ssh 功能
13 通配符代表除了 mark 以外的所有功能

优先级(level),指定了syslog的优先级,从高到底依次为:

1 emerg 或 panic 该系统不可用(最紧急消息)
2 alert 需要立即被修改的条件(紧急消息)
3 crit 阻止某些工具或子系统功能实现的错误条件(重要消息)
4 err 阻止工具或某些子系统部分功能实现的错误条件(出错消息)
5 warning 预警信息(警告消息)
6 notice 具有重要性的普通条件(普通但重要的消息)
7 info 提供信息的消息(通知性消息)
8 debug 不包含函数条件或问题的其他信息(调试级-信息量最多)
9 none 没有重要级,通常用于排错(不记录任何日志消息)
10 所有级别,除了none

action:

1 /var/log/lastlog : 记录登录系统的用户上次登录系统的时间 可用/usr/bin/lastlog 指令读取
2 /var/run/utmp : 记录每个用户登录系统的时间, who, users, finger 等指令会查这个档案
3 /var/log/wtmp : 记录每个用户登录及登出的时间, 用last命令查看 也记录 shutdown 及 reboot 的动作
4 /var/log/secure : 登录系统的信息
5 /var/log/maillog : 记录 sendmail 及 pop 等相关信息
6 /var/log/cron : 记录 crontab 的相关信息 ,定时器的信息
7 /var/log/dmesg : /bin/dmesg 会将这个档案显示出来, 它是开机时的画面信息
8 /var/log/xferlog : 记录那些位址来 ftp 拿取那些档案
9 /var/log/messages : 系统大部份的信息皆记录在此, 包括 login, check password , failed login, ftp, su 等

/var/log/xferlog的各个字段解析
Thu Dec 1 17:40:46 2016 8 101140147 32035942 /home/chb/1txt b _ o r dxpanalysis ftp 0 c
字段 含义
Thu Dec 1 17:40:46 2016 日期和时间
8 下载文件所花费的秒数
101140147 远程系统
320359 文件大小
/home/chb/1txt 本地路径名
b 传输类型(a:ASCII,b:二进制)
_ 与压缩相关的标志或tar,或”_”(如果没有压缩的话)
o 传输方向(相对于服务器而言:i代表进,o代表出)
r 访问模式(a:匿名,g:输入口令,r:真实用户)
dxpanalysis 用户名
ftp 服务名(通常是ftp)
0 认证方法(l:RFC931,或 0)
认证用户的ID或”“, 为未获取到
c 传输状态; c表示传输完成
调用syslog的守护进程:
syslog也是一个守护进程,准确的说应该是rsyslog,位于/etc/rcd/initd/rsyslog,这是syslog的启动脚本。当我们修改了启动交而不能文件中的内容之后,需要使用service rsyslog restart命令重启该服务。
syslog不仅仅用来记录本机文件的日志信息,更多的是作为一个日志服务器,用来接收远程系统的信息。对该服务的启动,有两个常用选项:
-r:将当前主机作为日志服务器,监听514端口上进来的UDP包,接收远程系统的信息。没有该选项,将不会接收来自远程系统的信息。
-h:使得当前日志服务器能够传送日志信息,
如何配置一个中央日志服务器:
1、编辑/etc/sysconfig/rsyslog(CentOS65之前的版本该文件叫做syslog),该文件中可以声明,启动该服务的时的启动选项。
-r:上面提到过,表示允许接收外来日志消息;
-m :将默认的时间戳标记信息出现频率变为自己指定的值eg: -m240,表示每240分钟在日志文件中增加一行时间戳消息;
-x:表示不希望让中央日志服务器解析其他机器的FQDN(完全合格域名,指的是主机名+全路径);
SYSLOGD_OPTIONS="-r -x -m 240 -c 5"
2、重启rsyslog服务
service rsyslog restart
3、关闭防火墙(iptables),允许514号端口上的连接通过;
4、对客户机进行配置syslog
方法一:在客户机上syslog的配置文件中,对有关配置行的 *** 作动作部分用“@”字符指向中央日志服务器,而不用指向本机的 /var/log/
# Log all the mail messages in one place
mail @192168324
方法二:在DNS中定义一个机器,命名随意,这里以“loghost”为例,然后将客户机的配置文件改为如下形式。这样就可以避免以后如果发生日志服务器更换的情况,不用再一个一个修改客户机的syslog配置文件。
# Log all the mail messages in one place
mail @loghost
对客户机配置完毕之后,以及需要进行重启。
syslog的函数接口:

#include <syslogh>
void openlog(const char ident, int option, int facil- ity);
# ident:对哪个进程进行日志记录,为进程名
# option常用选项:
LOG_CONS:
LOG_PID:打印的每一条日志信息包含当前进程的PID
# facil-ity常用选项:
LOG_USER:打印的每一条日志信息包含当前用户的等级信息
void syslog(int priority, const char format, );
# format:输出日志信息的参数列表,用法类同printf
void closelog(void);

测试用例:

#include <stdioh>
#include <syslogh>
int main(int argc,char argv[])
{
openlog(argv[0],LOG_CONS | LOG_PID, LOG_USER);
int count = 0;
while(count < 5)
{
syslog(LOG_INFO, "%d, log info test ", count);
count++;
}
closelog();
return 0;
}

为了同时测试配置文件,在syslog的配置文件中添加一行内容如下:
user /var/log/01 # 该文件默认只能在/var/log下,放在其它目录下无效
重启rsyslog服务;
执行原程序,就可以在/var/log/看到0log文件,打开文件,内容如下:
[root@>

BT中的tracker是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件客户端连上tracker服务器,就会获得一个下载人员得名单,根据这个,BT会自动连上别人的机器进行下载

作用:

运行于服务器上,能够追踪到底有多少人同时在下载同一个文件。它是提供bt的服务器。把文件用bt发布出来的人需要知道该使用哪个服务器来为要发布的文件提供tracker。

对所有下载者的信息进行维护。当它收到一个请求后,首先把对方的信息记录下来(如果已经记录在案,那么就检查是否需要更新),然后将一部分(并非全部,根据设置的参数已经下载者的请求)参与下载同一个文件(一个tracker服务器可能同时维护多个文件的下载)的下载者的信息返回给对方。

扩展资料:

具体分析tracker服务器的实现细节:
要建立一个tracker服务器,只要运行bttrackpy程序就行了,它最少需要一个参数,就是–dfile,这个参数指定了保存下载信息的文件。Bttrackpy调用trackpy中的track()函数。因此,我们跟踪到trackpy中去看track()函数。
Trackpy:track()。这个函数首先对命令行的参数进行检查;然后将这些参数保存到config字典中。在BT中所有的工具程序,都有类似的处理方式。
首先是创建一个RawServer对象,这是一个服务器对象,它将实现一个网络服务器的一些细节封装起来。不仅tracker服务器用到了RawServer,我们以后还可以看到,由于每个client端也需要给其它client提供下载服务,因此也同时是一个服务器,client的实现中,也用到了RawServer,这样,RawServer的代码得到了重用。关于RawServer的详细实现,在后面的小节中进行分析。
接着是创建一个Tracker对象。
然后让RawServer绑定在指定的端口上(通过命令行传递进来)。
最后,调用RawServer::listen_forever()函数,使得服务器投入运行。
最后,在服务器因某些原因结束运行以后,调用Tracker::save_dfile()保存下载信息。这样,一旦服务器再次投入运行,可以恢复当前的状态。

参考资料:

百度百科

1、Linux下重要日志文件介绍
/var/log/bootlog
该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示:

图1 /var/log/bootlog示意
/var/log/cron
该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。该文件的示意请见图2:

图2 /var/log/cron文件示意
/var/log/maillog
该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。图3所示是该日志文件的片段:

图3 /var/log/maillog文件示意
该文件的格式是每一行包含日期、主机名、程序名,后面是包含PID或内核标识的方括号、一个冒号和一个空格,最后是消息。该文件有一个不足,就是被记录的入侵企图和成功的入侵事件,被淹没在大量的正常进程的记录中。但该文件可以由/etc/syslog文件进行定制。由/etc/syslogconf配置文件决定系统如何写入/var/messages。
/var/log/syslog
默认Fedora不生成该日志文件,但可以配置/etc/syslogconf让系统生成该日志文件。它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。要让系统生成该日志文件,在/etc/syslogconf文件中加上:warning /var/log/syslog 该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件是二进制文件,需要使用lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过,就显示为"Never logged in"。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似图4的信息:

图4 lastlog命令的运行结果
/var/log/wtmp
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
/var/run/utmp
该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。
以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看。其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数据结构可以使用man命令查询。
每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令使用,包括who、w、users和finger。
下一步,login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。
/var/log/xferlog
该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。
该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型(a:ASCII,b:二进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务器而言:i代表进,o代表出)、访问模式(a:匿名,g:输入口令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或0),认证用户的ID或""。图5是该文件的部分显示:

图5 /var/log/xferlog文件示意
2、Linux日志输出查看方式
Linux下面提供了许多文本工具来查看和处理日志文件,下面给读者提供一些比较常见和有用的工具。
dmesg
使用dmesg命令可以快速查看最后一次系统引导的引导日志。如图6所示:

图6 dmesg显示结果
如上所示,通常它的内容会很多,所以我们往往使用如下命令以分页的方式显示引导信息,如图7所示:
# dmesg | more
<img alt="dmesg" more命令显示结果"="" src=">查看某用户 cat /home/username/bash_history 的 *** 作历史
使用root登陆使用last -x可查看用户登陆历史。
last 命令:
功能说明:列出目前与过去登入系统的用户相关信息。
语 法:last [-adRx][-f ][-n ][帐号名称…][终端机编号…]
补充说明:单独执行last指令,它会读取位于/var/log目录下,
名称为wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
参 数:
-a 把从何处登入系统的主机名称或IP地址,显示在最后一行。
-d 将IP地址转换成主机名称。
-f 指定记录文件。
-n 或- 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息。
lastlog可简单查看所有用户最后一次的登陆时间


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13449783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-08
下一篇 2023-08-08

发表评论

登录后才能评论

评论列表(0条)

保存