Apakah ada cara untuk mendapatkan email ketika layanan ArcGIS Server dihentikan / down?

10

Kadang-kadang, tetapi sayangnya, layanan AGS saya berhenti begitu saja tanpa alasan. Saya biasanya tidak melihat ini sampai pengguna menelepon saya dan bertanya mengapa peta mereka tidak memiliki data.

Apakah ada cara (saya berpikir Python) bahwa saya bisa mendapatkan respons dari AGS ketika layanan berhenti? Bagaimana cara pengguna AGS lainnya menangani masalah ini?

Robert Buckley
sumber
Ini dimungkinkan menggunakan ArcPy untuk ArcGIS Server (versi 10.1). Saya sedang mengerjakan masalah ini di pihak saya. Untuk bantuan lebih lanjut, silakan periksa resources.arcgis.com/en/help/main/10.1/index.html#//… dan beri tahu Anda kapan semuanya akan sempurna di pihak saya: )
Sunil
+1 Apakah Anda memerlukan ini untuk semua layanan atau layanan tertentu? + Unduh ArcGIS Admin API untuk lebih jelasnya
Sunil
Saya benar-benar membutuhkannya untuk semua layanan ... tetapi beberapa lebih penting daripada yang lain karena beberapa layanan mengirimkan data ke klien, dan yang lain untuk penggunaan internal.
Robert Buckley
Dalam situasi seperti itu, apa tujuan Daur Ulang atau pengaturan pemeriksaan kesehatan untuk layanan apa pun?
Jauh

Jawaban:

3

Saya telah memecahkan masalah yang sama dan saya punya solusi ini. Saya menulis dengan Python kode di bawah ini ("localhost" di URL berubah menjadi nama server AGS Anda):

# -*- 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" 
Petr Trefil
sumber
Hai- Apakah mungkin untuk menambahkan log terakhir untuk layanan yang dihentikan?
Jauh
4

Saya akan melihat ArcGIS Server Admin REST API untuk ini.

Sepertinya Anda bisa menulis skrip python yang berjalan dan menjadwalkannya untuk berjalan secara berkala. Script akan mendapatkan semua layanan dalam sebuah cluster , kemudian untuk melihat apakah layanan yang diinginkan ada, dan jika demikian periksa statusnya .

Kalau tidak, kirim email pemberitahuan.

Skrip juga dapat (kembali) memulai layanan, jika Anda mau.

Saya tidak yakin, tetapi admin paket ArcPy admin mungkin menyediakan cara untuk bekerja dengan API ini.

Kirk Kuykendall
sumber
Terima kasih Kirk .... Saya akan melihatnya. Itu sepertinya cara logis untuk melakukannya.
Robert Buckley
1

Saat ini kami menggunakan skrip kumpulan ServiceMonitor ini , yang melakukan pemberitahuan email. Kami mengaturnya sebagai tugas terjadwal Windows sehingga berjalan setiap pagi.

Satu-satunya downside adalah bahwa itu butuh waktu cukup lama untuk dijalankan karena kami memiliki sejumlah besar layanan, jadi kami tidak dapat menjalankannya sesering yang kami mau. Mungkin Admin REST API atau ArcPy akan lebih cepat.

mrohlf
sumber
Sepertinya ini hanya berfungsi pada 10.0? Hanya ingin tahu jika Anda menggunakan 10.1 / 10.2 dan membuatnya bekerja untuk Anda.
Alex Tereshenkov
1
Saya menjalankannya secara singkat pada 10.2 dan sepertinya berfungsi dengan baik, tetapi kami mengalami masalah lain dengan server 10.2 kami sehingga saya belum mengujinya secara luas. Saya belum mengujinya dengan 10.1 sama sekali, tetapi harus bekerja pada versi apa pun karena pada dasarnya hanya memeriksa untuk melihat bahwa WSDL untuk setiap layanan dapat dijangkau.
mrohlf
Begitu ya, terima kasih atas informasinya. Jika Anda pernah mendapatkan kesempatan untuk mencoba Service Monitor Esri (dirilis hanya beberapa bulan yang lalu), saya pikir itu akan sesuai dengan kebutuhan Anda dengan sangat baik ( arcgis.com/home/item.html?id=848f48b0f88e4de7a036377197453efe ). Berikut adalah beberapa sumber daya bermanfaat lainnya - gis.stackexchange.com/questions/73863/...
Alex Tereshenkov
Wow, itu terlihat sangat berguna - terima kasih! Penemuan dan pemantauan layanan dinamis terdengar sempurna untuk apa yang kita butuhkan.
mrohlf
1

Dalam waktu senggang saya mengerjakan skrip Python yang menghasilkan permintaan web ke server ArcGIS url REST dan mengevaluasi respons layanan. Jika jawabannya negatif akan dikirimkan peringatan email ke alamat email tertentu.

Saya pikir ini sederhana namun bermanfaat untuk memonitor layanan individual ArcGIS Server. Saya harap itu bermanfaat bagi seseorang.

Semua info di blog kami: http://oneteamgis.wordpress.com/2014/03/24/uno-script-python-che-monitora-i-servizi-di-arcgis-server/

Damiano

Damiano
sumber
Sayangnya, posting blog tidak lagi online.
Erica