如果预期的计划报告电子邮件尚未到达,请收到警告

joe*_*iks 6 gmail scheduling reporting-services

我(就像大多数科技管理员一样)我的收件箱中的预定服务有很多状态信息.但是,当一个服务电子邮件失败时,显然没有发送电子邮件.所以我只想要一个查看我的收件箱的服务说"嘿,这个服务昨天没有发送电子邮件报告 - 有些错误!".

应该在某个地方解决这个问题.也许Gmail(或其他一些电子邮件提供商)提供此类服务,这将是很棒的.

ren*_*ene 3

拥有像 Nagios 这样的集中监控解决方案,您将其配置为仅在服务错过其心跳、达到高水位线、耗尽燃料时才发送通知,这不是更好的选择吗?然后是第二个监控解决方案,用于监控主监控解决方案......

http://www.nagios.org/documentation

我不知道您描述的任何服务,但手动例程可能如下所示:

有一个像这样的文件夹/标签结构:

Services\Hourly-[NumberOfServices] (or add a folder per service)
Services\Daily-[NumberOfServicves]
Services\Weekly-[NumberOfServicves]
Services\Monthly-[NumberOfServicves]
Run Code Online (Sandbox Code Playgroud)

对传入邮件制定规则,以过滤每个特定的服务通知,并根据其预期时间将其移动到正确的文件夹。

每小时醒来并检查每小时文件夹中是否有未读消息。未读数量应与文件夹中提到的 NumberOfServices 相同。阅读/处理它们并确保将它们全部标记为已读。任何不通过电子邮件发送的服务都很容易被发现。

0:00 唤醒并检查每日文件夹中是否有未读消息。等等等等..

周六和 0:00 唤醒,检查每周文件夹中是否有未读消息。ETC.....

每月一号 0:00 唤醒,检查每周文件夹中是否有未读消息。等等等等等等...

我的建议是减少服务产生的噪音。

如果你仍然觉得你需要服务,我只能提供一个非常非常基本的.Net实现,大致基于上述过程,并与gmail一起使用...这也可以移植到powershell...

static void Main(string[] args)
        {
            var resolver = new XmlUrlResolver
            {
                Credentials = new NetworkCredential("yourgoolgeaccount", "yourpassword")
            };

            var settings = new XmlReaderSettings();

            settings.XmlResolver = resolver;

            var xr = XmlReader
                .Create("https://mail.google.com/mail/feed/atom/[name of your filter]"
                , settings);

            var navigator = new XPathDocument(xr).CreateNavigator();

            var ns = new XmlNamespaceManager(new NameTable());
            ns.AddNamespace("fd", "http://purl.org/atom/ns#");

            var fullcountNode =  navigator.SelectSingleNode(
                "/fd:feed/fd:fullcount"
                , ns);

            Console.WriteLine(fullcountNode.Value);

            int fullcount = Int32.Parse(fullcountNode.Value);
            int expectCount = 10;

            if (expectCount > fullcount)
            {
                Console.WriteLine("*** NOT EVERY ONE REPORTED BACK");
            }
}
Run Code Online (Sandbox Code Playgroud)