3 # Configures the rsyslog daemon.
7 from ovirtnode
.ovirtfunctions
import *
9 RSYSLOG_FILE
="/etc/rsyslog.conf"
11 RSYSLOG_CONFIG_TEMPLATE
= """
12 #ovirt rsyslog config file
15 $ModLoad imuxsock.so # provides support for local system logging (e.g. via logger command)
16 $ModLoad imklog.so # provides kernel logging support (previously done by rklogd)
18 #### GLOBAL DIRECTIVES ####
19 # Use default timestamp format
20 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
23 # Log anything (except mail) of level info or higher.
24 # Don't log private authentication messages!
25 *.info;mail.none;authpriv.none;cron.none /var/log/messages
27 # The authpriv file has restricted access.
28 authpriv.* /var/log/secure
30 # Log all the mail messages in one place.
31 mail.* -/var/log/maillog
36 # Everybody gets emergency messages
39 # Save news errors of level crit and higher in a special file.
40 uucp,news.crit /var/log/spooler
42 # Save boot messages also to boot.log
43 local7.* /var/log/boot.log
45 $WorkDirectory /var/spool/rsyslog
46 $ActionQueueFileName ovirtNode
47 $ActionQueueMaxDiskSpace 10m
48 $ActionQueueSaveOnShutdown on
49 $ActionQueueType LinkedList
50 $ActionResumeRetryCount -1
51 %(disable)s*.* %(delim)s%(server)s:%(port)s
55 def ovirt_rsyslog(server
, port
, protocol
):
65 if is_valid_ipv6(server
):
66 server
= "[" + server
+ "]"
74 rsyslog_config_out
= RSYSLOG_CONFIG_TEMPLATE
% rsyslog_dict
75 rsyslog_config
= open(RSYSLOG_FILE
, "w")
76 rsyslog_config
.write(rsyslog_config_out
)
77 rsyslog_config
.close()
78 os
.system("/sbin/service rsyslog restart &> /dev/null")
79 logger
.info("Syslog Configuration Updated")
82 def ovirt_netconsole(server
, port
):
83 augtool("set","/files/etc/sysconfig/netconsole/SYSLOGADDR", server
)
84 augtool("set","/files/etc/sysconfig/netconsole/SYSLOGPORT", port
)
85 os
.system("/sbin/service netconsole restart &> /dev/null")
86 if ovirt_store_config("/etc/sysconfig/netconsole"):
87 logger
.info("Netconsole Configuration Updated")
91 def set_logrotate_size(size
):
93 augtool("set", "/files/etc/logrotate.d/ovirt-node/rule/size", size
)
94 ovirt_store_config("/etc/logrotate.d/ovirt-node")
99 def get_rsyslog_config():
100 rsyslog_config
= open(RSYSLOG_FILE
)
101 for line
in rsyslog_config
:
103 #strip excess details
104 line
= line
.replace("*.* ", "")
105 line
= line
.replace("@","")
107 server
, port
= line
.split(":")
108 if not server
.startswith("#"):
109 return (server
,port
.strip())
113 ip
, port
= line
.split("]")
114 server
= ip
.replace("[","")
115 port
= port
.replace(":","")
116 if not server
.startswith("#"):
117 return (server
,port
.strip())
119 logger
.error("rsyslog config parsing failed " + line
)
125 if not OVIRT_VARS
.has_key("OVIRT_SYSLOG_SERVER") or not OVIRT_VARS
.has_key("OVIRT_SYSLOG_PORT"):
126 logger
.info("Attempting to locate remote syslog server...")
128 host
, port
= find_srv("syslog", "udp")
131 if not host
is "" and not port
is "":
132 logger
.info("Found! Using syslog server " + host
+ ":" + port
)
133 ovirt_rsyslog(host
, port
, "udp")
136 logger
.warn("Syslog server not found!")
139 logger
.info("Using default syslog server " + OVIRT_VARS
["OVIRT_SYSLOG_SERVER"] + ":" + OVIRT_VARS
["OVIRT_SYSLOG_PORT"] + ".")
140 ovirt_rsyslog(OVIRT_VARS
["OVIRT_SYSLOG_SERVER"], OVIRT_VARS
["OVIRT_SYSLOG_PORT"], "udp")
143 def netconsole_auto():
146 if not OVIRT_VARS
.has_key("OVIRT_NETCONSOLE_SERVER") or not OVIRT_VARS
.has_key("OVIRT_NETCONSOLE_PORT"):
147 logger
.info("Attempting to locate remote netconsole server...")
149 host
, port
= find_srv("netconsole", "udp")
152 if not host
is "" and not port
is "":
153 logger
.info("Found! Using netconsole server " + host
+ ":" + port
)
154 ovirt_netconsole(host
, port
)
157 logger
.warn("Netconsole server not found!")
160 logger
.info("Using default netconsole server " + OVIRT_VARS
["OVIRT_NETCONSOLE_SERVER"] + ":" + OVIRT_VARS
["OVIRT_NETCONSOLE_PORT"] + ".")
161 ovirt_netconsole(OVIRT_VARS
["OVIRT_NETCONSOLE_SERVER"], OVIRT_VARS
["OVIRT_NETCONSOLE_PORT"])
167 logger
.info("Syslog Configuration Completed")
169 logger
.warn("Syslog Configuration Failed")
172 logger
.info("Syslog Configuration Completed")
174 logger
.warn("Netconsole Configuration Failed")