- 浏览: 331118 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
longge424:
你好,可否将saml与spring security结合使用的 ...
SAML介绍 -
bnmnba:
mark
(转)Ant 学习笔记(一) -
redhacker:
写的还不错!谢谢!
SAML介绍 -
linluxian:
SAML介绍 -
hyj1254:
有效,good.
Linux创建目录与删除目录命令具体分析
管理Linux系统以及应用程序的日志非常重要且具有趣味性。我们想要得到的是重要的、有用的信息,并不是大量的垃圾。你得有能力在日志中找到你需要的信息。古老的 syslogd 工具已经工作了许多个年头。但它现在已经不足以面对更加复杂的需要。为了代替它,我们有了新一代的 Linux 日志管理工具,syslog-ng(syslog-next-generation)。
比较 syslog ,syslog-ng 具有众多高级的功能:更好的网络支持,更加方便的配置,集中式的网络日志存储,并且更具有弹性。比如,使用syslogd时,所有的iptables日志与其他内核日志一起全部存储到了kern.log文件里。Syslog-ng则可以让你有选择性的将iptables部分分出到另外的日志文件中。Syslogd仅能使用UDP协议,Syslog-ng 可以使用UDP和TCP协议。所以你可以在加密的网络隧道中传输日志到集中日志服务器。
安装
所有的Linux发行版本已经默认提供了Syslog-ng包。目前的稳定版本为1.6。如果你使用yum或者apt-get等工具安装Syslog-ng,他们会自动卸载sysklogd包。如果sysklogd没有被自动卸载,亲你手动删除它并且确保syslogd服务已经停止。(sysklogd 是软件包名,syslogd 是服务名)
配置文件结构
由于功能具有弹性,所以配置文件的学习可能稍微曲折。Syslog-ng 的配置文件在 /etc/syslog-ng/syslog-ng.conf ,或者是 /etc/syslog-ng.conf 。你可以通过 man 5 syslog-ng 来学习所有的选项以及字段的含义。一般 syslog-ng 可能含有以下5个章段:
options{}
全局设置。 These can be overridden in any of the next four sections
source{}
信息来源, 来源可以是文件, 本地 sockets, 或者远程主机。
destination{}
信息目标, 可以是文件, 本地 sockets, 或者远程主机。
filter{}
过滤选项非常强大且复杂;你可以过滤日志中的任何方面,比如基础的 syslogd 快捷字段(facility names–man 5 syslog.conf 获取更多信息),log 等级,主机名,以及任何log中出现的字段或者是数字。
log{}
此段将来源 目的 过滤 都给连接起来并且告诉syslog-ng如何处理日志。
一些典型的全局选项:
options {
sync (0);
log_fifo_size (2048);
create_dirs (yes);
group (logs);
dir_group (logs);
perm (0640);
dir_perm (0750);
};
在 /etc/syslog-ng.conf 中使用的全局选项字段必须是被定义过的。 上面例子的具体含义是:
sync
在写入磁盘之前保留多少行的消息输出队列。(这里将日志输出称为“消息”。)0 是首选的数值,这可以让你确保捕获了所有信息,且磁盘也不会在系统以外掉电时丢失信息。
log_fifo_size
输出队列中消息的最大行数。默认为100行。你可以通过计算得出一个合适的数值,以下是引用一份邮件列表,里面提到了相关的内容:
每个消息来源最大接收数据的1024字节。单条日志信息为20至30字节。所以程序的一次执行可以送出1024/20=50条消息。对每个日志发送方,你的 log 接受能力必须满足这个数值。若你有两个日志源,则你必须能一次接受100条信息。
Each message source receives maximum 1024 bytes of data. A single log message is about 20 to 30 bytes. So on a single run each log source may emit 1024/20 = 50 messages. Your log fifo must be able to hold this number of messages for each source. So for two sources, you’ll need at least 100 slots in your fifo.
那两个选项非常容易混淆。 来自远程主机的消息会突然到达,所以你要保证你的 log_fifo_size 参数足以接纳那些突然增加的消息。 不然你就会丢失日志了, 当然这还受限于你的网络速度以及I/O速率。
create_dirs
启用或禁用自动为目标文件创建目录的功能。 在上文中值为“yes”, 所以远程主机会更具需要自动创建目录。
group
dir_group
设定日志文件以及目录的所有人(owner),所以你不必以超级用户(root)的身份去浏览那些日志。
perm
dir_perm
默认新日志文件的权限设置。
Source, Destination, 和 Filter 描述
Source, destination, 和 filter 的名字可以是任意的,看看下面的例子:
source s_local { internal(); unix-stream(”/dev/log”); file(”/proc/kmsg” log_prefix(”kernel: “)); };
destination d_auth { file(”/var/log/auth.log”); };
filter f_auth { facility(auth, authpriv); };
如果你喜欢你可以将 “source s_local” 改为 “source frederick_remington_depew”,当然 “destination d_auth” 也可以为 “destination moon.” 通常我们将 source 的名字中含有 “s” 字段,destination 的名字中含有 “d” 字段, filter 的名字中含有 “f” 字段,但这并不是必须的。source, destination, 和 filter 中其他的选项必须使用已经定义的字段,你可以通过 man 5 syslog-ng.conf 查看这些参数。
上面的例子 “source s_local” 将所有本地生成的日志信息作为一个信息源。而 “destination d_auth” 选项又将这些日志输入了 /var/log/auth.log 文件,当然这是通过 “filter f_auth” 将它们连接起来的。 auth 和 authpriv 是 syslog 标准的设备名称。
最后的日志申明(Log statements)将他们链接到了一起:
log {source(s_local); filter(f_auth); destination(d_auth); };
那么这四行就将本地所有的 auth 和 authpriv 日志筛出并写入了 /var/log/auth.log。
启用远程日志记录
当然,使用老的 syslogd 也可以很好的完成远程日志记录的工作,但那真的不太好,因为他只使用UDP协议传送数据包。首先你需要将所有的客户端上都装好 syslog-ng。并且在日志服务器的 syslog-ng.conf 文件中加入以下配置文件,这样才可以接受远程客户端日志,并将每台机器的日志写入单独的文件。
source s_remote { tcp(); };
destination d_clients { file(”/var/log/HOSTS/$HOST/”); };
log { source(s_remote); destination(d_clients); };
这是一个非常简单但十分有用的例子,他收集所有客户端本地的日志并将日志发送至远程日志服务器:
#sample syslog-ng.conf for a remote client
source s_local { internal(); unix-stream(”/dev/log”); file(”/proc/kmsg” log_prefix(”kernel: “)); };
destination d_loghost {tcp(”192.168.1.10″ port(514));};
log { source(s_local); destination(loghost); };
syslog-ng.conf 配置参考
一份完整的样板配置文件会显得比较长,你可以查看 syslog-ng 安装时附带的配置文件。Debian 用户得到的是一份通过 syslogd 配置而定制的配置文件。我们将给出一份日志服务器的配置文件,以及一个远程日志客户端的配置文件,来看看他们是怎么工作起来的吧:
#sample syslog-ng.conf for a central logging server
options {
sync (0);
log_fifo_size (2048);
create_dirs (yes);
group (logs);
dir_group (logs);
perm (0640);
dir_perm (0750);
};
source s_local { internal(); unix-stream(”/dev/log”); file(”/proc/kmsg” log_prefix(”kernel: “)); };
destination d_auth { file(”/var/log/auth.log”); };
filter f_auth { facility(auth, authpriv); };
source s_remote { tcp(); };
destination d_clients { file(”/var/log/HOSTS/$HOST”); };
log { source(s_remote); destination(d_clients); };
log { source(s_local); filter(f_auth); destination(d_auth); };
修改完 syslog-ng 之后要重启服务:
# /etc/init.d/syslog-ng restart
测试
现在你可以在日志服务器以及客户端上进行一些测试了。由于在本地服务器中最先出现的日志一般是认证日志,所以你可以先尝试着打开一个新的登录窗口,使用su 或者是 sudo 都可以。接着检查 /var/log/auth.log 文件。在客户端上做一些操作,接着检查 /var/log/HOSTS 是否已经为远程客户端创建了新的目录。
另外一个方法是使用更加高级的 logger 命令:
# logger “this is a test”
# logger -p auth.debug “this is a test”
这将在你的日志文件中创建如下内容:
Apr 1 16:08:42 localhost.localdomain logger: this is a test
现在我们已经掌握了 syslog-ng 基本的功能,下周我们讲学习如何将 syslog-ng 客户端以及服务器按照你的意愿配置的更加有规则、易于管理,并且讨论如何建立一个安全的、加密的 syslog-ng 传输。
-----------使用syslog-ng搭建日志服务器---
一、环境
Gentoo-2007.0_amd64
二、安装:为了简便,我用了系统自带的syslog-ng
三、服务器配置:
#cat /etc/syslog-ng/syslog-ng.conf
#
# configuration file for syslog-ng, customized for remote logging
#
options {
use_fqdn(yes);
chain_hostnames(off);
keep_hostname(off);
sync(0);
# The default action of syslog-ng 1.6.0 is to log a STATS line
# to the file every 10 minutes. That's pretty ugly after a while.
# Change it to every 12 hours so you get a nice daily update of
# how many messages syslog-ng missed (0).
stats(43200);
create_dirs(yes);
};
source s_internal { internal(); };
destination d_syslognglog { file("/var/log/syslog-ng.log"); };
log { source(s_internal); destination(d_syslognglog); };
source s_sys { file ("/proc/kmsg" log_prefix("kernel: ")); unix-stream ("/dev/log"); internal(); };
destination d_cons { file("/dev/console"); };
destination d_mesg { file("/var/log/messages"); };
destination d_auth { file("/var/log/secure"); };
destination d_mail { file("/var/log/maillog"); };
destination d_spol { file("/var/log/spooler"); };
destination d_boot { file("/var/log/boot.log"); };
destination d_cron { file("/var/log/cron"); };
destination d_rsync { file("/var/log/rsync"); };
destination d_mlal { usertty("*"); };
filter f_filter1 { facility(kern); };
filter f_filter2 { level(info) and
not (facility(mail)
or facility(authpriv) or facility(cron)); };
filter f_filter3 { facility(authpriv); };
filter f_filter4 { facility(mail); };
filter f_filter5 { level(emerg); };
filter f_filter6 { facility(uucp) or
(facility(news) and level(crit)); };
filter f_filter7 { facility(local7); };
filter f_filter8 { facility(cron); };
filter f_filter9 { facility(daemon); };
filter f_filter10 { facility(local6); };
#log { source(s_sys); filter(f_filter1); destination(d_cons); };
log { source(s_sys); filter(f_filter2); destination(d_mesg); };
log { source(s_sys); filter(f_filter3); destination(d_auth); };
log { source(s_sys); filter(f_filter4); destination(d_mail); };
log { source(s_sys); filter(f_filter5); destination(d_mlal); };
log { source(s_sys); filter(f_filter6); destination(d_spol); };
log { source(s_sys); filter(f_filter7); destination(d_boot); };
log { source(s_sys); filter(f_filter8); destination(d_cron); };
# Remote logging
source s_remote {
udp(ip(0.0.0.0) port(514));
};
destination r_mesg { file("/var/log/syslog-ng/$YEAR/$MONTH/$HOST/messages" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes)); };
destination r_auth { file("/var/log/syslog-ng/$YEAR/$MONTH/$HOST/secure" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes)); };
destination r_mail { file("/var/log/syslog-ng/$YEAR/$MONTH/$HOST/maillog" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes)); };
destination r_spol { file("/var/log/syslog-ng/$YEAR/$MONTH/$HOST/spooler" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes)); };
destination r_boot { file("/var/log/syslog-ng/$YEAR/$MONTH/$HOST/boot.log" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes)); };
destination r_cron { file("/var/log/syslog-ng/$YEAR/$MONTH/$HOST/cron" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes)); };
destination r_daemon { file("/var/log/syslog-ng/$YEAR/$MONTH/$HOST/daemon" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes)); };
destination r_local6 { file("/var/log/syslog-ng/$YEAR/$MONTH/network/messages" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes)); };
#destination d_separatedbyhosts {
# file("/var/log/syslog-ng/$HOST/messages" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));
#};
#log { source(s_remote); destination(d_separatedbyhosts); };
log { source(s_remote); filter(f_filter2); destination(r_mesg); };
log { source(s_remote); filter(f_filter3); destination(r_auth); };
log { source(s_remote); filter(f_filter4); destination(r_mail); };
log { source(s_remote); filter(f_filter6); destination(r_spol); };
log { source(s_remote); filter(f_filter7); destination(r_boot); };
log { source(s_remote); filter(f_filter8); destination(r_cron); };
log { source(s_remote); filter(f_filter9); destination(r_daemon); };
log { source(s_remote); filter(f_filter10); destination(r_local6); };
四、客户端配置
linux使用的syslog守护进程主要有两种,syslog和syslog-ng
1、syslog
#vi /etc/syslog.conf
*.* @loghost
loghost为日志服务器的IP或者主机名,主机明必须能正确解析到日志服务器IP。
然后重新启动syslog服务:
#/etc/init.d/syslog restart
2、syslog-ng
在配置文件syslog-ng.conf中加入两行:
destination d_udp { udp("loghost" port(514)); };
log { source(src); destination(d_udp); };
重新启动syslog-ng服务
#/etc/init.d/syslog-ng restart
winodws服务器的配置
因为windows服务器不支持日志服务器,因此需要安装一个转换软件:
下载地址为:
https://engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys/
根据系统的版本下载32位和64位的程序。
解压后是两个文件evtsys.dll和evtsys.exe
把这两个文件拷贝到 c:\windows\system32目录下。
打开Windows命令提示符(开始->运行 输入CMD)
C:\>evtsys –i –h 192.168.10.100 #(日志服务器的IP地址)
-i 表示安装成系统服务
-h 指定log服务器的IP地址
如果要卸载evtsys,则:
net stop evtsys
evtsys -u
启动该服务:
C:\>net start evtsys
配置完成:)
发表评论
-
一个不错的shell 脚本教程
2015-12-16 17:01 0Linux中有好多中不同的shell,但是通常我们使用bas ... -
Linux下查看文件和文件夹大小
2015-08-27 17:16 760当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令 ... -
(转)Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
2015-06-04 16:49 1839互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已 ... -
AWK处理两个文件公共字段
2015-06-03 16:36 4184在文件score.txt中存有如下数据:(姓名 分数) ... -
linux awk的使用详解(收藏)
2014-09-03 16:04 704简介 awk是一个强大的文本分析工具,相对于grep的查 ... -
linux下通过JNI用C/C++中调用JAVA类
2012-07-20 16:15 1773最近工作中完成 ... -
Linux环境变量的设置和查看方法
2011-10-23 21:40 1740Linux是一个多用户的操作系统。每个用户登录系统后,都 ... -
Linux创建目录与删除目录命令具体分析
2010-12-13 09:40 4074最近被人问到如何在linux下创建多层目录结构,当时只是知道m ... -
linux下查看端口的状态
2010-12-01 23:02 1558netstat -tln 命令是用来查看linux的端口使用情 ... -
SUSE Linux 立即关闭防火墙的命令和指定开放某些端口(转载)
2010-08-11 14:42 8845转载自:http://www.justwinit.cn/pos ... -
xhost unable to open display解决方法
2010-08-09 09:54 4526在ixpub上看到很多朋友遇到关于xhost 命令的 ... -
守护进程
2010-07-28 17:58 1008在linux或者unix操作系统中在系统的引导的时候会开启 ... -
vi 的查找替换
2010-07-28 10:40 1294vi替换命令用法详解 : ranges /pat1/pa ... -
深入分析配置静态路由与相关命令
2010-07-21 15:16 1969配置静态路由的步骤还很简单的。由于路由器Router3除了 ... -
SUSE下使用syslog-ng部署日志服务器指导
2010-07-21 12:50 4918摘要: 日志文件集中存储是网络安全的必要手段,可将 ... -
[转]在Linux中使能IP转发
2010-07-20 17:03 2437Linux系统缺省并没有打开IP转发功能,要确认IP转发功能的 ... -
Tcpdump的使用
2010-07-15 17:56 1539实际用例: 监测192.16.0.100到192.16.0.1 ... -
Linux命令之Ethtool
2010-07-06 10:42 1590描述:Ethtool是用于查询及设置网卡参数的命令。 概要 ... -
Linux系统的文件句柄数量问题
2010-07-01 17:40 2443在Linux下面部署应用的时候,有时候会遇上Socket/F ... -
【linux】lsof命令和{Linux下文件删除、句柄与空间释放问题}
2010-07-01 17:39 5968导读: 一、用事实说话 二、关于LSOF命令的其它用法: ...
相关推荐
syslog-ng Docker映像该存储库包含以下Docker映像的源: balabit/syslog-ng :已安装syslog-ng。...更多信息有关如何在Docker和其他与Docker相关的syslog-ng用例中运行中央日志服务器的详细信息,请参阅博客文章。
Linux+Cacti+Syslog-ng+Snare的组合是一种高效且强大的日志集中管理系统,它可以帮助IT管理员收集、分析和管理来自多个网络设备的日志信息。这个系统的主要组成部分包括: 1. Linux:作为基础操作系统,Linux提供了...
本文主要介绍如何在CentOS 5.8环境下搭建syslog-ng、Mysql以及phpMyAdmin的集成环境,以实现日志管理和数据库存储。以下是对各个组件的详细说明: 1. **syslog-ng**: syslog-ng是下一代syslog守护进程,它扩展了...
配置syslog-ng时,需要定义日志源、日志目的地以及过滤规则,例如将特定级别的日志发送到指定的文件或远程服务器。 **phpMyAdmin** phpMyAdmin是一个基于Web的MySQL数据库管理工具,它允许用户通过浏览器对MySQL...
syslog服务器搭建方案旨在解决设备数量庞大的问题,降低日志信息的查看难度,并提供集中存放、实时报告和 WEB 界面查询日志的功能。该方案适用于大型企业网络、数据中心、云计算平台和大型系统等应用场景。
集中日志服务器搭建,有相关的软件版本和文档说明
Syslog 是一种广泛使用的日志协议,能够将各种系统和应用日志集中发送到中央日志服务器进行存储和分析。搭建 Syslog 日志服务器需要进行以下步骤: 1. 准备硬件环境:需要准备一台具有稳定网络环境和足够存储空间的...
总结,libol-0.3.18在syslog-ng服务器的搭建和使用中扮演了核心角色,为日志管理提供了高效、灵活的解决方案。理解libol的功能和syslog-ng的配置,对于构建稳定、可靠的日志管理系统至关重要。通过持续优化和监控,...
在本文档中,我们将使用Linux操作系统,结合SYSLOG-NG和PHP-SYSLOG-NG来搭建这样的日志服务器。 **一、目标设定** 1. **日志集中存储**:将所有服务器的日志信息汇总到日志服务器,并备份到MySQL数据库,便于统一...
5. **配置客户端**:在需要发送日志的设备上,同样需要安装rsyslog(或syslog-ng),然后在配置文件中指定日志服务器的IP地址和端口。例如,添加`*.* @<日志服务器IP>:514`将所有级别日志发送至服务器。 6. **安全...
在本文中,我们将详细探讨如何搭建一个syslog服务器,特别关注在CentOS 5.5系统上进行的步骤。syslog服务器是一种日志收集和管理工具,它能够接收并存储来自多个网络设备的日志消息,对于网络监控和故障排查至关重要...
配置日志服务器需要安装syslog-ng或者rsyslog,配置日志服务器的日志收集和存储规则。 八、总结 本文详细介绍了CentOS 7 LNMP环境搭建Zabbix及日志服务器配置的步骤和过程,包括安装jemalloc、MariaDB、Nginx、PHP...
对于非结构化日志,可以使用如rsyslog或syslog-ng等工具进行转发。 配置完成后,日志服务器需要有能力存储大量日志。这可能涉及选择合适的存储解决方案,如文件系统、数据库(如MySQL、Elasticsearch)或云存储服务...
合理配置日志系统,如syslog-ng,收集和分析服务器日志,以便于故障排查和安全审计。 七、负载均衡与高可用性 对于高流量或关键业务,可搭建负载均衡集群,如HAProxy或Nginx Plus,分发请求到多台服务器,提高服务...
FTP(File Transfer Protocol)是一种广泛使用的互联网协议,用于在不同计算机之间传输文件。...在实际操作中,确保服务器的安全性和稳定性是至关重要的,包括使用安全协议、限制访问权限和定期备份数据。
1. **安装syslog-ng服务**:在日志服务器上下载并安装syslog-ng软件包,用于接收来自客户端的日志信息。 2. **配置syslog-ng**:编辑syslog-ng的配置文件,指定监听的端口和接收数据的格式,以便能够正确接收来自...
系统监控工具如top、htop、nmon等,以及日志管理工具,如rsyslog、syslog-ng、logrotate等,是系统管理员常用的工具,可以帮助监控服务器状态,处理系统日志。而备份与恢复策略是预防数据丢失的重要措施,需要选择...