コード例 #1
0
    def testParseRsyslog(self):
        test_data = br"""
    $SomeDirective
    daemon.* @@tcp.example.com.:514;RSYSLOG_ForwardFormat
    syslog.debug,info @udp.example.com.:514;RSYSLOG_ForwardFormat
    kern.* |/var/log/pipe
    news,uucp.* ~
    user.* ^/usr/bin/log2cowsay
    *.* /var/log/messages
    *.emerg    *
    mail.*  -/var/log/maillog
    """
        log_conf = io.BytesIO(test_data)
        parser = config_file.RsyslogParser()
        results = list(parser.ParseMultiple([None], [log_conf], None))
        self.assertEqual(1, len(results))
        tcp, udp, pipe, null, script, fs, wall, async_fs = [
            target for target in results[0].targets
        ]

        self.assertEqual("daemon", tcp.facility)
        self.assertEqual("*", tcp.priority)
        self.assertEqual("TCP", tcp.transport)
        self.assertEqual("tcp.example.com.:514", tcp.destination)

        self.assertEqual("syslog", udp.facility)
        self.assertEqual("debug,info", udp.priority)
        self.assertEqual("UDP", udp.transport)
        self.assertEqual("udp.example.com.:514", udp.destination)

        self.assertEqual("kern", pipe.facility)
        self.assertEqual("*", pipe.priority)
        self.assertEqual("PIPE", pipe.transport)
        self.assertEqual("/var/log/pipe", pipe.destination)

        self.assertEqual("news,uucp", null.facility)
        self.assertEqual("*", null.priority)
        self.assertEqual("NONE", null.transport)
        self.assertFalse(null.destination)

        self.assertEqual("user", script.facility)
        self.assertEqual("*", script.priority)
        self.assertEqual("SCRIPT", script.transport)
        self.assertEqual("/usr/bin/log2cowsay", script.destination)

        self.assertEqual("*", fs.facility)
        self.assertEqual("*", fs.priority)
        self.assertEqual("FILE", fs.transport)
        self.assertEqual("/var/log/messages", fs.destination)

        self.assertEqual("*", wall.facility)
        self.assertEqual("emerg", wall.priority)
        self.assertEqual("WALL", wall.transport)
        self.assertEqual("*", wall.destination)

        self.assertEqual("mail", async_fs.facility)
        self.assertEqual("*", async_fs.priority)
        self.assertEqual("FILE", async_fs.transport)
        self.assertEqual("/var/log/maillog", async_fs.destination)
コード例 #2
0
  def setUpClass(cls):
    super(RsyslogCheckTests, cls).setUpClass()

    cls.LoadCheck("rsyslog.yaml")
    cls.parser = config_file.RsyslogParser()