在我的公司,我们有很多应用程序在很多不同的服务器上运行。 这些应用程序会生成大量日志,有时开发人员忘记压缩这些日志,这样nagios会多次警告磁盘空间。 除了我必须检查这些日志是否被压缩并且比x天还旧之外,我必须将这些文件发送到我们的备份服务器,这将在亚马逊,我们select这种方法,因为如果某个磁盘是完整的,我们只是添加一个新的磁盘上。 所以我必须创build一个很好的日志计划。 我想知道你们是否已经通过这个问题,你推荐我做什么? 我的方法好坏吗? 任何build议对我来说都是非常重要的。
在我的Nginx访问日志中,下面的请求(这是其中的一半左右)已经超过了从注册到越南ISP的IP几分钟的时间(我可以提供IP,但我不确定如果这是允许她)。 我昨天刚刚设置了服务器。 注意libwww-perl/5.805用户代理和path(寻找常见的configuration文件等)。 我应该担心这个问题,还是有太多的机器人扫描IP地址,每天都会有这样的扫描是不可避免的? <some IP in Vietnam> – – [22/May/2013:11:15:44 +0000] "GET /db_config.ini HTTP/1.1" 502 166 "-" "libwww-perl/5.805" <some IP in Vietnam> – – [22/May/2013:11:15:45 +0000] "GET /db_conf.ini HTTP/1.1" 502 166 "-" "libwww-perl/5.805" <some IP in Vietnam> – – [22/May/2013:11:15:45 +0000] "GET /data.inc HTTP/1.1" 502 166 "-" "libwww-perl/5.805" <some IP in Vietnam> – – […]
我们正在考虑长期向云端迁移。 计划从小规模开始,逐步将基础设施的不重要部分迁移到云中。 迄今为止都很好。 这一迁移的一部分包括来自Web服务器的日志文件以及其他内容。 请记住,服务器仍在云端以外的数据中心。 在每天结束时,应该很容易地拥有一个cron job抓取日志文件,压缩这些日志文件,并将它们推送到Amazon S3,并将其备份到Glacier。 这很容易。 当S3是您存储日志的唯一位置,并且您想要search各种事件的日志时,就会出现问题。 如果您不知道时间间隔,则可能必须从S3下载全部日志才能进行全面search,结果变得非常昂贵 – 将您的数据移入云中非常便宜,从中获得成本非常高昂。 或者我可以设置一个EC2实例模板。 当有人想要做日志search时,启动实例,从S3下载日志,然后grep。 从S3下载文件到EC2很便宜。 但下载可能需要一段时间; 另外,如果你不知道你在找什么,你需要下载很多日志,这意味着在EBS中使用大量的空间。 另一种方法是将日志上传到DynamoDB或其他东西。 价格可能是一个问题。 另一个问题是,日志是完全非结构化的Apache和Squid日志等等 – 所以查询可能需要很长时间。 我们正在谈论500GB /年的压缩日志,存储长达5年。 对我来说,像这样在云中存储日志似乎不是一个好主意。 也许只是使用Glacier作为“磁带备份”,但现在在本地保存日志,在几个硬盘上。 你哪种方式倾斜?
我有几个服务器(Linux,不同的人pipe理的各种发行版),我想集中在splunk上 。 日志收集在/var/logs但是源直接更新(例如Apache)或者通过rsyslog 。 换句话说,我可以假设这些日志将会到位,但它们出现的方式并没有被定义(以及服务器之间的变化)。 因此,我正在寻找一种方法来处理/var/logs作为一个整体,通过生成每日增量,然后我将发送到splunk>。 我可以写一个脚本来做这样的事情(parsing树,收集文件,添加到档案,零等等),但我相信这个问题已经得到解决的一个更好的方式(沿线logrotate但是对于整个目录) (注:后续的评论我想强调的事实,我没有控制,也不知道将在/var/log创build的文件,具体而言,我不想依靠需要我configuration手的解决scheme日志文件)
我的路由器每四十秒广播一次(发送到224.0.0.1)。 UFW在syslog中存储了一个日志条目: 1月5 03:49:02日志内核:[1184.788900] [UFW BLOCK] IN = eth0 OUT = MAC = 01:00:5e:00:00:01:40:5a:9b:5c:9c:fd:08: 00 SRC = 192.168.1.1 DST = 224.0.0.1 LEN = 32 TOS = 0x00 PREC = 0x80 TTL = 1 ID = 0 DF PROTO = 2 我即将build立一个系统日志服务器,将收集每个networking的50台机器的消息。 每隔四十秒就用50条消息来污染系统日志,这让我非常恼火,而且路由器本身不幸是不可configuration的。 有没有办法阻止这些特定的消息(通过源和目标过滤)被logging,同时仍然logging防火墙阻止的其他条目?
rsyslog是强大的,但它的文档不是那么明确。 我无法弄清楚如何parsing日志文件,并以GELF格式直接将其路由到Graylog。 我已经find有关在rsyslog中输出gelf的文档,但我不知道如何继续。 到目前为止,它试图将下面的configuration文件放在/etc/rsyslog.d/01-access.conf但似乎没有工作… template(name="gelf" type="list") { constant(value="{\"version\":\"1.1\",") constant(value="\"host\":\"") property(name="hostname") constant(value="\",\"short_message\":\"") property(name="msg" format="json") constant(value="\",\"timestamp\":\"") property(name="timegenerated" dateformat="unixtimestamp") constant(value="\",\"level\":\"") property(name="syslogseverity") constant(value="\"}") } input(type="imfile" File="/var/log/apache2/access.log" Tag="apache-access" ) if $programname == 'apache-access' then { action( type="omfwd" Target="GRAYLOG-IP" Port="12201" Protocol="tcp" template="gelf" ) stop }
我正在寻找一些软件来监视一些Linux服务器上的本地文件系统。 它可以是商业或免费的,因为成本不是问题。 系统正在运行ubuntu Server 8.04 x86。 我希望软件能够写入日志文件或实时显示到terminal。 我还对具有GUI组件的软件感兴趣,这样技术人员就可以快速查看日志,添加和删除文件和目录,并更改他们感兴趣的文件系统事件的types。
有时在我的日志报告中,我注意到在httpd下面有一个“尝试使用已知黑客行为”的部分,另外一个部分是关于多less个站点探测服务器的。 我有几个关于这些部分的问题: apache或logwatch是一个捡到并报告已知黑客的人吗? 哪个程序实际上知道这是一个已知的黑客? 是否有某个位置或参考点是其中一个程序正在使用的已知攻击列表? 日志能够报告攻击是否成功,或者我需要一个单独的软件来拾取这个? 当logwatch报告x个站点探测到服务器时,究竟意味着什么? 它是一个端口扫描吗? 漏洞扫描? 指纹? apache是向日志文件报告这个问题还是logging日志分析日志文件并计算出来?
什么是推荐的解决scheme来梳理Apache的前一天的/ var / log / httpd / error_log查找包含特定string和电子邮件时,检测到这样的string的行? 它可以通过cron每小时运行,我的情况下的string将是“sigkill”或“达到maxclients”。 Nagios,仙人掌等将是一个矫枉过正。 我需要一些简单的东西 谢谢
首先,我不知道将信息传递给环境是最好的方法,所以我将首先详细介绍我实际上想要达到的目标。 在公司范围内,有一些服务器,其中一些雇员拥有单独的shell帐户,他们使用这些帐户连接到其他服务器,使用公钥authentication,以root身份login。 我想要做的就是能够告诉他们正在login的远程服务器,服务器上的用户帐户是从哪里来的。 例如用户John Doe,在central.server上有一个帐户,他login到他的帐户jdoe , jdoe用户现在连接到remote.server.1,并以公钥validation身份login。 我想logging他在remote.server.1上发出的命令,但是我想保留central.server上他实际上是jdoe的信息 所以,基本上我想能够从remote.server.1中取出一个日志,看看哪个员工在什么时间,什么地方做了什么 据我所知,我可以在remote.server.1的configuration文件或bashrc中添加一些日志logging,并使用PermitUserEnvironment设置sshd,在central.server上使用全局configuration文件,并使用它将环境variables中的用户名传递给远程。 server.1 我想知道是否有更好的方法来实现呢? 谢谢