Python with seleniumで監視設定!

こんにちは!サイオステクノロジーの山田と申します。

約一年ぶりの投稿になりますが、今回はpython言語で”selenium”を利用した監視に挑戦してみました。

selenium

これまで”監視”というものは、「必要なプロセスは動している?」or「pingが通る?」という観点で設定してきました。

今回はこれをもっともっとシンプルに、「ユーザは今使えているの?」という点で監視するのが目的です。

これはユーザになりきってログインし、出来なければアラート!という仕組みです。

この記事を読むことで以下のことが出来るようになります。

・Pythonとseleniumの導入

・PythonでChromeを起動

・コマンドラインでChromeインストール

・seleniumの自動ログイン処理のやり方

・処理結果に応じたアラート送信のやり方

 

それでは監視機能の設計を始めてみましょう!

 ●構成図

selenium構成図

・監視元サーバについて

ディストリビューション:SUSE Linux Enterprise Server 12 Glibc:2.22

※ChromeブラウザをLinuxに入れる場合、Glibc2.18以上である必要がございます。

2017/07時点で、Rhel・centosではyumから取得可能なものはGlibc2.17までですので、

これらを利用する場合は、ソースから取得を検討ください。

 

・監視先サーバについて

AlfrescoというオープンソースのECM(エンタープライズコンテンツ管理)を導入したAzureサーバです。

(弊社でも絶賛活躍中です!) Alfrescoに興味がある方は以下を参照

https://www.alfresco.com/jp/Alfresco%E3%82%92%E8%A9%A6%E3%81%99

 ●「python」「pip」「selenium」をインストール

pythonについては大体のディストリビューションに初めから入ってますので、基本的には不要です。

2系・3系どちらでもOKです。

 ●「Chrome」をインストール

普段ブラウザをインストールは容易なのですが、コマンドラインからとなると、 少し難しいです・・。

 

ちなみにRHEL系の場合は、”/etc/yum.repos.d/chrome.repo”に以下の内容を記載した後に、

yum install google-chrome-stable を実行する必要がございます。

 ●「chromedriver」をインストール

seleniumで呼び出す、Chromeを起動するための機能です。

ダウンロードしましたら、解凍しスクリプトと同じディレクトリに配備します。

 

 ●監視スクリプトを作成します。

●以下はスクリプトの解説になります。

・ここでは、”selenium” 及び “メール送信”に必要な機能をインポートしています。

・ここは見た通りなのですが、”送り元” と “送り先”のメールアドレスを定義します。

(ここを適当に定義すると迷惑メール扱いとなりますので、メール中継等を行い、 利用可能なアドレスをご利用ください)

・ここではChromeをHeadlessモードで動かすための、オプション設定を行っています。

・ここではログインするURLを定義します。

Alfrescoの場合、URLは

‘http://IPアドレス 又は ドメイン名:8080/share/page’となるので、

弊社では下記を定義しました。

・ここはそのままなのですが、ログインに使用する”ユーザ名” と “パスワード”を定義します。

・ここからは実際にログインを行います。

“login_username” 及び”login_password”は手間なのですが、実際の環境に合わせて設定願います。

(弊社Alfrescoの場合は、以下の設定になりました。)

・ここでログイン試行後の結果確認を行います。

“count()”ではログイン後に表示されるページ要素を入力します。

⇒弊社Alfrescoの場合、”<div class=”title”>My Activities</div>”という、ダッシュボードタイトルが画面上に存在するかをキーとして設定しています。

ログイン画面内にてエラーが生じた場合、この要素は表示されませんので、 このタイトル要素の存在有無を障害確認に用います。

そのためここは、ログイン時のみに表示される要素を確実に設定してください。

 

もしメール本文を変更する場合には、”MIMEText”の中身を変更ください。

・”expect”はそもそもログイン画面が開けないなどでエラーとなった場合に備え、 メッセージを変数に入れます。

 

・”finally”ではメール送信を定義します。 msg[‘Subject’] はメールタイトルになりますので、

任意の値に変更し、その他は以下のまま変更せずご利用ください。

 ●スクリプトの実行権限を付与します。

 

 ●スクリプトの自動実行を定義します。

コマンド:

vi /etc.crontab ※下記は5分ごとに監視を実行する場合の定義です。(こちらの値はお好みに変更願います。)

下記コマンドでcronの変更を反映します。

 

⇒設定完了です!!

 

ここまで設定が完了すると、

タイトル: 「Mail sending test.」から

正常な場合には、 This is the body of the message.

エラーの場合には、 This is the Error message

という内容で、監視メールが来るようになります!

 

細かいメッセージ等は環境に合わせて頂くことになりますが、

seleniumを使ってより良い監視を実現させましょう!

>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*