A Python utility for analyzing TeamSpeak 3 server logs.
Analyze multiple log files or an entire log folder. Stores info about all clients and respective connections and nicknames in a SQLite database for ease of use by other applications.
Can be used for extracting information like:
- Who has the most cumulative connection time on the server / Time spent by each user on server
- Longest connection time for each user
- First and last seen
- Most used nicknames
- Total number of connections
- Merge users with different identities
- and much more...
Generate useful/fun statistics like the ones you can find here for my server:
It can also 'merge' identities out of the box, this way you can combine stats for users that have multiple identities - as seen in the example (If you belive that everyone should backup their identities, and if they don't do it, it's their fault - you can ignore this feature :D )
Disclaimer: The aim of this project/repo is the log analyzer This repo does not include the web viewer. I'm still developing it, and currently it is not published. This means that you can only generate the DB, and build your own web application. Hopefully I will release mine.
Analyse VS Analyze: Look, English is not my main language, therefore I only found out that analise could be spelled with an s
or z
much after creating and publishing this project. I do not believe that one is better over another. If you cannot live with ts3LogAnalyzer with z
you can always alias it :P.
Python 3 only.
pip install ts3LogAnalyzer
Alternatively you can clone and setup using setuptools or simply call the file directly.
- Analyze a file:
$ ts3LogAnalyzer databse.db -a ts3server_2017-02-12__11_46_44.016222_1.log
- Analyze a folder:
$ ts3LogAnalyzer databse.db -a ts3server/logs
- Analyze a folder, make it mergeable and generate statistics and hide IP's:
$ ts3LogAnalyzer databse.db -a . -msi
- Be nice to the system when running:
$ nice -n 19 ts3LogAnalyzer db.db -a /path/ -msi
- Merge two clients:
$ ts3LogAnalyzer databse.db --merge 13 37
ts3LogAnalyzer.py
Usage:
ts3LogAnalyzer.py <database> -a <path> [--stats] [--no-ips] [--mergeable] [--debug] [--output-logging]
ts3LogAnalyzer.py <database> --merge <c1> <c2> [--debug] [--output-logging]
ts3LogAnalyzer.py <database> ([--stats] | [--no-ips]) [--debug] [--output-logging]
ts3LogAnalyzer.py -h | --help
ts3LogAnalyzer.py -v | --version
Options:
-a --analyze <path> Log file or folder to analyze
-s --stats Generate statistic fields for every client
-i --no-ips Remove ip's from the databse
-m --mergeable Make the clients mergeable
--output-logging Output logging from THIS program to ts3LogAnalyzer.log
--debug Output debug information
-h --help Show this screen
-v --version Show version
- Performance improvements #3
- Support for other DB's other than SQLite #5
- Python 2 compatibility
Feature requests and bugs: issues
Other discussion: TeamSpeak forum thread
GNU General Public License v3.0
Contact me at tofran.com.