odoo與Sentry的結(jié)合仅乓。

  • Sentry:is a realtime event logging and aggregation platform. At its core it specializes in monitoring errors and extracting all the information needed to do a proper post-mortem without any of the hassle of the standard user feedback loop.
    Sentry在自動化運維中十分常用。它是一個實時事件日志記錄和匯集的平臺扛芽。它能夠?qū)Τ绦蜻\行中產(chǎn)生的錯誤信息進(jìn)行抓取尉辑。通過email來告知用戶。
  • 在Odoo的實施生產(chǎn)中鸭蛙。往往會有一系列的錯誤發(fā)生摹恨。每當(dāng)這個時候。技術(shù)人員通常都需要查閱日志文件娶视。小型公司很少有專門的運維人員對每天的日志記錄進(jìn)行分析統(tǒng)計晒哄。面對沒有進(jìn)行過分類的原始日志文件,在數(shù)以萬計記錄中查詢具體錯誤原因肪获,既費時又費力寝凌。此時,多么想有一個能夠在運行出錯時自動通知的功能孝赫。
    在github上有一個把Sentry引入Odoo的小模塊
    Sentry模塊鏈接
    現(xiàn)在较木,讓我們來試試Sentry這個自動化的錯誤抓取框架與odoo的結(jié)合吧。

準(zhǔn)備工作-Sentry的使用

我們首先來講講直接使用Sentry官方提供的DSN來自動化抓取錯誤青柄。

  • 首先伐债,需要在Sentry官網(wǎng)注冊一個使用賬戶.

    注冊賬號

  • 登錄之后,選擇右上角的創(chuàng)建新項目


    image.png
  • 選擇python(可以看到Sentry支持市面上大多數(shù)的編程語言及框架)


    image.png
  • 等待創(chuàng)建后,Sentry會提供一個案例使用方法致开。


    image.png
  • Project 主界面峰锁,正在等待捕捉錯誤事件


    image.png
  • 在ipython中敲入頁面提供的測試代碼。


    image.png
  • 回到Project主界面双戳,看到剛才的異常已經(jīng)被捕捉到了虹蒋。


    image.png
  • 點擊查看詳細(xì)信息


    image.png
  • 更棒的是,直接會有推送郵件發(fā)送到我們的注冊郵箱中飒货。直接點擊即可查看魄衅。


    image.png

與Odoo結(jié)合(我們使用odoo11作為演示)

剛才我們展示了Sentry的簡單使用,下面來看看如何整合Sentry與Odoo以達(dá)到監(jiān)控Odoo日志的操作塘辅。

  • 首先晃虫,把server-tools從git拉取到本地.因為它是一個odoo模塊,我直接把它放在odoo目錄的addons下.
  • 編寫配置文件莫辨,sentry模塊需要對于的sentry參數(shù)才能正常工作傲茄,這些配置文件全部寫在odoo的默認(rèn)配置文件odoorc中。下面是官方的示例
[options]
# 這里是剛才sentry中的dsn.添加你自己的即可
sentry_dsn = https://<public_key>:<secret_key>@sentry.example.com/<project id>
# Sentry記錄是否確認(rèn)開啟
sentry_enabled = true
# 日志等級設(shè)置為warn,即捕捉warning等級以上的日志記錄
sentry_logging_level = warn
# 排除在Sentry記錄外的單獨的日志名稱
sentry_exclude_loggers = werkzeug
# 忽略O(shè)doo常見的權(quán)限等異常
sentry_ignore_exceptions = odoo.exceptions.AccessDenied,odoo.exceptions.AccessError,odoo.exceptions.MissingError,odoo.exceptions.RedirectWarning,odoo.exceptions.UserError,odoo.exceptions.ValidationError,odoo.exceptions.Warning,odoo.exceptions.except_orm
# 在發(fā)送事件到Sentry前的獨立處理類
sentry_processors = raven.processors.SanitizePasswordsProcessor,odoo.addons.sentry.logutils.SanitizeOdooCookiesProcessor
# 使用異步傳輸信息到Sentry上沮榜。
sentry_transport = threaded
# 如果設(shè)置為true盘榨,會吧當(dāng)前HTTP 請求中的上下文信息一起傳遞到Sentry中
sentry_include_context = true
sentry_environment = production
sentry_auto_log_stacks = false
# 標(biāo)注odoo的路徑,主要是用來作為運行環(huán)境信息傳遞到Sentry中蟆融。
sentry_odoo_dir = /home/odoo/odoo/
  • 查看DSN方法:


    image.png
  • 把server-tools路徑加入odoo啟動路徑中草巡,啟動odoo進(jìn)行sentry模塊的安裝。

  • 安裝完畢型酥,需要把sentry模塊作為server-side模塊山憨,在odoo啟動時預(yù)加載查乒。(使用server_wide_modules參數(shù)指定).
    這里提供我的配置文件作為參考.

[options]
addons_path = enterprise,addons,addons/server-tools
server_wide_modules = web,sentry
db_name = False
admin_passwd = xxx
db_password = False
db_port = False
db_template = template1
db_user = False
email_from = False
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 60
limit_time_real = 120
limit_time_real_cron = -1
osv_memory_age_limit = 1.0
osv_memory_count_limit = False
proxy_mode = False
reportgz = False
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_user = False
syslog = False
test_commit = False
test_enable = False
test_file = False
test_report_directory = False
translate_modules = ['all']
unaccent = False
without_demo = False
workers = 0
xmlrpc = True
xmlrpc_port = 8069

sentry_dsn = 你的DSN字符串
sentry_enabled = true
sentry_logging_level = warn
sentry_exclude_loggers = werkzeug
sentry_ignore_exceptions = odoo.exceptions.AccessDenied,odoo.exceptions.AccessError,odoo.exceptions.MissingError,odoo.exceptions.RedirectWarning,odoo.exceptions.UserError,odoo.exceptions.ValidationError,odoo.exceptions.Warning,odoo.exceptions.except_orm
sentry_processors = raven.processors.SanitizePasswordsProcessor,odoo.addons.sentry.logutils.SanitizeOdooCookiesProcessor
sentry_transport = threaded
sentry_include_context = true
sentry_environment = production
sentry_auto_log_stacks = false

實際展示

  • 配置完上面的參數(shù)。我們直接使用配置文件啟動odoo郁竟。因為我使用了odoo11企業(yè)版玛迄,沒有安裝phonenumbers這個python包,會有一個warning日志記錄棚亩,正好用來當(dāng)做實驗蓖议。
    image.png
  • 查看我們的Sentry〖ン。可以看到這個Warning日志已經(jīng)被捕捉了勒虾。
image.png
  • 詳細(xì)的錯誤信息


    image.png
  • 郵件也有了推送


    image.png

總結(jié)

Sentry的使用讓我們的Odoo自動運維有了全新的體驗。等待異常事件推送比翻閱日志提高了維護(hù)效率.

  • 但是這個版本的sentry模塊有個小bug.只要有一個Odoo安裝sentry模塊,所有的Odoo數(shù)據(jù)庫日志文件會被Sentry進(jìn)行跟蹤.這對部署多個Odoo服務(wù)的服務(wù)器來說會導(dǎo)致混亂.
    同時只能使用一個固定的DSN也意味著把異常數(shù)據(jù)限制在了一個Sentry項目中,無法進(jìn)行有效的分類管理.
  • 另外,由于國內(nèi)的原因,使用官方Sentry提供的在線服務(wù)網(wǎng)速體驗十分難受.較好的解決方法是使用Docker自己搭建Sentry本地服務(wù).讓我們在下一次的文章中再進(jìn)行講解吧.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瘸彤,一起剝皮案震驚了整個濱河市修然,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌质况,老刑警劉巖愕宋,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拯杠,居然都是意外死亡掏婶,警方通過查閱死者的電腦和手機(jī)啃奴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門潭陪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人最蕾,你說我怎么就攤上這事依溯。” “怎么了瘟则?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵黎炉,是天一觀的道長。 經(jīng)常有香客問我醋拧,道長慷嗜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任丹壕,我火速辦了婚禮庆械,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘菌赖。我一直安慰自己缭乘,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布琉用。 她就那樣靜靜地躺著堕绩,像睡著了一般策幼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奴紧,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天特姐,我揣著相機(jī)與錄音,去河邊找鬼黍氮。 笑死到逊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滤钱。 我是一名探鬼主播觉壶,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼件缸!你這毒婦竟也來了铜靶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤他炊,失蹤者是張志新(化名)和其女友劉穎争剿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痊末,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蚕苇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凿叠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涩笤。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖盒件,靈堂內(nèi)的尸體忽然破棺而出蹬碧,到底是詐尸還是另有隱情,我是刑警寧澤炒刁,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布恩沽,位于F島的核電站,受9級特大地震影響翔始,放射性物質(zhì)發(fā)生泄漏罗心。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一城瞎、第九天 我趴在偏房一處隱蔽的房頂上張望渤闷。 院中可真熱鬧,春花似錦全谤、人聲如沸肤晓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽补憾。三九已至漫萄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盈匾,已是汗流浹背腾务。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留削饵,地道東北人岩瘦。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像窿撬,于是被迫代替她去往敵國和親启昧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容