ArcGIS Serverサービスが停止/停止したときにメールを受け取る方法はありますか?


10

時折、残念ながら残念ながら、私のAGSサービスは理由もなく停止します。ユーザーが私に電話して、地図にデータがない理由を尋ねるまで、私は通常これに気づきません。

サービスが停止したときにAGSから応答を受け取る方法(私はPythonを考えていました)はありますか?他のAGSユーザーはこの問題にどのように対処しますか?


これは、ArcPy for ArcGIS Server(バージョン10.1)を使用して可能です。私は私の側でこの問題に取り組んでいます。さらにヘルプが必要な場合は、resources.arcgis.com / en / help / main / 10.1 / index.html#// … を確認し、問題がいつ私の側で完璧になるかを知らせてください。 )
Sunil 2013年

+ 1これはすべてのサービスまたは特定のサービスに必要ですか?+詳細については、ArcGIS Admin APIをダウンロードしてください
Sunil

すべてのサービスで本当に必要です...しかし、一部のサービスはクライアントにデータを提供するため、他のサービスは内部で使用されるため、他のサービスよりも重要です。
Robert Buckley 2013年

このような状況で、リサイクルやサービスのヘルスチェック設定の目的は何でしょうか?
ディープ

回答:


3

私は同じ問題を解決し、この解決策を持っています。以下のコードをPythonで記述しました(URLの "localhost"がAGSサーバーの名前に変わります)。

# -*- coding: cp1250 -*-
import smtplib, urllib


from email import Encoders
from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart
from email.Utils import formatdate
from email.MIMEText import MIMEText
from email.MIMEMessage import MIMEMessage

COMMASPACE = ', '
SERVER = "IP adresss of post server"
FROM = "email adress from"
TO = ['1.email adress to','2.email adress to']

SUBJECT = "Some services on ArcGIS Server are down"

ServicesDown = []
CountOfServicesDown=0
TEXT="No problem"


# 1. Service - mapservice1
print "Test of service - mapservice1"
opener = urllib.FancyURLopener({})

f = opener.open("http://"localhost"/arcgis/rest/services/mapservice1/MapServer?wsdl")
code = urllib.urlopen("http://"localhost"/arcgis/rest/services/mapservice1/MapServer?wsdl"?wsdl").getcode()

if code is not 200:
    print "code: ", code
    print "mapservice1 is down"
    ServicesDown.append("mapservice1")
    CountOfServicesDown=CountOfServicesDown+1
else:
    print "service is OK"


# 2. Service - mapservice2
print "Test of service - mapservice2"
opener = urllib.FancyURLopener({})

f = opener.open("http://"localhost"/arcgis/rest/services/mapservice2/MapServer?wsdl")
code = urllib.urlopen("http://"localhost"/arcgis/rest/services/mapservice2/MapServer?wsdl"?wsdl").getcode()

if code is not 200:
    print "code: ", code
    print "mapservice1 is down"
    ServicesDown.append("mapservice2")
    CountOfServicesDown=CountOfServicesDown+1
else:
    print "service is OK"


print "\r\n"+"ServicesDown: ",ServicesDown
print "CountOfServicesDown= ",CountOfServicesDown

if CountOfServicesDown > 0:
    TEXT = "There are down this services: "+str(ServicesDown[:CountOfServicesDown])
    print "TEXT: ", TEXT


    # Prepare actual message

    message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)


    server = smtplib.SMTP(SERVER)
    server.sendmail(FROM, TO, message)
    server.quit()
    print "\r\n"+"Email was send"

else:
    print "\r\n"+"There is no problem on AGS services" 

こんにちは-停止したサービスの最終ログを追加することは可能ですか?
ディープ

4

これについては、ArcGIS Server Admin REST APIを見てみましょう。

実行するPythonスクリプトを記述して、定期的に実行するようにスケジュールできるようです。スクリプトはクラスター内のすべてのサービス取得し、対象のサービスが存在するかどうかを確認し、存在する場合はそのステータスを確認します

それ以外の場合は、通知を電子メールで送信します。

スクリプトは、必要に応じてサービスを(再)開始することもできます。

わかりませんが、ArcPy管理パッケージの管理者がこのAPIを使用する方法を提供している可能性があります。


カークに感謝....それを見てみましょう。それはそれについて取り組む論理的な方法のように思えます。
Robert Buckley 2013年

1

現在、このServiceMonitorバッチスクリプトを使用しており、電子メール通知を行います。毎朝実行されるように、Windowsスケジュールタスクとして設定しました。

唯一の欠点は、多数のサービスがあるため、実行にかなり時間がかかるため、必要な頻度で実行できないことです。おそらく、管理REST APIまたはArcPyの方が速いでしょう。


これは10.0でのみ機能するようです?10.1 / 10.2を使用して機能するかどうかに興味があります。
Alex Tereshenkov 2013年

1
10.2で簡単に実行しましたが、問題なく動作するように見えましたが、10.2サーバーで他の問題が発生したため、あまり広範囲にわたってテストしていません。10.1ではまったくテストしていませんが、基本的には各サービスのWSDLにアクセスできるかどうかを確認するだけなので、どのバージョンでも動作するはずです。
mrohlf 2013年

なるほど、情報ありがとうございます。EsriのService Monitor(数か月前にリリースされた)を試す機会があったら、それはあなたのニーズに非常によく合うと思います(arcgis.com/home/item.html?id=848f48b0f88e4de7a036377197453efe)。ここではいくつかの他の有用なリソースがある- gis.stackexchange.com/questions/73863/...
アレックスTereshenkov

うわー、それは本当に便利に見えます-ありがとう!動的なサービスの発見と監視は、私たちが必要としているものにぴったりです。
mrohlf 2013年

1

暇なときに、ArcGISサーバーのREST URLへのWebリクエストを生成し、サービスの応答を評価するPythonスクリプトを作成しました。回答が否定的である場合、特定の電子メールアドレスに電子メールアラートが送信されます。

シンプルですが、ArcGIS Serverの個々のサービスを監視するのに役立ちます。私はそれが誰かのために役立つことを願っています。

ブログのすべての情報:http : //oneteamgis.wordpress.com/2014/03/24/uno-script-python-che-monitora-i-servizi-di-arcgis-server/

ダミアーノ


残念ながら、ブログの投稿はオンラインではなくなりました。
エリカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.