linux 淘寶開源監(jiān)控工具tsar

Linux系統(tǒng)性能監(jiān)控工具:tsar 安裝、配置肴熏、以及使用

介紹

tsar 是淘寶自己開發(fā)的一個監(jiān)控工具,可用于收集和匯總系統(tǒng)信息顷窒,例如CPU蛙吏,負載,IO和應(yīng)用程序信息鞋吉,例如nginx鸦做,HAProxy,Squid等谓着。結(jié)果可以存儲在本地磁盤或發(fā)送到Nagios泼诱。

tsar 可以通過自己開發(fā)模塊輕松擴展,這使得它成為一個強大的監(jiān)控工具赊锚。

總體架構(gòu)

Tsar是基于模塊化設(shè)計的程序治筒,程序有兩部分組成:框架和模塊。
框架程序源代碼主要在src目錄舷蒲,而模塊源代碼主要在modules目錄中耸袜。
框架提供對配置文件的解析,模塊的加載阿纤,命令行參數(shù)的解析句灌,應(yīng)用模塊的接口對模塊原始數(shù)據(jù)的解析與輸出夷陋。 模塊提供接口給框架調(diào)用欠拾。
tsar依賴與cron每分鐘執(zhí)行采集數(shù)據(jù),因此它需要系統(tǒng)安裝并啟用crond骗绕,安裝后藐窄,tsar每分鐘會執(zhí)行tsar –cron來定時采集信息,并且記錄到原始日志文件酬土。

安裝

tsar 已上傳至GitHub上荆忍,您可以克隆并安裝,如下:

git clone git://github.com/kongjian/tsar.git cd tsar
$ make

make install

或者您可以下載zip文件并安裝它:

wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate unzip tsar.zip
cd tsar make

make install

安裝后撤缴,您可能會看到這些文件:

/etc/tsar/tsar.conf,這是tsar的主配置文件;
/etc/cron.d/tsar屈呕,用于運行tsar每分鐘收集信息;
/etc/logrotate.d/tsar 將每個月輪流tsar的日志文件;
/usr/local/tsar/modules 是所有模塊庫(* .so)所在的目錄;

配置

定時任務(wù)配置:/etc/cron.d/tsar

$cat /etc/cron.d/tsar

cron tsar collect once per minute

MAILTO=""

          • root /usr/bin/tsar --cron > /dev/null 2>&1

默認情況下微宝,安裝后沒有輸出顯示。只需運行tsar -l即可查看實時監(jiān)控是否有效虎眨,例如:

[kongjian@tsar]$ tsar -l -i 1
Time ---cpu-- ---mem-- ---tcp-- -----traffic---- --xvda-- -xvda1-- -xvda2-- -xvda3-- -xvda4-- -xvda5-- ---load-
Time util util retran pktin pktout util util util util util util load1
11/04/13-14:09:10 0.20 11.57 0.00 9.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11/04/13-14:09:11 0.20 11.57 0.00 4.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

通常蟋软,我們通過簡單的編輯來配置tsar/etc/tsar/tsar.conf:

添加一個模塊镶摘,添加一行 mod_<yourmodname> on
要啟用或禁用模塊,請使用 mod_<yourmodname> on/off
要指定模塊的參數(shù)岳守,請使用 mod_<yourmodname> on parameter
output_stdio_mod 將模塊輸出設(shè)置為標準I / O
output_file_path是設(shè)置歷史數(shù)據(jù)文件凄敢,(你也應(yīng)該修改logrotate腳本/etc/logrotate.d/tsar)
output_interface指定tsar數(shù)據(jù)輸出目標,默認情況下是本地文件湿痢。有關(guān)詳細信息涝缝,請參閱高級部分。

用法

null:查看默認的mods歷史數(shù)據(jù)譬重, tsar
--modname:指定要顯示的模塊俊卤, tsar --cpu
-L / - 列表:列表可用moudule, tsar -L
-l / - live:顯示實時信息害幅, tsar -l --cpu
-i / - interval:報告的設(shè)置間隔消恍, tsar -i 1 --cpu
-s / - spec:指定模塊詳細信息字段, tsar --cpu -s sys,util
-D / - 細節(jié):不要將數(shù)據(jù)轉(zhuǎn)換為K / M / G以现, tsar --mem -D
-m / - merge:合并乘數(shù)為1狠怨, tsar --io -m
-I / - item:顯示spec項目數(shù)據(jù), tsar --io -I sda
-d / - date:指定數(shù)據(jù)邑遏,YYYYMMDD或n表示n天前
-C / - 檢查:顯示最后的收集數(shù)據(jù)
-h / - 幫助:顯示幫助佣赖, tsar -h

在tsar的使用中,可以參考下面的幫助信息记盒,完成對應(yīng)的監(jiān)控憎蛤。

$tsar -h
Usage: tsar [options]
Options:
-check 查看最后一次的采集數(shù)據(jù)
--check/-C 查看最后一次tsar的提醒信息,如:tsar --check / tsar --check --cpu --io
--cron/-c 使用crond模式來進行tsar監(jiān)控
--interval/-i 指明tsar的間隔時間纪吮,默認單位分鐘,帶上--live參數(shù)則單位是秒
--list/-L 列出啟用的模塊
--live/-l 查看實時數(shù)據(jù)
--file/-f 指定輸入文件
--ndays/-n 指定過去的數(shù)據(jù)天數(shù)俩檬,默認1天
--date/-d 指定日期,YYYYMMDD或者n代表n天前
--detail/-D 能夠指定查看主要字段還是模塊的所有字段
--spec/-s 指定字段,tsar –cpu -s sys,util

Modules Enabled:
--cpu 列出cpu相關(guān)的監(jiān)控計數(shù)
--mem 物理內(nèi)存的使用情況
--swap 虛擬內(nèi)存的使用情況
--tcp TCP 協(xié)議 IPV4的使用情況
--udp UDP 協(xié)議 IPV4的使用情況
--traffic 網(wǎng)絡(luò)傳出的使用情況
--io Linux IO的情況
--pcsw 進程和上下文切換
--partition 磁盤使用情況
--tcpx TCP 連接相關(guān)的數(shù)據(jù)參數(shù)
--load 系統(tǒng)負載情

tsar監(jiān)控虛存和load情況

下圖列出了對應(yīng)的系統(tǒng)swap使用,load的使用情況碾盟。

$tsar --swap --load
Time ---------------swap------------- -------------------load-----------------
Time swpin swpout total util load1 load5 load15 runq plit
23/08/15-21:30 0.00 0.00 1.9G 0.00 1.32 1.37 1.38 2.00 12.4K
23/08/15-21:35 0.00 0.00 1.9G 0.00 1.20 1.29 1.34 21.00 12.4K
23/08/15-21:40 0.00 0.00 1.9G 0.00 1.28 1.25 1.31 2.00 12.4K
23/08/15-21:45 0.00 0.00 1.9G 0.00 1.44 1.26 1.29 3.00 12.4K
23/08/15-21:50 0.00 0.00 1.9G 0.00 1.54 1.30 1.29 3.00 12.4K
23/08/15-21:55 0.00 0.00 1.9G 0.00 0.94 1.36 1.34 4.00 12.4K
23/08/15-22:00 0.00 0.00 1.9G 0.00 1.10 1.32 1.33 4.00 12.5K

tsar 內(nèi)存使用情況

下圖列出了系統(tǒng)內(nèi)存的使用情況

$tsar --mem
Time -----------------------mem----------------------
Time free used buff cach total util
23/08/15-21:25 2.1G 5.7G 0.00 164.0M 8.0G 71.44
23/08/15-21:30 2.1G 5.7G 0.00 181.4M 8.0G 71.43
23/08/15-21:35 2.1G 5.7G 0.00 213.9M 8.0G 71.42
23/08/15-21:40 2.1G 5.7G 0.00 233.8M 8.0G 71.43
23/08/15-21:45 1.4G 5.7G 0.00 924.6M 8.0G 71.43
23/08/15-21:50 1.4G 5.7G 0.00 889.4M 8.0G 71.42

tsar io使用情況

下圖列出了使用tsar來監(jiān)控系統(tǒng)IO情況

$tsar --io
Time ------------------------------------------sda-------------------------------------------
Time rrqms wrqms rs ws rsecs wsecs rqsize qusize await svctm util
23/08/15-21:25 0.28 3.4K 184.40 389.25 4.9K 15.0K 35.47 3.00 6.35 0.29 16.44
23/08/15-21:30 0.00 3.2K 109.71 382.74 2.5K 14.5K 35.27 3.00 7.33 0.30 14.68
23/08/15-21:35 0.15 3.1K 156.91 342.16 3.8K 13.8K 36.15 3.00 6.60 0.29 14.37
23/08/15-21:40 0.86 3.3K 234.00 371.43 6.9K 14.6K 36.43 3.00 5.93 0.28 16.83
23/08/15-21:45 0.72 3.4K 376.80 357.13 11.7K 14.8K 37.03 3.00 4.84 0.25 18.50

tsar 網(wǎng)絡(luò)監(jiān)控統(tǒng)計

$tsar --traffic
Time ---------------------traffic--------------------
Time bytin bytout pktin pktout pkterr pktdrp
23/08/15-21:30 548.5K 353.4K 1.0K 1.2K 0.00 0.00
23/08/15-21:35 762.4K 440.4K 1.2K 1.4K 0.00 0.00
23/08/15-21:40 540.2K 344.0K 1.0K 1.1K 0.00 0.00
23/08/15-21:45 640.3K 365.0K 1.1K 1.2K 0.00 0.00
23/08/15-21:50 564.4K 364.1K 1.1K 1.2K 0.00 0.00
23/08/15-21:55 599.8K 327.6K 1.1K 1.1K 0.00 0.00

$tsar --tcp --udp -d 1
Time -------------------------------tcp------------------------------ ---------------udp--------------
Time active pasive iseg outseg EstRes AtmpFa CurrEs retran idgm odgm noport idmerr
23/08/15-00:05 0.79 1.52 1.6K 2.1K 0.00 0.03 3.4K 0.02 0.00 2.00 0.00 0.00
23/08/15-00:10 0.73 1.40 884.25 921.56 0.00 0.03 3.4K 0.01 0.00 3.00 0.00 0.00
23/08/15-00:15 0.77 1.46 959.62 1.0K 0.00 0.03 3.4K 0.01 0.00 3.00 0.00 0.00
23/08/15-00:20 0.69 1.43 1.0K 1.0K 0.00 0.03 3.4K 0.01 0.00 3.00 0.00 0.00
23/08/15-00:25 0.72 1.42 1.2K 1.1K 0.00 0.03 3.4K 0.00 0.00 3.00 0.00 0.00

tsar 檢查告警信息

查看最后一次tsar的提醒信息,這里包括了系統(tǒng)的cpu,io的告警情況棚辽。

$tsar --check --cpu --io
localhost.localdomain tsar cpu:user=25.0 cpu:sys=2.1 cpu:wait=0.1 cpu:hirq=0.0 cpu:sirq=0.2 cpu:util=27.4 io:sda:rrqms=0.0 io:sda:wrqms=4172.4 io:sda:rs=80.3 io:sda:ws=493.0 io:sda:rsecs=1664.0 io:sda:wsecs=18661.7 io:sda:rqsize=35.5 io:sda:qusize=4.0 io:sda:await=7.7 io:sda:svctm=0.3 io:sda:util=18.5

tsar 歷史數(shù)據(jù)回溯

通過參數(shù)-d 2 可以查出兩天前到現(xiàn)在的數(shù)據(jù),-i 1 表示以每次1分鐘作為采集顯示冰肴。

$tsar -d 2 -i 1
Time ---cpu-- ---mem-- ---tcp-- -----traffic---- --sda--- ---load-
Time util util retran bytin bytout util load1
22/08/15-00:02 ------ 71.40 0.03 754.2K 421.4K 14.38 1.59
22/08/15-00:03 34.55 71.41 0.01 773.7K 400.9K 13.39 1.42
22/08/15-00:04 31.80 71.41 0.03 708.6K 391.9K 12.88 1.54
22/08/15-00:05 28.70 71.40 0.00 544.5K 305.9K 11.32 1.68
22/08/15-00:06 25.83 71.41 0.02 521.1K 280.4K 13.32 1.48
22/08/15-00:07 25.68 71.42 0.00 495.0K 265.2K 12.08 1.21
22/08/15-00:08 30.89 71.41 0.01 811.0K 280.1K 14.92 0.92
22/08/15-00:09 23.83 71.41 0.03 636.7K 349.4K 11.81 1.47

高級

輸出到Nagios

要打開它屈藐,只需output_interface file,nagios在主配置文件中設(shè)置輸出類型。

您還應(yīng)該指定Nagios的IP地址熙尉,端口和發(fā)送間隔联逻,例如:

The IP address or the hostname running the NSCA daemon

server_addr nagios.server.com

The port on which the daemon is listening - by default it is 5667

server_port 8086

The cycle (interval) of sending alerts to Nagios

cycle_time 300

由于tsar使用Nagios的被動模式,因此您應(yīng)該指定nsca二進制文件及其配置文件检痰,例如:

nsca client program

send_nsca_cmd /usr/bin/send_nsca
send_nsca_conf /home/a/conf/amon/send_nsca.conf

然后指定要檢查的模塊和字段包归。有4個閾值級別。

tsar mod alert config file

threshold servicename.key;w-min;w-max;c-min;cmax;

threshold cpu.util;50;60;70;80;

輸出到MySQL

要使用此功能攀细,只需output_interface file,db在tsar的配置文件中添加輸出類型即可箫踩。

然后指定哪些模塊將被啟用:

output_db_mod mod_cpu,mod_mem,mod_traffic,mod_load,mod_tcp,mod_udpmod_io

請注意爱态,您應(yīng)該設(shè)置tsar2db監(jiān)聽的IP地址(或主機名)和端口,例如:

output_db_addr console2:56677

Tsar2db接收sql數(shù)據(jù)并將其刷新到MySQL境钟。有關(guān)tsar2db的更多信息锦担,請訪問https://github.com/alibaba/tsar2db

模塊開發(fā)

tsar 容易擴展慨削。無論何時您想要的信息尚未由tsar收集洞渔,您可以編寫一個模塊。

首先缚态,安裝tsardevel工具(make tsardevel將為您做這個):

然后運行tsardevel <yourmodname>磁椒,你會得到一個名為yourmodname的目錄,例如:

[kongjian@tsar]$ tsardevel test
build:make
install:make install
uninstall:make uninstall

[kongjian@tsar]$ ls test
Makefile mod_test.c mod_test.conf

您可以根據(jù)需要修改test.c中的read_test_stats()和set_test_record()函數(shù)玫芦。然后運行make;make install安裝您的模塊并運行tsar --yourmodname以查看輸出浆熔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市桥帆,隨后出現(xiàn)的幾起案子医增,更是在濱河造成了極大的恐慌,老刑警劉巖老虫,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叶骨,死亡現(xiàn)場離奇詭異,居然都是意外死亡祈匙,警方通過查閱死者的電腦和手機忽刽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夺欲,“玉大人跪帝,你說我怎么就攤上這事〗嗳颍” “怎么了歉甚?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扑眉。 經(jīng)常有香客問我,道長赖钞,這世上最難降的妖魔是什么腰素? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮雪营,結(jié)果婚禮上弓千,老公的妹妹穿的比我還像新娘。我一直安慰自己献起,他們只是感情好洋访,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布镣陕。 她就那樣靜靜地躺著,像睡著了一般姻政。 火紅的嫁衣襯著肌膚如雪呆抑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天汁展,我揣著相機與錄音鹊碍,去河邊找鬼。 笑死食绿,一個胖子當著我的面吹牛侈咕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播器紧,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼耀销,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铲汪?” 一聲冷哼從身側(cè)響起树姨,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桥状,沒想到半個月后帽揪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡辅斟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年转晰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片士飒。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡查邢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酵幕,到底是詐尸還是另有隱情扰藕,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布芳撒,位于F島的核電站邓深,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏笔刹。R本人自食惡果不足惜芥备,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舌菜。 院中可真熱鬧萌壳,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尺借,卻和暖如春绊起,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背褐望。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工勒庄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瘫里。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓实蔽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谨读。 傳聞我的和親對象是個殘疾皇子局装,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

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

  • [{"reportDate": "2018-01-23 23:28:49","fluctuateCause": n...
    加勒比海帶_4bbc閱讀 768評論 1 2
  • 刪掉重新來一次吧,記得改那個腳本修改 /home/ubuntu/eos/scripts/install_depen...
    盧衍泓閱讀 1,151評論 0 1
  • 2018年7月24日今天接了一個電話?,很特別如果說你曾經(jīng)暗戀的對象很久沒聯(lián)系了哆姻,突然跟你打電話說她要結(jié)婚了讓你...
    蛻盡鉛華閱讀 362評論 1 1
  • 1矛缨、從前的邊陲小鎮(zhèn) 屈指算來爹脾,我首次乘坐紅衛(wèi)輪赴穗求學的日子已是四十個年頭了。那是大姑娘坐轎的頭一回箕昭,記憶中那時候...
    度口閱讀 1,129評論 5 8
  • 在聽《蔡康永的說話之道》說書音頻時落竹,心情是矛盾的泌霍。一方面認為我們說話的確得有道,語言是溝通的橋梁述召,橋梁搭好得有道朱转;...
    隔著銀河閱讀 594評論 0 4