ホームページ  >  記事  >  バックエンド開発  >  Python でのモニタリングのヒント

Python でのモニタリングのヒント

王林
王林オリジナル
2023-06-10 08:40:531053ブラウズ

Python は、強力で習得しやすく、使いやすいプログラミング言語であり、データ サイエンスと機械学習の分野の標準ツールとなっています。クラウド コンピューティングの台頭により、Python のアプリケーション シナリオはますます広く普及しており、サーバー管理、ネットワーク監視、データ セキュリティなどの分野でよく使用されています。このようなシナリオでは、監視スキルが重要です。この記事ではPythonによる監視手法を以下の観点から紹介していきます。

ログ監視

ログは、システムの動作を記録するための重要なツールであり、問​​題のトラブルシューティングを行うための重要な基礎となります。 Python の組み込みログ モジュールは、さまざまなレベルでのログの設定、ファイルやデータベースへのログの書き込み、特定の時間やシナリオでのアラームのトリガーなど、複雑なログ管理機能の実装に役立ちます。

たとえば、次のコードを使用して、単純なログ プログラムを実装できます。

import logging

logging.basicConfig(filename='example.log', level=logging.DEBUG)

logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

このプログラムを実行すると、example.log という名前のファイルが現在のディレクトリに生成されます。 . ファイルを作成し、そこに 5 レベルのログ情報を書き込みます。 logging.basicConfig のパラメータを変更することで、ログの形式、レベル、出力先をカスタマイズできます。

ネットワーク監視

ネットワークは現代のコンピューターの中核であり、最も脆弱な部分です。 Python のソケット モジュールは、ネットワーク上でのデータの送受信、ホスト情報の検索、ネットワーク トラフィックの制御などの機能の実装に役立ちます。

ネットワーク ポート スキャンを例に挙げると、次のコードを使用して、ターゲット ホストのすべての開いているポートをスキャンできます。

import socket

host = '127.0.0.1'
ports = range(1, 1025)

for port in ports:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        s.connect((host, port))
        print(f"Port {port} is open")
    except:
        pass
    s.close()

このプログラムは、socket.socket を使用して、 TCP/IP ソケットを作成し、ターゲット ホストの各ポートへの接続を試行します。接続が成功した場合は、ポートが開いていることを意味し、結果リストに追加できます。

プロセス監視

サーバー管理とセキュリティの分野では、プロセス監視は重要なタスクです。 Python の os モジュールと psutil モジュールは、システム プロセスへのアクセスと制御インターフェイスを提供し、プロセス情報の取得、変更、終了に役立ちます。

プロセス ステータス クエリを例にとると、次のコードを使用して、指定された PID プロセスのステータスを取得できます。

import psutil

pid = 1234
p = psutil.Process(pid)
print(p.name())
print(p.status())
print(p.cpu_percent())

このプログラムは、psutil.Process を使用して、指定した PID のプロセスオブジェクトを取得し、そのプロセス名、ステータス、CPU 使用率などの情報を出力します。

行動監視

データ分析と機械学習の分野において、行動監視は、ユーザーの行動、異常な行動、不正行為などを発見し、予測するのに役立つ重要なタスクです。 Python の pandas モジュールと scikit-learn モジュールは、データ収集、特徴抽出、モデル トレーニング、予測に役立つ豊富なデータ処理ツールと機械学習ツールを提供します。

異常検出を例に挙げると、次のコードを使用してデータ セット内の異常なサンプルを特定できます。

import pandas as pd
from sklearn.ensemble import IsolationForest

data = pd.read_csv('dataset.csv')
X = data.drop('label', axis=1)
clf = IsolationForest(random_state=42)
clf.fit(X)
pred = clf.predict(X)
print(sum(pred == -1))

このプログラムは、pd.read_csv を使用して、 CSV 形式でデータセットを作成し、ラベル列を特徴から除外します。その後、IsolationForest を使用して異常検出モデルをトレーニングし、データセット全体に対して予測を行います。最後に、すべての異常サンプルの数を出力します。

概要

Python は優れたプログラミング ツールとして、監視、サーバー管理、セキュリティ、データ サイエンス、機械学習などの分野で広く使用されています。この記事では、ログ監視、ネットワーク監視、プロセス監視、動作監視など、Python のさまざまな監視手法を紹介します。読者の皆様には、本記事の紹介を通じてこれらの手法の基本原理と実装方法を理解し、実際の業務に応用してプログラミングレベルの向上と作業効率の向上に役立てていただければ幸いです。

以上がPython でのモニタリングのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。