Paul Scherrer Institute, Switzerland Stefan Ritt The electronic logbook ELOG and its utilization for accelerator operations KIT Seminar, Jan. 30th, 2015 Agenda • Part 1 • Quick demo • Design principles of ELOG • Advanced features: Automatic entries, Checklists, Mirroring • Part 2 • ELOG @ PSI for accelerator operation Stefan Ritt KIT Seminar, Jan. 30th, 2015 2/23 A bit of history • MIDAS DAQ system developed in 1996• Originally for PIBETA experiment @ PSI • First system with web interface • Need for electronic logbook • Searchable • Easy to copy/distribute • Remote access • Birth of ELOG • First was integral part of MIDAS system • Standalone version in 2001 • 83 Releases 1.0.0 – 3.0.0 (current) (elog/doc/ChangeLog) Version 1.8.3, released August 8, 2001 -------------------------------------- Stefan Ritt Fixed problems occurring under Red Hat 7.1 modified mserver.c to run under xinetd put xinetd configuration info into INSTALL file added /Custom tree in ODB for mhttpd to display user-specific pages standalone elogd program included for offline logbook display added mail notification in elog in mhttpd KIT Seminar, Jan. 30th, 2015 3/23 Basic principles of ELOG • Web access Reachable from any computer with Web Browser Monolithic C(++) program • • Faster than interpreted languages Needs less memory, runs nicely on Raspberry PI Does not depend on Web servers No dependency of external libraries (except SSL and Kerberos) Simple to compile and install • • • • • • Recent extensions in JavaScript • “Designed by user” • • Only contains features that are needed (Most) needed features are contained • Configurable • • • Can be electronic logbook, discussion forum, bug tracker, … Huge number of configuration options Some will be covered in this seminar Stefan Ritt KIT Seminar, Jan. 30th, 2015 4/23 ELOG Database • Simple text database • • • • • Relational databases (mySQL) were not available or were “heavy” back in 2001 Database cannot get corrupt Database can be edited with ASCII editor (by “experts”) Many people use scripting tools to analyze or modify ELOG databases Attachments as files • Data storage with one file per day YYMMDDa.log • • Can make easy backups $ cp 14????a.log /backup Recent change with one $@MID@$: 1 Date: Thu Nov 08 18:37:57 2001 Author: Stefan Ritt subdirectory per year Type: Routine 2013/13*a.log 2014/14*a.log … Stefan Ritt Category: General Subject: Welcome Attachment: Encoding: ELCode ======================================== [B]Congratulations for installing ELOG sucessfully! [/B] This is a demo entry to ensure the elogd server is working correctly. Click [I]"New"[/I] to add new pages and [I]"Delete"[/I] to delete this page. KIT Seminar, Jan. 30th, 2015 5/23 Different “faces” Stefan Ritt KIT Seminar, Jan. 30th, 2015 6/23 Configuration Concepts • Configuration via single text file, editable through web browser • Total of 149 settings and 41 flags • Documented on one huge page: http://midas.psi.ch/elog/config.html Server options valid for all logbooks Logbook Attributes Flag Stefan Ritt [global] port = 8080 [demo] Theme = default Comment = General Linux Tips & Tricks Attributes = Author, Type, Category, Subject Options Type = Routine, Problem Fixed, Configuration, Other Options Category = General, Hardware, Software, Network, Other Required Attributes = Author, Type Quick filter = Date, Type Reverse sort = 1 . . . KIT Seminar, Jan. 30th, 2015 7/23 Attributes • Attributes are values common to all entries in a logbook, like “columns” in a relational database • Defined via Attributes = Author, Type, Category • Stored in header of text files • Attribute sets are extendable $@MID@$: 1 Date: Thu Nov 08 18:37:57 2001 Author: Stefan Ritt Type: Routine Category: General Subject: Welcome Attachment: Encoding: ELCode ======================================== [B]Congratulations for installing ELOG sucessfully! [/B] This is a demo entry to ensure the elogd server is working correctly. Click [I]"New"[/I] to add new pages and [I]"Delete"[/I] to delete this page. Stefan Ritt KIT Seminar, Jan. 30th, 2015 8/23 Conditional attributes • Settings can depend on the value of an attribute Attributes = PC Name, Operating System, Version Options Operating System = Linux{1}, Windows{2} {1} Options Version = 2.2, 2.4, 2.6 {2} Options Version = NT, XP, W7, W8 • Hide certain attributes on condition, different tooltips, logical or of conditions, … • “Merge” different logbooks into one Stefan Ritt KIT Seminar, Jan. 30th, 2015 9/23 Flags • Enable/Disable almost all features • Default presets for most dialog boxes • Select language (17 languages available) Stefan Ritt KIT Seminar, Jan. 30th, 2015 10/23 Email notifications • Email notifications for certain processes • • • • Stefan Ritt New entry, modified entry Email to registered user(s) or external email addresses Attributes have certain values (like new entry with system=DAQ & category=Error) Email can contain summary, full entry, with/without attachments KIT Seminar, Jan. 30th, 2015 11/23 Access control • Simple access control via read & write passwords (obsolete) • User accounts with central password database (XML) and optional guest access • Auto-logout, self register [with admin approval] • Kerberos & LDAP support <?xml version="1.0" encoding="ISO-8859-1"?> <!-- created by MXML on Wed Dec 17 14:52:42 2014 --> <list> <user> <name>stefan</name> <password encoding="SHA256">GbnPpEbx9tFFQ/iUW3mU8Cmi/a.JXVwdmVk74jFt56C</password> <full_name>Stefan Ritt</full_name> <email>stefan.ritt@psi.ch</email> <last_logout>Thu Oct 23 09:37:45 2014</last_logout> <last_activity>Thu Oct 23 11:43:28 2014</last_activity> <email_notify> <logbook>Online</logbook> <logbook>DAQ</logbook> </email_notify> </user> </list> Stefan Ritt KIT Seminar, Jan. 30th, 2015 12/23 Themes CSS = <file.css> /* default formatting */ body { margin:3px; color:black; background-color:white; font-family:verdana,tahoma,sans-serif; /* background-image:url(elog.gif); */ } /* standard link colors and decorations */ a:link { color:#0000FF; text-decoration:none } a:visited { color:#800080; text-decoration:none } a:hover { color:#0000FF; text-decoration:underline } a:active { color:#0000FF; text-decoration:underline } a:focus { color:#0000FF; text-decoration:underline } td { color:black; font-size:12px; } Stefan Ritt KIT Seminar, Jan. 30th, 2015 13/23 Mirroring • Keep two or more logbooks in sync • Synchronization works both ways • Implementation using MD5 hash values Logbook 1 Logbook 2 ID 3 MD5 ID 3 MD5 ID 2 MD5 ID 2 MD5 ID 1 MD5 ID 1 MD5 ID 4 MD5 ID 3 MD5 ID 3 MD5 ID 2 MD5 ID 2’ MD5 ID 1 MD5 ID 1 MD5 ID 4 MD5 ID 4 MD5 ID 3 MD5 ID 3 MD5 ID 2’ MD5 ID 2’ MD5 ID 1 MD5 ID 1 MD5 Stefan Ritt Mirror server = <URL-list> Mirror config = 0 | 1 Mirror cron = 0 3 * * * // every night at 3:00 KIT Seminar, Jan. 30th, 2015 14/23 “elog” utility • Command line utility to commit ELOG entries • Scriptable “cat text | elog –h … -l …” • Automatic entries e.g. accelerator status → next talk elog -h <hostname> [-p port] -l logbook -s [-v] [-w password] [-u username password] [-f <attachment>] -a <attribute>=<value> [-r <id>] [-q] [-e <id>] [-x] [-n 0|1|2] -m <textfile>] | <text> Stefan Ritt Host name of elog server Port number, default 80 Name of logbook Use SSL for communication For verbose output Write password defined on server User name and password Up to 50 attachments Up to 50 attributes Reply to existing message Quote original text on reply Edit existing message Suppress email notification Encoding: 0:ELcode,1:plain,2:HTML Entry body KIT Seminar, Jan. 30th, 2015 15/23 Shift Checklist • Completely custom HTML hand crafted forms as input forms for logbooks • Perfect for shift checks with tablet computers https://midas.psi.ch/elogs/Forum/66909 Stefan Ritt KIT Seminar, Jan. 30th, 2015 16/23 Check list table Stefan Ritt KIT Seminar, Jan. 30th, 2015 17/23 Search engine in Browser • Most browsers allow definition of custom search engines • Define ELOG as a search engine with custom search string http://midas.psi.ch/elogs/Forum/?subtext=%s Stefan Ritt KIT Seminar, Jan. 30th, 2015 18/23 CKEditor • Recent extension (Dario Milicic) allows Rich Editing, Drag & Drop of images and smartphone photo upload Stefan Ritt KIT Seminar, Jan. 30th, 2015 19/23 Installation • http://midas.psi.ch/elog/download.html • Public GIT repository “make” “sudo make install” “sudo /etc/init.d/elogd start” “launchctl” under OSX • • • • • • • • Source code TAR ball Windows Binaries Linux Binaries (RPS) Debian Package Stefan Ritt KIT Seminar, Jan. 30th, 2015 20/23 Personal experience with ELOG • Use since 2001 for three large experiments with ~30 logbooks • Reliable, easy to use • “monit” tool to restart crashed server (couple of times per year on public server) • In spite of vast usage (~10 labs, all LHC experiments) I get only ~few issues per month • Logbook size fine to ~few 100’000 entries, search can get slow Stefan Ritt KIT Seminar, Jan. 30th, 2015 21/23 In case of questions … Stefan Ritt KIT Seminar, Jan. 30th, 2015 22/23 ELOG for accelerator operation How to match existing functionality to accelerator operation needs? Calculated Fields Actions Bookmarks Forms Conditional Formatting Mirror Servers Email Structured Information Kerberos Access Rules Stefan Ritt Export elog Command → Andreas Lüdeke KIT Seminar, Jan. 30th, 2015 CSS Logbook Groups 23/23