Ubuntu 14.04.1 LTS
rsyslog server: 10.0.7.77
python client: 10.0.2.122
[rsyslog server]
1.Install rsyslog with apt-get
sudo apt-get install -y rsyslog 2.edit /etc/rsyslog.conf ,uncomment this line
$ModLoad immark # provides --MARK-- message capability
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
I will custom my log format,so comment this line:
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template myFormat,"[%$NOW% %TIMESTAMP:8:15% %HOSTNAME%] %programname% %msg%\n" set "myFormat" for default tempalte
ps: You can find more format default attributes at http://www.rsyslog.com/doc/property_replacer.html
$ActionFileDefaultTemplate myFormat create my log file:
$template DynaFile, "/var/log/falls-%$YEAR%-%$MONTH%-%$DAY%.log"
:programname,contains,"falls" -?DynaFile first line define template named "DynaFile" path is /var/......
second line means if programname contains "falls" then the logs will be recorded in "DynaFile" path.
3.Edit /etc/default/rsyslog,like this:
RSYSLOGD_OPTIONS=" -r514 -m 0"4.restart rsyslog server
sudo service rsyslog restart check rsyslog network status:
sudo netstat -anpl | grep 514
If you can see 514 port for tcp and udp ,it's successful.
[client]
creat my test.py
<pre name="code" class="python">#!/usr/bin/env python
# encoding: utf-8
import logging
import logging.handlers
import random
def test():
my_logger = logging.getLogger("falls.com")
my_logger.setLevel(logging.DEBUG)
handler = logging.handlers.SysLogHandler(address = ('10.0.7.77',514))
f = logging.Formatter('falls[10.0.0.1]: %(message)s')
handler.setFormatter(f)
my_logger.addHandler(handler)
<span style="white-space:pre"> </span>## Produce different log every time with random number for testing.
i = random.randint(1,1000000)
#my_logger.debug('This is a test remote log! %d' % i)
my_logger.info('fuck: This is a test remote log! %d' % i)
if __name__ = '__main__':
<span style="white-space:pre"> </span>test()when run test.py,it write a log at rsyslog server:/var/log/falls-DATE.log , the content like this:
[2015-02-08 04:17:55 ip-10-0-2-122] falls fuck: This is a test remote log! 344963

本文详细介绍了如何在Ubuntu 14.04.1 LTS上安装并配置rsyslog服务器,包括安装rsyslog、修改配置文件以定制日志格式、创建日志文件目录和路径,并通过Python客户端将日志发送到rsyslog服务器。此外,还展示了如何通过Python代码生成日志并将其发送到rsyslog服务器,最后验证rsyslog服务器是否成功接收到日志。
6983

被折叠的 条评论
为什么被折叠?



