久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

supervisor+rsyslog+sentry日志管理 | 阿小信的博客

 SamBookshelf 2014-03-06

使用supervisor+rsyslog+sentry進(jìn)行日志管理配置方法

首先我想說(shuō),,真他么太折騰了,終于搞定了,,尼瑪啊啊啊啊啊啊啊啊啊啊啊?。榱苏垓v這個(gè)差不多花了一個(gè)星期的時(shí)間,,從最開(kāi)始的syslog開(kāi)始,,完全不了解,文章又少,,我連俄語(yǔ)文章都拜讀了啊,,太佩服自己了,用英語(yǔ)提了下問(wèn),,結(jié)果沒(méi)人鳥(niǎo),,剛開(kāi)始看的時(shí)候,感覺(jué)文章都是一堆天書,,機(jī)器上也根本沒(méi)有syslog,,折騰了幾天知道了rsyslog的基本使用,才發(fā)現(xiàn)自己的os尼瑪syslog有問(wèn)題根本就不記錄,,到處折騰不好,,都想放棄了,期間又重裝系統(tǒng),,必須感謝胡哥,,陪我一起解決問(wèn)題,一起研究rsyslog的用法,,給我刻盤,,昨晚1點(diǎn)了我都打算睡了還來(lái)敲門說(shuō)他知道不能上傳日志到sentry是什么原因了,1點(diǎn)了啊早上7點(diǎn)起床有么有啊,,我穿條內(nèi)褲又跑去他寢室看是咋回事,,我看他也困的不行,說(shuō)話聲音都沙了,,辛苦了,。好基友,一被子??!草,!

環(huán)境:

Sentry Server:ubuntu 12.04 desktop(192.168.1.101) Test PC:ubuntu 12.04 desktop(192.168.1.106)

在產(chǎn)生日志的機(jī)器(Test PC)上安裝Supervisor:
$ sudo pip install supervisor
配置Supervisor:

首先需要使用echo_supervisord_conf命令生成配置文件

# echo_supervisord_conf > /etc/supervisord.conf

或者:

$ echo_supervisord_conf |sudo tee /etc/supervisord.conf

配置文件可以自行指定文件所在位置,/etc/supervisord.conf是supervisor會(huì)默認(rèn)查找的位置,,報(bào)錯(cuò)信息中可以查看到還有其他幾個(gè)路徑也是默認(rèn)位置,。

按照conf文件示例內(nèi)容修改配置,添加監(jiān)控任務(wù),。其中;為注釋

[program:THE_PROGRAM_NAME]
command=COMMAND_TO_RUN_THE_PROGRAM
autorestart=true
stdout_logfile=syslog
redirect_stderr=true

THE_PROGRAM_NAME為要監(jiān)控的程序名稱,,可隨意設(shè)置,會(huì)在syslog日志中顯示

COMMAND_TO_RUN_THE_PROGRAM為啟動(dòng)這個(gè)被監(jiān)控程序的命令,,自動(dòng)重啟時(shí)用到

stdout_logfile的值設(shè)置為特殊值syslog,,否則會(huì)以此值為本地文本文件名保存

配置好后啟動(dòng)supervisor:

# supervisord
修改產(chǎn)生日志機(jī)器上的rsyslog配置:

在/etc/rsyslog.d/下新建你的xxx.conf文件,內(nèi)容為:

$SystemLogUsePIDFromSystem on
if $programname == 'supervisord' then @@192.168.1.101:10514;RSYSLOG_SyslogProtocol23Format

便會(huì)將supervisor產(chǎn)生的日志用tcp方式發(fā)送到Sentry Server的10514端口


Sentry Server上安裝Sentry:

PS:因?yàn)閟entry依賴django,,且最新版必須依賴1.5.1以上版本,,本地如果有django環(huán)境請(qǐng)使用virtualenv安裝。

$ virtualenv --no-site-packages venv
$ cd venv/
$ source bin/activate
$ pip install sentry
$ pip install loggerglue
$ pip install MySQL-python #虛擬環(huán)境沒(méi)有mysql,,sentry默認(rèn)是sqlite,,要用到mysql需要安裝上,安裝mysql-python報(bào)錯(cuò)的話檢查mysql-server mysql-client libmysqlclient15-dev python-dev等是否安裝
配置Sentry

生成默認(rèn)路徑的配置文件:

$ sentry init  #--config自定義文件名
Configuration file created at '/home/ashin/.sentry/sentry.conf.py'

修改配置sentry.conf.py:

SENTRY_URL_PREFIX的值設(shè)置為什么那么Sentry的訪問(wèn)地址就必須是什么,,如以localhost為例,,設(shè)置為'http://localhost:9000'那么瀏覽器訪問(wèn)就必須是http://localhost:9000 ,而不能使用http://127.0.0.1:9000 進(jìn)行訪問(wèn),。其他配置和Django的settings.py類似,。

運(yùn)行Sentry:

$ sentry start #--config自定義文件名

如果是在Running service: 'http'時(shí)報(bào)錯(cuò) [ERROR] Connection in use: ('0.0.0.0', 9000),請(qǐng)檢查9000端口是否被占用,。

如果報(bào)錯(cuò):SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): localhost:9000,,需要在settings中配置ALLOWED_HOSTS=['localhost']。

訪問(wèn)web界面,,登陸后按步驟設(shè)置下后會(huì)生成一個(gè)dsn key

測(cè)試下是否配置成功:raven test <DSN_KEY>

Sentry Server上運(yùn)行Bridge to send rsyslog logs to sentry

使用https://gist.github.com/avoine/2912777/raw/c5f151fe701d58c33120118daa87c8cee95a7a46/gistfile1.py 插件,,修改其中的dsn和監(jiān)聽(tīng)ip,當(dāng)Test PC發(fā)送syslog到Sentry Server的10514端口時(shí),,該腳本通過(guò)監(jiān)聽(tīng)10514端口,通過(guò)handler調(diào)用raven的api將日志內(nèi)容發(fā)送到sentry

import logging

from raven import Client
from loggerglue.server import SyslogServer, SyslogHandler

client = Client(dsn='http://5d8f03027e9e413484d4ce4a9281e4bc:6e5a92d69a8e44b8a93f074db61e6920@localhost:9000/2') #自己sentry的api key

PRIVAL_SEVERITY = {
    0 : logging.CRITICAL,
    1 : logging.CRITICAL,
    2 : logging.CRITICAL,
    3 : logging.ERROR,
    4 : logging.WARNING,
    5 : logging.INFO,
    6 : logging.INFO,
    7 : logging.DEBUG,
}

PRIVAL_FACILITY = {
    0 : "LOG_KERN",
    1 : "LOG_USER",
    2 : "LOG_MAIL",
    3 : "LOG_DAEMON",
    4 : "LOG_AUTH",
    5 : "LOG_SYSLOG",
    6 : "LOG_LPR",
    7 : "LOG_NEWS",
    8 : "LOG_UUCP",
    9 : "LOG_CRON",
    10 : "LOG_AUTHPRIV",
    16 : "LOG_LOCAL0",
    17 : "LOG_LOCAL1",
    18 : "LOG_LOCAL2",
    19 : "LOG_LOCAL3",
    20 : "LOG_LOCAL4",
    21 : "LOG_LOCAL5",
    22 : "LOG_LOCAL6",
    23 : "LOG_LOCAL7",
}

def prival(prival):
    sev_num = prival % 8
    fac_num = (prival - sev_num) / 8
    return (PRIVAL_SEVERITY[sev_num], PRIVAL_FACILITY[fac_num])

class SimpleHandler(SyslogHandler):
    def handle_entry(self, entry):
        level, fac = prival(entry.prival)
        client.name = entry.hostname

        data = {'level': level, "culprit" : ".".join([fac, entry.app_name]),
                'logger' : ".".join([fac, entry.app_name])}

        client.capture('Message', message=entry.msg,
                            date=entry.timestamp, data=data)

s = SyslogServer(('192.168.1.101', 10514), SimpleHandler) #  rsyslog->10514->handler->sentry
s.serve_forever()

這樣在Test PC上由supervisor產(chǎn)生的日志就會(huì)通過(guò)rsyslog發(fā)送給這個(gè)腳本,,這個(gè)腳本再統(tǒng)一發(fā)給Sentry,,最后同樣的方法將Sentry和該腳本也加入到supervisor中進(jìn)行監(jiān)控。

詳細(xì)參考:

http://ashin.sinaapp.com/article/139/
http://ashin.sinaapp.com/article/143/
http://ashin.sinaapp.com/article/144/
http://ashin.sinaapp.com/article/145/

如果您覺(jué)得從我的分享中得到了幫助,,并且希望我的博客持續(xù)發(fā)展下去,,請(qǐng)點(diǎn)擊支付寶捐贈(zèng),謝謝,!

若非特別聲明,,文章均為阿小信的個(gè)人筆記,,轉(zhuǎn)載請(qǐng)注明出處。                 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多