サーバー使用履歴記録ツール「UsageRecorder」の紹介
はじめに
こんにちは、omi-otsukeです。
今回はサーバー使用履歴を簡単に記録できるデスクトップアプリケーション「UsageRecorder」を自作したので、その紹介をしたいと思います。
UsageRecorderとは?
UsageRecorder はサーバーの使用開始・終了時刻や利用者情報、使用目的などをGUIで入力し、Excelファイルに記録できるPython製のツールです。
複数人でサーバーを共用する現場で使用履歴の管理が求められる環境で役立ちます。
また記録後にリモートデスクトップなどの実行ファイルを自動で立ち上げることができ、記録から実作業への移行がシームレスに行えるよう設計されています。
主な特徴
-
直感的なGUI入力
wxPython製のGUIで、誰でも簡単に使用履歴を入力できます。 -
バリデーション機能
必須項目の未入力や、サーバー選択漏れなどを自動でチェックし、エラー時は分かりやすく通知します。 -
Excelファイルへの自動記録
入力内容は指定したExcelファイルに自動で追記され、履歴管理が容易です。 -
柔軟な設定
TOML形式の設定ファイルでサーバー名や使用目的の選択肢、記録終了後に実行するファイルなどを自由にカスタマイズできます。
こんな方におすすめ
- サーバー使用履歴をExcelで管理したい
- 利用者ごとの記録を簡単に残したい
- 入力ミスや漏れを防ぎたい
出力先Excelファイルのイメージ
出力先Excelファイルのイメージ
使い方
-
下記リンクから実行に必要なファイル一式をダウンロードします。
UsageRecorder (zip) -
ダウンロードしたzipファイルを展開し、展開したフォルダーを好きな場所に移動します。必要に応じてショートカットを作成し、デスクトップなどよく使用するディレクトリに配置します。
-
conf/system_conf.toml
とconf/user_data.toml
を環境に合わせて編集します(編集例については後述の「設定ファイル例」を参照)。 -
実行ファイル
UsageRecorder.exe
またはそのショートカットを実行します。 -
入力画面で使用開始時の情報を入力し、「OK」ボタンで記録します。
使用開始時の画面イメージ -
UsageRecorder.exe
が終了した後、設定ファイルで指定した実行ファイルが開くので、対象のサーバーを使用して実作業に取り掛かりましょう。 -
サーバーの使用が終了したら、再度実行ファイル
UsageRecorder.exe
またはそのショートカットを実行します。 -
入力画面で使用終了時の情報を入力し、「OK」ボタンで記録します。この時、使用開始時に入力した情報を上書きして修正することができます。
使用終了時の画面イメージ
設定ファイル例
conf/system_conf.toml
出力先Excelファイルの情報やGUIに表示させる選択肢をカスタマイズできます。
具体的には以下の通りです。
- output_file_path: 出力先Excelファイルのパス
- sheet_name: 出力先Excelシート名
- base_row: Excelのベース行 (見出し行の次の行番号)
- log_file_path: ログファイルのパス
- purpose_choices: 画面に表示させる使用目的のリスト
- destination_names: 画面に表示させる接続先サーバー名のリスト
- application: 起動するアプリケーションのパス
- arguments: アプリケーションに渡す引数のリスト (下記ヒントを参照)
output_file_path = "../output/usage_records.xlsx"
sheet_name = "Sheet1"
base_row = 4
log_file_path = "log/error.log"
purpose_choices = ["サーバー監視", "リリース", "設定変更"]
destination_names = ["Server A", "Server B", "Server C"]
application = 'C:\WINDOWS\system32\mstsc.exe'
arguments = ["mstsc", 'C:\Users\your-name\Desktop\example.rdp']
conf/user_data.toml
このファイルはユーザーがよく入力する内容を指定します。
そうすることでGUI初期表示時、指定した内容をあらかじめ入力された状態にしておくことができます。
- user_name: 利用者名
- connection_account: 接続アカウント
- use_purpose: 使用目的
- server_names: 接続先サーバー名 (リスト形式)
- remarks: 備考
user_name = "山田太郎"
connection_account = "yamada"
use_purpose = "サーバー監視"
server_names = ["Server A", "Server C"]
remarks = "日次定例作業"
おわりに
UsageRecorderは現場で面倒に思っていたサーバー使用履歴の記録作業を効率化させるために作成したツールです。
今のところ私個人が最低限欲しいと思った機能だけを実装している状態なので、ぜひ一度お使いいただき、フィードバックやご要望をお寄せいただけますと幸いです。
Discussion