# # @copyright Copyright (c) 2024, Pietro Marini (pmarini@rcasys.com) # # @license GNU AGPL version 3 or any later version # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # import pandas as pd from datetime import datetime import json from functions import get_norm_user_agent dt = datetime.now().strftime("%Y%m%d") df = pd.read_csv( "/var/log/apache2/archive/nextcloud-access-csv.log-%s" % dt, header=None, names=["timestamp","user_agent"], parse_dates=["timestamp"] ) df.fillna("not-found",inplace=True) df["norm_user_agent"] = df.user_agent.apply(get_norm_user_agent) df_agg = df.value_counts("norm_user_agent") json.dump( df_agg.to_dict(), open("/var/lib/zabbix/output/apache2_user_agent_metrics.json","w") )