A lightweight, modular log processor with flow-based configuration.
- Flow-based log processing model
- Dynamic component loading
- Support for various input sources (Unix socket, file, flow chaining)
- Multiple parser types (RFC 3164, regex, passthrough)
- Flexible output options (file, TCP, memory for flow chaining)
- JSON-formatted logs
- Systemd service integration
- Clean, modern design without legacy syslog terminology
- Python 3.8 or higher
- pip3
- git
- Clone the repository:
git clone https://github.com/pysyslog/pysyslog-lfc.git
cd pysyslog-lfc
- Run the installation script:
sudo ./install.sh
- Clone the repository:
git clone https://github.com/pysyslog/pysyslog-lfc.git
cd pysyslog-lfc
- Run the installation script as administrator:
install.bat
- Clone the repository:
git clone https://github.com/pyyslog/pysyslog-lfc.git
cd pysyslog-lfc
- Create a virtual environment:
python3 -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
- Install dependencies:
pip install -r requirements.txt
- Install in development mode:
pip install -e .
For detailed configuration documentation, see:
Start PySyslog LFC:
# Linux/macOS
sudo pysyslog
# Windows
pysyslog
sudo systemctl start pysyslog
sudo systemctl stop pysyslog
sudo systemctl restart pysyslog
sudo systemctl status pysyslog
sudo launchctl start com.pysyslog
sudo launchctl stop com.pysyslog
sudo launchctl unload /Library/LaunchDaemons/com.pysyslog.plist
sudo launchctl load /Library/LaunchDaemons/com.pysyslog.plist
net start pysyslog
net stop pysyslog
sudo journalctl -u pysyslog -f
sudo log show --predicate 'process == "pysyslog"' --last 5m
Get-EventLog -LogName Application -Source pysyslog
pysyslog-lfc/
├── bin/ # Executable scripts
├── docs/ # Documentation
│ └── configuration/ # Configuration docs
├── etc/ # Configuration files
│ ├── pysyslog/
│ │ ├── main.ini
│ │ └── conf.d/
│ ├── systemd/ # Linux service files
│ ├── launchd/ # macOS service files
│ └── windows/ # Windows service files
├── lib/ # Python package
│ └── pysyslog/
│ ├── __init__.py
│ ├── main.py
│ ├── config.py
│ ├── flow.py
│ ├── components.py
│ ├── inputs/ # Input components
| ├── filters/ # Filter components
│ ├── parsers/ # Parser components
│ └── outputs/ # Output components
├── install.sh # Linux/macOS installation script
├── install.bat # Windows installation script
├── requirements.txt # Python dependencies
└── setup.py # Python package setup
- Create a new component file in the appropriate directory:
inputs/
for input componentsfilters/
for filter componentsparsers/
for parser componentsoutputs/
for output components
- Implement the required interface
- Add the component to the
components
list inmain.ini
MIT License - see LICENSE file for details.