| 12 |  | # $Author$ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 13 |  | # $Id$ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 14 |  | # | 
 
 
 
 
 
 
 
 
 
 
 | 15 | < | # http://www.i-scream.org.uk/ | 
 
 
 
 
 
 
 
 
 | 15 | > | # http://www.i-scream.org/ | 
 
 
 
 
 
 
 
 
 
 
 | 16 |  | # | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 17 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 18 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 53 |  | # Any hosts not specified by now have the default | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 54 |  | # config as given in this file. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 55 |  |  | 
 
 
 
 
 
 
 
 
 | 56 | – | # Another component of the system is the mySQL | 
 
 
 
 
 
 
 
 
 | 57 | – | # database part of the server call the DBInterface. | 
 
 
 
 
 
 
 
 
 | 58 | – | # This has it's own config so the passwords for the | 
 
 
 
 
 
 
 
 
 | 59 | – | # mySQL database can be kept seperate. | 
 
 
 
 
 
 
 
 
 | 60 | – | #config.mySQL=mySQL.conf | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 56 |  |  | 
 
 
 
 
 
 
 
 
 | 62 | – |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 57 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 58 |  | #### Misc system-wide configuration | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 59 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 120 |  | # And the names of the plugins to be loaded. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 121 |  | Filter.Plugins=TypeChecker;EnforceEssentialData;SourceChecker | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 122 |  |  | 
 
 
 
 
 
 
 
 
 | 129 | – | # The special filter known as the "Root Filter" needs | 
 
 
 
 
 
 
 
 
 | 130 | – | # a name within the system. | 
 
 
 
 
 
 
 
 
 | 131 | – | RootFilter.name=root | 
 
 
 
 
 
 
 
 
 | 132 | – |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 123 |  | # Every Filter, except the root, needs a parent to | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 124 |  | # send their data to. This is usually the root filter, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 125 |  | # although in more complex setups it might be another | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 151 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 152 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 153 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 | 154 | < | #### Root filter interfaces configuration | 
 
 
 
 
 
 
 
 
 | 154 | > | #### Root filter configuration | 
 
 
 
 
 
 
 
 
 
 
 | 155 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 156 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 157 | < | # The Root FIlter can send data to various upstream | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 158 | < | # data processors. There are two of these at present | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 159 | < | # in the server - the DBInterface and the ClientInterface. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 170 | < | # Their component names are given here as defined below. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 171 | < | # (the DBInterface is switched off - commented - by default) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 172 | < | #RootFilter.dbInterfaceName=database | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 173 | < | RootFilter.realtimeInterfaceName=realtimeclients | 
 
 
 
 
 
 
 
 
 | 157 | > | # The special filter known as the "Root Filter" needs | 
 
 
 
 
 | 158 | > | # a name within the system. | 
 
 
 
 
 | 159 | > | RootFilter.name=root | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 160 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 161 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 162 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 166 |  | # The client interface listens for connections from clients | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 167 |  | # on a TCP port. It is specified here. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 168 |  | ClientInterface.listenPort=4510 | 
 
 
 
 
 
 
 
 
 | 183 | – | # The component name for the Client Interface. This should | 
 
 
 
 
 
 
 
 
 | 184 | – | # match the name specified to the Root Filter above. | 
 
 
 
 
 
 
 
 
 | 185 | – | ClientInterface.name=realtimeclients | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 169 |  |  | 
 
 
 
 
 
 
 
 | 170 | + | # The client interface needs to connect to another one to | 
 
 
 
 
 
 
 
 | 171 | + | # receive data. There is a special client interface in the | 
 
 
 
 
 
 
 
 | 172 | + | # root filter which is the top of the tree. | 
 
 
 
 
 
 
 
 | 173 | + | ClientInterface.parent=root | 
 
 
 
 
 
 
 
 | 174 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 175 |  | # The Client Interface has two channels, control and data. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 176 |  | # Each of these can have an ACL for allowing connections. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 177 |  | # As per previous examples in this configuration file they | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 182 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 183 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 184 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 | 185 | < | #### Database interface configuration | 
 
 
 
 
 
 
 
 
 | 185 | > | #### LocalClient Configuration | 
 
 
 
 
 
 
 
 
 
 
 | 186 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 187 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 188 | < | # The name for the Database Interface. This should match | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 189 | < | # the name given to the Root Filter. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 202 | < | DBInterface.name=database | 
 
 
 
 
 
 
 
 
 | 188 | > | # The parent for the Local Client | 
 
 
 
 
 | 189 | > | Client.parent=clientinterface1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 190 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 191 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 192 |  | ############################################################ | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 221 |  | # And which ones should be loaded. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 222 |  | Monitor.Plugins=CPU;Load;Process;Disk;Memory;Swap;Services;\ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 223 |  | Heartbeat;Queue;UserCount;WebFeeder;DiskIO;\ | 
 
 
 
 
 
 
 
 
 
 
 | 224 | < | NetIO;Paging; | 
 
 
 
 
 
 
 
 
 | 224 | > | NetIO;Paging;MailQ; | 
 
 
 
 
 
 
 
 
 
 
 | 225 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 226 |  | # Alerts timeout after a given time in seconds and go up | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 227 |  | # to the next level. These can be overridden for monitors | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 231 |  | Monitor.alertTimeout.CAUTION=1800 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 232 |  | Monitor.alertTimeout.CRITICAL=3600 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 233 |  |  | 
 
 
 
 
 
 
 
 | 234 | + | # Is monitoring enabled? (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 235 | + | Monitor.enable=1 | 
 
 
 
 
 
 
 
 | 236 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 237 |  | ## Threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 238 |  | # | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 239 |  | # Here we specify the threshold for each monitor. When | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 245 |  | # CPU monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 246 |  | Monitor.CPU.threshold.LOWER=90 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 247 |  | Monitor.CPU.threshold.UPPER=95 | 
 
 
 
 
 
 
 
 | 248 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 249 | + | Monitor.CPU.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 250 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 251 |  | # Load monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 252 |  | Monitor.Load.threshold.LOWER=10.0 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 253 |  | Monitor.Load.threshold.UPPER=20.0 | 
 
 
 
 
 
 
 
 | 254 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 255 | + | Monitor.Load.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 256 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 257 |  | # Paging monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 258 |  | Monitor.Paging.threshold.LOWER=1000 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 259 |  | Monitor.Paging.threshold.UPPER=5000 | 
 
 
 
 
 
 
 
 | 260 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 261 | + | Monitor.Paging.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 262 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 263 |  | # Process Count threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 264 |  | Monitor.Process.threshold.LOWER=500 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 265 |  | Monitor.Process.threshold.UPPER=1000 | 
 
 
 
 
 
 
 
 | 266 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 267 | + | Monitor.Process.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 268 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 269 |  | # Memory monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 270 |  | Monitor.Memory.threshold.LOWER=80 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 272 |  | # Whether to include 'cache' in the 'free' value | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 273 |  | # (1 is true, anything else is false) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 274 |  | Monitor.Memory.useCacheAsFree=1 | 
 
 
 
 
 
 
 
 | 275 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 276 | + | Monitor.Memory.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 277 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 278 |  | # Swap monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 279 |  | Monitor.Swap.threshold.LOWER=80 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 280 |  | Monitor.Swap.threshold.UPPER=90 | 
 
 
 
 
 
 
 
 | 281 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 282 | + | Monitor.Swap.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 283 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 284 |  | # UserCount monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 285 |  | Monitor.UserCount.threshold.LOWER=100 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 286 |  | Monitor.UserCount.threshold.UPPER=200 | 
 
 
 
 
 
 
 
 | 287 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 288 | + | Monitor.UserCount.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 289 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 290 |  | # Disk monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 291 |  | Monitor.Disk.threshold.LOWER=90 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 297 |  | # and VALUE is an absolute value of space free | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 298 |  | Monitor.Disk.thresholdMeasure=PERCENTAGE | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 299 |  | Monitor.DiskInode.thresholdMeasure=PERCENTAGE | 
 
 
 
 
 
 
 
 | 300 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 301 | + | Monitor.Disk.enable=1 | 
 
 
 
 
 
 
 
 | 302 | + | Monitor.DiskInode.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 303 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 304 |  | # DiskIO monitor threshold values (in bytes) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 305 |  | Monitor.DiskIO.rbytes.threshold.LOWER=10000000 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 306 |  | Monitor.DiskIO.rbytes.threshold.UPPER=50000000 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 307 |  | Monitor.DiskIO.wbytes.threshold.LOWER=10000000 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 308 |  | Monitor.DiskIO.wbytes.threshold.UPPER=50000000 | 
 
 
 
 
 
 
 
 | 309 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 310 | + | Monitor.DiskIO.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 311 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 312 |  | # NetIO monitor threshold values (in bytes) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 313 |  | Monitor.NetIO.rxbytes.threshold.LOWER=10000000 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 314 |  | Monitor.NetIO.rxbytes.threshold.UPPER=50000000 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 315 |  | Monitor.NetIO.txbytes.threshold.LOWER=10000000 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 316 |  | Monitor.NetIO.txbytes.threshold.UPPER=50000000 | 
 
 
 
 
 
 
 
 | 317 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 318 | + | Monitor.NetIO.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 319 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 320 |  | # Queue monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 321 |  | Monitor.Queue.threshold.LOWER=50 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 324 |  | # where PERCENTAGE is a percentage of the queue in use | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 325 |  | # and VALUE is an absolute value of free space | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 326 |  | Monitor.Queue.thresholdMeasure=PERCENTAGE | 
 
 
 
 
 
 
 
 | 327 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 328 | + | Monitor.Queue.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 329 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 330 |  | # Services monitor threshold values | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 331 |  | # | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 352 |  | # this ensures we notice hosts that aren't running, not | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 353 |  | # just those that have gone down recently. | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 354 |  | #Monitor.Heartbeat.initialHosts=importantserver.example.com;myserver.example.com | 
 
 
 
 
 
 
 
 | 355 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 356 | + | Monitor.Heartbeat.enable=1 | 
 
 
 
 
 
 
 
 | 357 | + |  | 
 
 
 
 
 
 
 
 | 358 | + | # MailQ monitor threshold values | 
 
 
 
 
 
 
 
 | 359 | + | Monitor.MailQ.size.threshold.LOWER=100 | 
 
 
 
 
 
 
 
 | 360 | + | Monitor.MailQ.size.threshold.UPPER=1000 | 
 
 
 
 
 
 
 
 | 361 | + | # enable this monitor (comment or set to 0 to disable) | 
 
 
 
 
 
 
 
 | 362 | + | Monitor.MailQ.enable=1 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 363 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 364 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 365 |  | ############################################################ |