成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CairoPlot讓Linux服務器的日志文件更直觀

原創(chuàng)
運維 系統(tǒng)運維
確實有些Linux服務器管理員很享受閱讀及核對日志文件的艱辛過程,但為什么不創(chuàng)建一個美觀的列表及圖形體系來突出那些故障和問題,而非要受這份罪呢?試試這款優(yōu)秀的工具——CairoPlot吧,它會提供給你美觀且信息可視化的服務器日志文件分析途徑。

【51CTO精選譯文】確實有些Linux服務器管理員很享受閱讀及核對日志文件的艱辛過程,但為什么不創(chuàng)建一個美觀的列表及圖形體系來突出那些故障和問題,而非要受這份罪呢?試試這款優(yōu)秀的工具——CairoPlot吧,它會提供給你美觀且信息可視化的服務器日志文件分析途徑。

作為一個需要整天跟數(shù)據(jù)打交道的從業(yè)者,我一直致力于尋找更好的方法來將紛繁復雜的數(shù)據(jù)顯示為列表和圖形,尤其是利用Python來實現(xiàn)這一目標。時下存在很多利用Python制作的整合軟件包可供使用,但如果你希望輸出的結果不會因為粗糙的視覺效果而遭到那些蘋果使用者們的恥笑,那么我向你強力推薦CairoPlot。

CairoPlot并未像大多數(shù)發(fā)行版軟件那樣進行封包,但它的安裝過程依然簡便易行。目前在CairoPlot Launchpad page(CairoPlot官方主頁)上提供的***版本是1.1版。你可以在那里下載到cairoplot-1.1.tar.gz這個文件,或是根據(jù)你自己的喜好,從BZR上搜索(一旦1.2版本發(fā)布,CairoPlot項目可能會整體轉移到Sourceforge.net上)。

解壓壓縮包:

$ tar xvf cairoplot-1.1.tar.gz

然后復制下面這個文件:cairoplot-1.1/CairoPlot.py,并粘貼到你要開發(fā)的Python腳本所在的目錄下。

用扇形圖說明:誰在發(fā)送垃圾郵件?

展開測繪工作之前,找到一個良好的數(shù)據(jù)源永遠是我們的首要任務。針對這個項目,讓我們先來分析一個Postfix日志文件,/var/log/mail.info,借以觀察一系列垃圾郵件的眾多來源。

通過對文件的隨機檢查,我們會發(fā)現(xiàn)有許多提出接收請求的郵件都來自一個客觀上根本不存在的地址,舉例說明:

Mar 5 15:05:45 mailserver postfix/smtpd[29764]: NOQUEUE: reject: RCPT from 212.199.94.45.static.012.net.il[212.199.94.45]: 450 4.7.1 <ex02.maccabiworld.org>: Helo command rejected: Host not found; from=<> to=<aiglance@mydomain.com> proto=ESMTP helo=<ex02.maccabiworld.org>

我們的posifix服務器一般會拒絕這樣的郵件,因為通常情況下它們都是垃圾郵件。配置正確的郵件服務器應該不會編造這些虛假的地址——當然在有些配置有誤的服務器上是會發(fā)生這種狀況。

但是這些虛假的接收請求從何而來?他們是否來自特定的一些國家?而在這些特定國家的垃圾郵件來源中,存在多少.com類型網(wǎng)站,又有多少.net類型網(wǎng)站?

為了找到答案,我將創(chuàng)建一個Python索引系統(tǒng),然后使用CairoPlot工具來測繪出一幅扇形圖。索引中的每個關鍵字都將涵蓋一個***域,例如“.com”;而其數(shù)值則為從該類型域中發(fā)來的被拒收郵件的數(shù)量。

剖析日志文件

要填充索引系統(tǒng)中的詞條項目,意味著我們需要對/var/log/mail.info文件進行剖析。每封郵件的真正發(fā)出地址能夠從RCPT中查詢到;將結果應用到Python的re模塊中。因為這一過程是針對CairoPlot的,因此我們不必遵循Python的描述方式,只需按照以下代碼的形式表達:

#! /usr/bin/env python
import CairoPlot, re
MAIL_INFO = "/var/log/mail.info"
# Dictionary to store the results as (domain : number of rejects)
rejected = {}
# Parse mail.info to find all the 'NOQUEUE: reject' lines and
# figure out what top-level domains (TLDs) they're coming from.
f = open(MAIL_INFO)
for line in f :
if line.find('status=sent') > 0 :
pass
elif line.find('NOQUEUE: reject') > 0 :
# An attempt we rejected. Look for a pattern like
# RCPT from foo.example.com[nnn.nnn.nnn.nnn]
rcpt = re.search("RCPT from ([^[]*)\[([0-9\.]+)\]", line)
if not rcpt :
continue
# Now rcpt.group(1) is the reverse-DNS hostname (if any)
# from the log file, rcpt.group(2) is the IP address.
if rcpt.group(1) and rcpt.group(1) != 'unknown' :
hostname = rcpt.group(1)
else :
hostname = None
# Find the part after the last "."
tld = "Unknown" # default there's no "." in the hostname
if hostname :
dot = hostname.rfind(".")
if dot >= 0 :
tld = hostname[dot+1:]
if tld in rejected :
# We've seen this TLD before; add 1.
rejected[tld] += 1
else :
# First time we've seen this TLD.
rejected[tld] = 1
f.close()

在結尾部分,通過以下內容將索引系統(tǒng)中的“拒收”標準傳達給CairoPlot。

{'ru': 3, 'ch': 1, 'ma': 2, 'rs': 2, 'it': 4, 'hu': 1, 'cz': 1, 'ar': 2, 'il': 35, 'br': 16, 'es': 1, 'co': 2, 'net': 4, 'com': 24, 'pl': 7, 'at': 2}

#p#

創(chuàng)建扇形圖

你要如何依據(jù)索引系統(tǒng)來創(chuàng)建一個扇形圖?事實上一行命令即可實現(xiàn):

CairoPlot.pie_plot("piechart", rejected, 500, 500, None, True, False, 
None)

CairoPlot將生成一個名為pie.svg的圖形文件(如圖一所示)。

CairoPlot將生成一個名為pie.svg的圖形文件

圖一

其參數(shù)為:

pie_plot(name,
         data,
         width, height,
         background=None,
         gradient=False, shadow=False,
         colors=None)

Name(名稱)指文件名:如果你希望加入一個諸如.jpg之類的擴展名,那么CairoPlot將使用你所設定的格式來取代svg格式,因為在某些情況下你可能會需要一個IE用戶能夠通過頁面正常瀏覽的圖像。

Data(數(shù)據(jù)),當然了,代表索引系統(tǒng)中的數(shù)值。

Width(寬度)和Height(高度)代表你所希望的圖形繪制尺寸。需要注意的是,CairoPlot預留給扇形圖周邊的空白區(qū)域是相當有限的,所以一定要注意整體規(guī)劃。

Background(背景),你需要指定一種背景顏色,其選色方法為標準的RGB形式。因此,通過background=(0,1,0)這一指令,你將獲得一個全綠的背景。你在這里也可以使用Cairo gradient(色階)來進行設定。Gradient(色階)功能可以讓你選擇是否將你扇形圖中的某一塊顯示出色彩漸變的效果,以使整個圖形更加美觀。Shadow(陰影)功能將讓你可以為整個扇形圖增加底部陰影效果,并且如果你不喜歡系統(tǒng)默認的陰影顏色,也可以隨意為其定義新的顏色。當然,陰影顏色同樣即可以是單色也可以包含色階。需要強調的是,所選顏色的數(shù)量必須與索引系統(tǒng)中的項目數(shù)量相同。

圖一中的示例存在一個小問題:它顯示絕大多數(shù)無效的接收請求來自根本無法解析的服務器地址,而表示狀況的圖形被壓成極細小的一塊,根本無法解讀。而且顯然你從那一大塊“無法解析“的服務器來源中根本折騰不出什么有用的信息。在這種情況下,你可以在指令中if hostname:后面添加如下內容

if hostname :
dot = hostname.rfind(".")
if dot >= 0 :
ext = hostname[dot+1:]
else :
continue

運行上述命令,這時扇形圖變?yōu)槿鐖D二所示。很有意思吧。直到編寫這個實例,我才意識到相比起其它國家,我從以色列和巴西收到了這么多的垃圾郵件。有時候一幅清晰的示意圖絕對勝過千言萬語。

圖二

圖二

#p#

條形圖

CairoPlot也可以制作出很棒的條形圖。但遺憾的是,CairoPlot的各種規(guī)則不太適合條形圖數(shù)據(jù)的導入。條形圖需要的是列表,而非索引。

這都不叫事兒!只要把上文中的索引系統(tǒng)轉換為兩個列表——一個包含標簽信息,一個包含具體數(shù)據(jù)——再進行條形圖繪制(如圖三所示):

h_labels = [ k for k in rejected.keys() ]

rejlist = [ rejected[k] for k in rejected.keys() ]

CairoPlot.bar_plot ('bars', rejlist, 500, 400,

border=5, three_dimension=True,

h_labels=h_labels)

圖三

圖三

同制作扇形圖一樣,你可以導入一個顏色列表來使用自定義顏色,而且還有其它一些諸如背景、風格、圓滑邊角、沙盤模型高度、象限體積以及必然具備的標簽體積和標簽高度等調節(jié)選項。

當然,CairoPlot同樣可以制作其它類型的圖形。這有一些實例文檔,你也可以使用Python的交互式解析工具并輸入如下內容:

import CairoPlot
help(CairoPlot.pie_plot)

CairoPlot站點將很可能遷移至Sourceforge網(wǎng)站,并提供更加完備的訪問頁面。與此同時,如果你已經(jīng)有過一些實踐經(jīng)驗,你一定會深切體會到CairoPlot在制作美觀艷麗的圖形方面絕對稱得上是***工具之一。

原文地址:http://www.linuxplanet.com/linuxplanet/tutorials/7317/1/

【51CTO.com譯文,轉載請注明原文作譯者和出處。】

【編輯推薦】

  1. 用ClusterSSH管理多臺Linux服務器
  2. Linux內核2.6.38性能大提升 THP造福虛擬化
  3. 通過dsh批量管理Linux服務器
責任編輯:黃丹 來源: 51CTO.com
相關推薦

2015-09-08 14:23:00

新醫(yī)學影像中科金證華為

2009-02-27 15:15:00

2009-11-27 14:37:20

Cisco路由器日志

2018-01-31 11:20:48

2009-11-13 12:23:39

2016-11-18 15:08:54

linux服務器策略

2021-04-28 09:53:34

Windows 10Edge瀏覽器

2018-09-06 10:16:39

2012-06-04 16:01:29

Linux服務器日志

2011-11-21 15:04:30

2022-08-20 07:39:35

Linux日志文件

2011-11-21 14:18:51

日志

2010-11-09 13:53:33

2009-11-11 10:18:02

2015-05-29 13:22:10

Linux掛載運維

2010-07-14 09:55:12

2021-05-15 08:49:16

GitHub視頻功能Bug

2013-05-29 14:27:40

2015-08-17 16:34:13

2009-01-15 09:54:00

DHCP服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产最新视频在线 | 狠狠久久综合 | 亚洲一区二区三区免费在线观看 | 国产精品网址 | 午夜免费福利电影 | 久久99精品久久久久久青青日本 | 国产精品成人久久久久 | 亚洲视频区| 超碰在线人 | 久热精品在线播放 | 一区二区在线免费观看 | www久| 一区二区三区在线免费观看 | 精品国产免费人成在线观看 | 日韩欧美三级在线 | 亚洲伦理自拍 | 在线免费观看黄网 | 国产精品地址 | 日韩播放| 成人精品视频99在线观看免费 | 精品无码久久久久国产 | 91免费在线| 国产一区二区在线观看视频 | 一区二区三区影院 | www国产亚洲精品久久网站 | 午夜免费视频观看 | 免费不卡av | 精品欧美一区二区三区久久久 | 亚洲aⅴ| 天堂久久av| 国产专区视频 | 亚洲免费观看视频网站 | 午夜小视频免费观看 | 99热欧美| 欧美日韩高清在线观看 | 欧美二区乱c黑人 | 成人在线一区二区三区 | 日韩视频一区在线观看 | 国产精品久久在线 | 久久精品亚洲欧美日韩久久 | 国产一区二区激情视频 |