溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

openstack如何使用rsyslog轉(zhuǎn)發(fā)日志

發(fā)布時間:2021-11-10 18:27:50 來源:億速云 閱讀:203 作者:柒染 欄目:云計算

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è)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(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)容。

AI