守护进程

1.守护进程启动方法

系统初始化脚本启动,/etc目录/etc/rc目录开头的某个目录里。拥有超级用户权限

inetd超级服务器启动,inetd有某个脚本启动。

cron根据规则定期执行一些程序,这些程序作为守护进程运行

at 用于指定将来某个时刻的程序执行,时刻到了由cron启动。

用户终端  前台 或者后台都可以启动,用于测试

2.通过穿件一个数据包套接字,并绑定log路径名,捆绑514端口,就可以将我们发送的消息保存下来。往回换地址+514发送数据报,也可以保存我们的日志。

3.接口函数

#include <syslog.h>
void syslog(int priority,const char *message,...);
//priority = leve(0-7)|facility(发送消息的进程类型 )
//多出来一个格式符 %m替换成对应序列号的错误消息

void openlog(const char *ident,int iption,int facility);//before syslog 调用
void closelog(void);

此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf,该文件决定了不同种类的消息应送向何处。

调用openlog是可选择的。如果不调用openlog,则在第一次调用syslog时,自动调用openlog。调用closelog也是可选择的,它只是关闭被用于与syslog守护进程通信的描述符。调用openlog 使我们可以指定一个ident,以后, 此ident 将被加至每则记录消息中。ident 一般是程序的名称(例如 ,cron ,ine 等)

程序的用法示例代码如下:

#include <syslog.h>
int main(int argc, char **argv)
{
openlog("MyMsgMARK", LOG_CONS | LOG_PID, 0);
syslog(LOG_DEBUG,"This is a syslog test message generated by program '%s'\n",argv[0]);
closelog();
return 0;
}

如果我们的程序要使用系统日志功能,只需要在程序启动时使用openlog函数来连接 syslogd程序,后面随时用syslog函数写日志就行了。

配置syslog:

通过文件/etc/rsyslog.conf进行管理。文件中包含许多指定的特殊系统日志:有的是控制台方面的,有的是文件方面或其它主机的。

  首先,我们需要载入合适的TCP和UDP插件以支持接收系统日志。把下面的代码添加到rsyslog.conf的头部:

  $modload imtcp

  $modload imudp

  $InputTCPServerRun 10514

  $UDPServerRun 514

下面我们需要指定一些规则来告诉rSyslog在哪放输入事件。如果你不添加任何规则,输入事件将按照本地的规则进行处理,并且与本地主机的事件交织在一起。我们需要在上面添加节之后和本地处理系统日志之前来正确的指定这个规则,例如:

  if $fromhost-ip isequal '192.168.0.2' then /var/log/192.168.0.2.log

      & ~

这里我们说的每一个来自于192.168.0.2的系统日志都应该保存在/var/log/192.168.0.2.log文件中。&~这个符号是非常重要的,因为它告诉rSyslog将停止处理消息。如果你把它忘写了,消息将越过下一个规则,并且继续处理。在这一规则中还有其他的变量。例如:

  if $fromhost-ip startswith '192.168.' then /var/log/192.168.log

  & ~

  这里我们用192.168.*替代了以这个为开始的所有IP地址,写入到/var/log/192.168.log文件中。你还可以看到一些其它的过滤。

  你将需要重启这个rsyslog服务来激活我们所做的新的配置:

  $ sudo service rsyslog restart

现在,对于发送方的主机,我们还需要对文件rsyslog.conf进行一些更改,在文件的头部,添加下面这行:

  *.* @@192.168.0.1:10514

  这是发送的所有事件,来自于所有源代码和所有重要级别(用*.*),通过TCP协议传给IP地址为192.168.0.1的10514端口。你可是用你所在环境的地址来替换这个IP地址。要启用此配置,你将需要重启主机上的rSyslog。

  你可以通过SSL/TLS更进一步地发送你的系统日志。如果你在互联网上或其它网络间传输系统日志,这也没什么坏处,你可能会发现这个的简单说明。

  现在,如果给你的配置管理系统(如果不使用这个,你可以试一试Puppet或Cfengine工具)添加这个配置,然后,您可以用适当的系统日志来有效地配置每台主机,以确保你的日志将被发送到中央系统日志服务器。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值