ホームページ  >  記事  >  バックエンド開発  >  Python+pandasでnginxのログを解析する例

Python+pandasでnginxのログを解析する例

不言
不言オリジナル
2018-04-28 15:37:262209ブラウズ

以下は Python+pandas を使用して nginx のログを分析する例です。非常に参考になるので、皆さんのお役に立てれば幸いです。一緒に見てみましょう

要件

nginxのアクセスログを分析することで、各インターフェイスの応答時間の最大、最小、平均、アクセス時間を取得できます。

実装原則

nginx ログの uriuriupstream_response_time フィールドを pandas データフレームに保存し、グループ化関数とデータ統計関数を通じて実装します。

実装

1. 準備


#创建日志目录,用于存放日志
mkdir /home/test/python/log/log
#创建文件,用于存放从nginx日志中提取的$uri $upstream_response_time字段
touch /home/test/python/log/log.txt
#安装相关模块
conda create -n science numpy scipy matplotlib pandas
#安装生成execl表格的相关模块
pip install xlwt


2. コードの実装


rree


3. 印刷されたフォームは次のとおりです:

ポイント

1. ログ ファイルが比較的大きい場合は、readlines() または readline() を使用しないでください。これは、すべてのログをメモリに読み込んでメモリがいっぱいになるためです。したがって、ここでは基本的にメモリを占有しない for line in fo 反復メソッドが使用されます。

2. nginx のログを読み取るには、pd.read_table(log_file, sep=' ', iterator=True) を使用できますが、ここで設定した sep は通常分割と一致しないため、最初に nginx を分割してから保存します。パンダ。

3. Pandas は、大きなファイルをチャンクで読み取り、異なるチャンク サイズを使用して読み取り、DataFrame に接続するために pandas.concat を呼び出すための IO ツールを提供します

関連する推奨事項: MySQL データを読み取り、挿入するための


python3 pandas



以上がPython+pandasでnginxのログを解析する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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