Archive and statistics » History » Version 8

Janez Barbic, 12.12.2010 16:19

1 1 Aleksander Bešir
h1. Archive and statistics
2 1 Aleksander Bešir
3 6 Janez Barbic
WIP - trenutno se delam na dokumentu, ne se brat :)
4 6 Janez Barbic
5 2 Aleksander Bešir
{{toc}}
6 2 Aleksander Bešir
7 5 Janez Barbic
TBD - to be discussed
8 5 Janez Barbic
TODO - to do :)
9 5 Janez Barbic
Tole sem pustil zaenkrat not, da lahko hitro najdem stvari, ki jih moram se dopolnit oziroma jih moramo se predebatirat. V koncni verziji se bom teh kratic znebil in tudi tega komentarja v slovenscini :)
10 1 Aleksander Bešir
11 6 Janez Barbic
h2. 1 Basic concept
12 3 Janez Barbic
13 3 Janez Barbic
TODO Zakaj syslog
14 3 Janez Barbic
15 3 Janez Barbic
Eneraptor is designed in a way that it could communicate with any device regardless of its operating system. Syslog, system for logging program messages offers a quick and easy solutions for such communications, because it allows separation of the software that generates messages from the system that stores them and the software that reports and analyzes them. It could refer to syslog protocol (TODO described below), 
16 3 Janez Barbic
17 3 Janez Barbic
h3. 1.1 Hardware
18 1 Aleksander Bešir
19 5 Janez Barbic
p. We will be using syslog-ng (I will be referring to it as syslog from now on), which has a few advantages over conventional syslog. Syslog daemon will run on proxy server. TBD it will be listening on a certain port for incoming messages from client(s). Our main syslog client will run on FRI-SMS system.
20 1 Aleksander Bešir
21 5 Janez Barbic
Client mode operation:
22 5 Janez Barbic
23 1 Aleksander Bešir
!https://lusy.fri.uni-lj.si/redmine/attachments/11/client_server_syslog.png!
24 1 Aleksander Bešir
25 5 Janez Barbic
p. In client mode, syslog-ng collects the local logs generated by the host and forwards them through a network connection to the central syslog-ng server. Clients can also log the messages locally into files.
26 5 Janez Barbic
27 5 Janez Barbic
28 5 Janez Barbic
TODO more details on syslog-ng advantages
29 5 Janez Barbic
30 5 Janez Barbic
h3. 1.2 Syslog protocol overview
31 5 Janez Barbic
32 5 Janez Barbic
TBD TCP/IP vs UDP
33 5 Janez Barbic
Message structure
34 5 Janez Barbic
TBD How do we plan to send messages to our daemon, via client (not always possible) or do we generate them ourselves?
35 5 Janez Barbic
TBD Using logfiles vs logging into database
36 5 Janez Barbic
37 5 Janez Barbic
h3. 1.3 Development steps
38 5 Janez Barbic
39 5 Janez Barbic
# Installing and configuring Syslog-ng daemon on proxy
40 5 Janez Barbic
# Installing and configuring Syslog-ng client on FRI-SMS
41 5 Janez Barbic
# TBD Designing Statistical Data Analysis Software to work with data collected by syslog daemon
42 5 Janez Barbic
# TBD Implementing SDA software
43 1 Aleksander Bešir
# TBD Testing?
44 6 Janez Barbic
45 6 Janez Barbic
46 6 Janez Barbic
h2. 2 Installing and configuring syslog-ng daemon on proxy
47 7 Janez Barbic
48 7 Janez Barbic
p. Syslog-ng supports wide variety of Operating Systems so we aren't really restricted here. Since our proxy and FRI-SMS both run Linux 2.6 our obvious choce is syslog-ng for Linux.
49 1 Aleksander Bešir
h3. 2.1 syslog-ng daemon on proxy
50 7 Janez Barbic
Configuration file location:
51 7 Janez Barbic
/opt/syslog-ng/etc/syslog-ng.conf
52 7 Janez Barbic
53 8 Janez Barbic
Basic syslog configuration:
54 8 Janez Barbic
TODO add filters
55 7 Janez Barbic
<pre><code class="ruby">
56 7 Janez Barbic
@version: 3.2
57 7 Janez Barbic
#Default configuration file for syslog-ng.
58 7 Janez Barbic
#
59 7 Janez Barbic
# For a description of syslog-ng configuration file directives, please read
60 7 Janez Barbic
# the syslog-ng Administrator's guide at:
61 7 Janez Barbic
#
62 7 Janez Barbic
# http://www.balabit.com/dl/html/syslog-ng-admin-guide_en.html/bk01-toc.html
63 7 Janez Barbic
#
64 1 Aleksander Bešir
65 1 Aleksander Bešir
options {
66 8 Janez Barbic
   time_reap(30);
67 8 Janez Barbic
   mark_freq(10);
68 8 Janez Barbic
   keep_hostname(yes);
69 8 Janez Barbic
};
70 7 Janez Barbic
71 7 Janez Barbic
######
72 7 Janez Barbic
# sources
73 7 Janez Barbic
source s_local {
74 7 Janez Barbic
};
75 7 Janez Barbic
76 7 Janez Barbic
source s_net {
77 8 Janez Barbic
   tcp(ip("SERVER_ADDRESS") port(5140) keep-alive(yes)); 
78 7 Janez Barbic
};
79 7 Janez Barbic
80 7 Janez Barbic
######
81 7 Janez Barbic
# destinations
82 8 Janez Barbic
# should be able to point syslog to a database here
83 7 Janez Barbic
destination net_messages { file("/var/log/net_messages"); };
84 7 Janez Barbic
85 7 Janez Barbic
log {
86 7 Janez Barbic
source(s_net);
87 7 Janez Barbic
destination(net_messages);
88 7 Janez Barbic
};
89 7 Janez Barbic
</code></pre>
90 6 Janez Barbic
91 6 Janez Barbic
h3. 2.2 syslog-ng client on FRI-SMS