您好,登錄后才能下訂單哦!
openstack如何使用rsyslog轉(zhuǎn)發(fā)日志,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
系統(tǒng):ubuntu14.04
openstack版本: juno
一,在nova中啟用rsyslog
1. 修改 /etc/nova/nova.conf
[DEFAULT] use_syslog = True syslog_log_facility = LOG_LOCAL0
2. 修改nova代碼。
2.1首先確認(rèn)nova代碼的位置
python -c 'import nova;print nova.__path__' ['/usr/lib/python2.7/dist-packages/nova']
2.2進(jìn)入nova目錄
cd /usr/lib/python2.7/dist-packages/nova
2.3修改代碼
vim openstack/common/log.py
2.3.1 搜索"use-syslog-rfc-format"關(guān)鍵字,將配置中的default=False改為True,啟用rfc格式的日志,如果不啟用的話,不會把發(fā)送日志的程序名打印出來,該配置在配置文件中修改無效,所以直接改代碼中的默認(rèn)值。修改后如下:
cfg.BoolOpt('use-syslog-rfc-format', # TODO(bogdando) remove or use True after existing # syslog format deprecation in J default=True, help='(Optional) Enables or disables syslog rfc5424 format ' 'for logging. If enabled, prefixes the MSG part of the ' 'syslog message with APP-NAME (RFC5424). The ' 'format without the APP-NAME is deprecated in I, ' 'and will be removed in J.'),
2.3.2 搜索“if CONF.use_syslog”關(guān)鍵字,往下幾行。
(1)將syslog = RFCSysLogHandler(facility=facility)改為syslog = RFCSysLogHandler(address='/dev/log',facility=facility)
(2)將syslog = logging.handlers.SysLogHandler(facility=facility)改為syslog = logging.handlers.SysLogHandler(address='/dev/log',facility=facility)
最終結(jié)果如下:
if CONF.use_syslog: try: facility = _find_facility_from_conf() # TODO(bogdando) use the format provided by RFCSysLogHandler # after existing syslog format deprecation in J if CONF.use_syslog_rfc_format: syslog = RFCSysLogHandler(address='/dev/log',facility=facility) else: syslog = logging.handlers.SysLogHandler(address='/dev/log',facility=facility) #syslog = logging.handlers.SysLogHandler(facility=facility) log_root.addHandler(syslog) except socket.error: log_root.error('Unable to add syslog handler. Verify that syslog' 'is running.')
二, 配置rsyslog
1. 新增rsyslog配置。rsyslog在ubuntu14.04中已經(jīng)安裝。
#新增配置文件 echo 'local0.* @@192.168.100.100:514' > /etc/rsyslog.d/60-nova.conf
效果是將本地local0.*的日志轉(zhuǎn)發(fā)到遠(yuǎn)程的192.168.100.100:514。
local0對應(yīng)nova.conf中的LOG_LOCAL0,后面的.*表示轉(zhuǎn)發(fā)所有級別的日志,如果只想傳送錯入日志,可以改成local0.error,最后的@@192.168.100.100:514表示將本地的rsyslog轉(zhuǎn)發(fā)到遠(yuǎn)程日志服務(wù)器。具體參考rsyslog官方文檔。
local0.* @@192.168.100.100:514
2, 重啟服務(wù)器
service rsyslog restart service nova-compute restart
3. 驗(yàn)證rsyslog有沒有配置成功。在shell中執(zhí)行如下命令,正常的話結(jié)果會在192.168.100.100顯示出來。
logger -p local0.debug "test rsyslog"
三, 總結(jié)
整個日志的流程是(1)nova發(fā)送日志給本地的rsyslog服務(wù)器。(2)本地的rsyslog接收日志,并轉(zhuǎn)發(fā)到遠(yuǎn)程的日志服務(wù)器192.168.100.100。(3)遠(yuǎn)程的日志服務(wù)器可以使rsyslog,也可以是其他的日志服務(wù)器如graylog,記得打開遠(yuǎn)程日志服務(wù)器的tcp接收端口。
openstack其他服務(wù)的配置也是類似的,唯一的區(qū)別是定位代碼的位置,如過要修改cinder的話,可以這樣確定代碼位置:
python -c 'import cinder;print cinder.__path__'
修改openstack或rsyslog配置后記得重啟服務(wù)。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。