Watching Terminals for Fun and Profit with YottaDB and Rust
In many industries logging of interactive shells on production systems is a need; but how can we do it efficiently, and without the risk of losing data?
Charles works at YottaDB, a free/open source database startup with a rich heritage of unique database designs, as a technology guru; all to say, he spends his days writing code, working with new technology, and performing minor feats of software black magic. Prior to YottaDB, Charles spent a great deal of time studying the complexity of software engineering at Rensselaer Polytechnic Institute, with a particular interest in gaining insights to the impact software complexity has on education and contributions diversity.
YottaDB (http://yottadb.com/) is a high-performance NoSQL database for storing data in hierarchical key-value fashion. This lends itself well to storing, among other things, time-series data, such as logs and metrics. In this tutorial, we will construct a tool to monitor interactive terminals and log the sessions to a central database which is then replicated off of the host, so that it is available for security auditing should something go wrong. On demand, a user can replay a session, complete with typing delays and displaying of text-editors or other full "terminal" applications.
Time permitting, we will install this tool on a virtual machine and demonstrate the replication.
In addition to YottaDB, we will use Rust (https://www.rust-lang.org/), a langauge designed for systems programming. Basic knowledge of Rust is required, but we will not be using advance features of the language. Knowledge of Linux is also required, but there will be a refresher prior to the coding session.
- 1 h
- LinuxFest Northwest 2019