Collectl: En fortgeschratt All-in-One Performance Monitoring Tool fir Linux


Déi wichtegst Pflicht vun engem Linux System Administrateur ass sécherzestellen datt de System deen hien/hatt verwalt an engem ganz gudden Zoustand ass. Et gi vill Tools verfügbar fir e Linux System Administrateuren déi hëllefe kënne fir Prozesser an engem System wéi htop ze iwwerwaachen an ze weisen, awer keng vun dësen Tools ka mat collectl konkurréiere.

collectl ass e ganz flott Feature räich Kommandozeil Utility dat benotzt ka ginn fir Leeschtungsdaten ze sammelen déi den aktuelle Systemstatus beschreiwen. Am Géigesaz zu de meeschte vun den aneren Iwwerwaachungsinstrumenter konzentréiert collectl sech net op eng limitéiert Zuel vu Systemmetriken, amplaz kann et Informatioun iwwer vill verschidden Aarte vu Systemressourcen sammelen wéi CPU, Disk, Memory, Netzwierk, Sockets, tcp, Inoden, Infiniband, Glanz, Erënnerung, nfs, Prozesser, Quadriken, Placken a Buddyinfo.

Eng ganz gutt Saach iwwer d'Benotzung vu collectl ass datt et och d'Roll vun Utilities spille kann, déi mat nëmmen engem spezifeschen Zweck entworf sinn wéi Top, ps, iotop a vill anerer. Wat sinn e puer Features déi sammelen zu engem nëtzlechen Tool maachen?

Nodeems ech vill Fuerschung gemaach hunn, hunn ech eng Lëscht mat e puer vun de wichtegsten Features vum collectl Kommandozeil Utility fir Iech zesummegestallt.

  1. Et kann interaktiv lafen, als Daemon oder béid.
  2. Et kann den Ausgang a ville Formater weisen.
  3. Et huet d'Fäegkeet fir bal all Subsystem ze iwwerwaachen.
  4. Et kann d'Roll vu villen aneren Utilities spille wéi ps, top, iotop, vmstat.
  5. Et huet d'Fäegkeet fir déi erfaasst Donnéeën opzehuelen an ze spillen.
  6. Et kann d'Donnéeën a verschiddene Dateiformater exportéieren. (dëst ass ganz nëtzlech wann Dir d'Donnéeën mat externen Tools analyséiere wëllt).
  7. Et kann als Service lafen fir Fernmaschinnen oder e ganze Servercluster ze iwwerwaachen.
  8. Et kann d'Donnéeën am Terminal weisen, op eng Datei oder e Socket schreiwen.

Wéi installéiere ech collectl op Linux

De Collectl Utility leeft op all Linux Verdeelungen, dat eenzegt wat et erfuerdert fir ze lafen ass perl, also vergewëssert Iech datt Dir Perl op Ärer Maschinn installéiert hutt ier Dir collectl an Ärer Maschinn installéiert.

De folgende Kommando kann benotzt ginn fir de Collectl Utility an Debian baséiert Maschinnen wéi Ubuntu z'installéieren.

$ sudo apt-get install collectl

Wann Dir Red Hat baséiert Distro benotzt, kënnt Dir et einfach aus dem Repos mat dem yum Kommando gräifen.

# yum install collectl

E puer praktesch Beispiller vum Sammel Utility

Wann d'Installatioun vum Collectl-Tool fäerdeg ass, kënnt Dir et einfach aus dem Terminal lafen, och ouni Optioun. De folgende Kommando weist Informatioun iwwer CPU, Disk an Netzwierkstatistiken an engem ganz kuerzen a mënschlech liesbare Format.

# collectl

waiting for 1 second sample...
#
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut 
  13   5   790   1322      0      0     92      7      4     13      0       5 
  10   2   719   1186      0      0      0      0      3      9      0       4 
  12   0   753   1188      0      0     52      3      2      5      0       6 
  13   2   733   1063      0      0      0      0      1      1      0       1 
  25   2   834   1375      0      0      0      0      1      1      0       1 
  28   2   870   1424      0      0     36      7      1      1      0       1 
  19   3   949   2271      0      0     44      3      1      1      0       1 
  17   2   809   1384      0      0      0      0      1      6      0       6 
  16   2   732   1348      0      0      0      0      1      1      0       1 
  22   4   993   1615      0      0     56      3      1      2      0       3

Wéi Dir Kärelen aus dem uewe genannten Ausgang gesinn, deen um Terminalbildschierm ugewise gëtt, ass et ganz einfach mat de Systemmetrike Wäerter ze schaffen, déi am Kommandoausgang präsent sinn, well et op enger eenzeger Linn erschéngt.

Wann de Collectl Utility ouni Optioun ausgefouert gëtt, weist et Informatioun iwwer déi folgend Ënnersystemer:

  1. cpu
  2. Disken
  3. Netzwierk

Notiz: An eisem Fall ass en Ënnersystem all Typ vun enger Systemressource déi gemooss ka ginn.

Dir kënnt och Statistike fir all Ënnersystemer ausser Placken weisen andeems Dir de Kommando mat der -all Optioun kombinéiert wéi hei ënnendrënner.

# collectl --all

waiting for 1 second sample...
#
#cpu sys inter  ctxsw Cpu0 Cpu1 Free Buff Cach Inac Slab  Map   Fragments KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut   IP  Tcp  Udp Icmp  Tcp  Udp  Raw Frag Handle Inodes  Reads Writes Meta Comm 
  16   3   817   1542  430  390   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0     24      3      1      1      0       1    0    0    0    0  623    0    0    0   8160 240829      0      0    0    0 
  11   1   745   1324  316  426   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0      0      0      0      3      0       2    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  15   2   793   1683  371  424   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0      0      0      1      1      0       1    0    0    0    0  622    0    0    0   8160 240829      0      0    0    0 
  16   2   872   1875  427  446   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0     24      3      1      1      0       1    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  24   2   842   1383  473  368   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0    168      6      1      1      0       1    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  27   3   844   1099  478  365   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0      0      0      1      6      1       9    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  26   5   823   1238  396  428   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0      0      0      2     11      3       9    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  15   1   753   1276  361  391   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0     40      3      1      2      0       3    0    0    0    0  623    0    0    0   8160 240829      0      0    0    0

Awer wéi iwwerwaacht Dir d'Cpu Notzung mat der Hëllef vum Utility? D'Optioun '-s' soll benotzt ginn fir ze kontrolléieren wéi eng Subsystemdaten gesammelt oder zréckgespillt ginn.

Zum Beispill kann de folgende Kommando benotzt ginn fir de Resumé vun der CPU Benotzung ze iwwerwaachen.

# collectl -sc

waiting for 1 second sample...
#
#cpu sys inter  ctxsw 
  15   2   749   1155 
  16   3   772   1445 
  14   2   793   1247 
  27   4   887   1292 
  24   1   796   1258 
  16   1   743   1113 
  15   1   743   1179 
  14   1   706   1078 
  15   1   764   1268

Wat geschitt wann Dir de Kommando mat scdn kombinéiert? De beschte Wee fir ze léieren wéi Dir Kommandozeilen Tools benotzt ass sou vill wéi méiglech ze üben, also fuert de folgende Kommando an Ärem Terminal a kuckt wat geschitt.

# collectl -scdn

waiting for 1 second sample...
#
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut 
  25   4   943   3333      0      0      0      0      1      1      0       2 
  27   3   825   2910      0      0      0      0      1      1      0       1 
  27   5   886   2531      0      0      0      0      0      0      0       1 
  20   4   872   2406      0      0      0      0      1      1      0       1 
  26   1   854   2091      0      0     20      2      1      1      0       1 
  39   4  1004   3398      0      0      0      0      2      8      3       6 
  41   6   955   2464      0      0     40      3      1      2      0       3 
  25   7   890   1609      0      0      0      0      1      1      0       1 
  16   2   814   1165      0      0    796     43      2      2      0       2 
  14   1   779   1383      0      0     48      6      1      1      0       1 
  11   2   795   1285      0      0      0      0      2     14      1      14

Dir kënnt einfach verstoen datt d'Standardoptioun cdn ass, et steet fir CPU, Disken an Netzwierkdaten. D'Resultat vum Kommando ass d'selwecht mat der Ausgang vun collectl -scn

Wann Dir wëllt Daten iwwer d'Erënnerung sammelen, benotzt de folgende Kommando.

# collectl -sm

waiting for 1 second sample...
#
#Free Buff Cach Inac Slab  Map 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G

Déi uewe Ausgab ass ganz nëtzlech wann Dir e puer detailléiert Informatioun iwwer Är Erënnerungsverbrauch wëllt kréien, gratis Erënnerung an aner wichteg Saachen fir d'Leeschtung vun Ärem System.

Wéi iwwer e puer Daten op tcp? Benotzt de folgende Kommando fir et ze maachen.

# collectl -st

waiting for 1 second sample...
#
#  IP  Tcp  Udp Icmp 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0

Nodeems Dir e puer Erfarung gesammelt hutt, kënnt Dir einfach Optiounen kombinéieren fir d'Resultater ze kréien déi Dir wëllt. Zum Beispill kënnt Dir den t fir tcp an c fir CPU kombinéieren. De folgende Kommando mécht dat.

# collectl -stc

waiting for 1 second sample...
#
#cpu sys inter  ctxsw   IP  Tcp  Udp Icmp 
  23   8   961   3136    0    0    0    0 
  24   5   916   3662    0    0    0    0 
  21   8   848   2408    0    0    0    0 
  30  10   916   2674    0    0    0    0 
  38   3   826   1752    0    0    0    0 
  31   3   820   1408    0    0    0    0 
  15   5   781   1335    0    0    0    0 
  17   3   802   1314    0    0    0    0 
  17   3   755   1218    0    0    0    0 
  14   2   788   1321    0    0    0    0

Et ass schwéier fir eis Mënschen all déi verfügbar Optiounen ze erënneren, also posten ech d'Zesummefaassung vun de Subsystemer déi vum Tool ënnerstëtzt ginn.

  1. b - Buddy Info (Erënnerungsfragmentéierung)
  2. c – CPU
  3. d – Disk
  4. f – NFS V3 Daten
  5. i – Inode a Dateiesystem
  6. j – Ënnerbriechungen
  7. l – Lustre
  8. m – Erënnerung
  9. n – Netzwierker
  10. s – Sockets
  11. t – TCP
  12. x – Interconnect
  13. y – Placken (Systemobjektcaches)

E ganz wichtegt Stéck Daten fir e Systemadministrator oder e Linux Benotzer sinn d'Donnéeën, déi op der Diskverbrauch gesammelt ginn. De folgende Kommando hëlleft Iech fir d'Disknotzung ze iwwerwaachen.

# collectl -sd

waiting for 1 second sample...
#
#KBRead  Reads KBWrit Writes 
      0      0      0      0 
      0      0      0      0 
      0      0     92      7 
      0      0      0      0 
      0      0     36      3 
      0      0      0      0 
      0      0      0      0 
      0      0    100      7 
      0      0      0      0

Dir kënnt och d'Optioun -sD benotzen fir Daten op eenzel Disken ze sammelen, awer Dir musst wëssen datt d'Informatioun iwwer den Total Disken net gemellt gëtt.

# collectl -sD

waiting for 1 second sample...

# DISK STATISTICS (/sec)
#           Pct
#Name       KBytes Merged  IOs Size  KBytes Merged  IOs Size  RWSize  QLen  Wait SvcTim Util
sda              0      0    0    0      52     11    2   26      26     1     8      8    1
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0      24      0    2   12      12     0     0      0    0
sda              0      0    0    0     152      0    4   38      38     0     0      0    0
sda              0      0    0    0     192     45    3   64      64     1    20     20    5
sda              0      0    0    0     204      0    2  102     102     0     0      0    0
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0     116     26    3   39      38     1    16     16    4
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0      32      5    3   11      10     1    16     16    4
sda              0      0    0    0       0      0    0    0       0     0     0      0    0

Dir kënnt och aner Detail-Subsystemer benotze fir detailléiert Donnéeën ze sammelen. Déi folgend ass eng Lëscht vun den Detailsubsystemer.

  1. C – CPU
  2. D – Disk
  3. E – Ëmweltdaten (Fan, Kraaft, Temp), iwwer ipmitool
  4. F – NFS Daten
  5. J - Ënnerbriechungen
  6. L – Luster OST Detail ODER Client Dateisystem Detail
  7. N – Netzwierker
  8. T – 65 TCP-Zähler nëmmen am Plotformat verfügbar
  9. X – Interconnect
  10. Y – Placken (Systemobjektcaches)
  11. Z – Prozesser

Et gi vill verfügbar Optiounen am Collectl Utility, awer et gëtt net genuch Zäit a Plaz fir se all an nëmmen engem Artikel ze decken. Wéi och ëmmer ass et derwäert ze ernimmen an ze léieren wéi een den Utility als Top a ps benotzt.

Et ass ganz einfach collectl als Top Utility ze maachen, fuert just de folgende Kommando an Ärem Terminal an Dir gesitt den ähnlechen Output deen Top Tool Iech gëtt wann et an Ärem Linux System ausgefouert gëtt.

# collectl --top

# TOP PROCESSES sorted by time (counters are /sec) 13:11:02
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
^COuch!tecmint  20     1   40 R    1G  626M  0  0.01  0.14  15  28:48.24    0    0    0  109 /usr/lib/firefox/firefox 
 3403  tecmint  20     1   40 R    1G  626M  1  0.00  0.20  20  28:48.44    0    0    0  600 /usr/lib/firefox/firefox 
 5851  tecmint  20  4666    0 R   17M   13M  0  0.02  0.06   8  00:01.28    0    0    0    0 /usr/bin/perl 
 1682  root     20  1666    2 R  211M   55M  1  0.02  0.01   3  03:10.24    0    0    0   95 /usr/bin/X 
 3454  tecmint  20  3403    8 S  216M   45M  1  0.01  0.02   3  01:23.32    0    0    0    0 /usr/lib/firefox/plugin-container 
 4658  tecmint  20  4657    3 S  207M   17M  1  0.00  0.02   2  00:08.23    0    0    0  142 gnome-terminal 
 2890  tecmint  20  2571    3 S  340M   68M  0  0.00  0.01   1  01:19.95    0    0    0    0 compiz 
 3521  tecmint  20     1   24 S  710M  148M  1  0.01  0.00   1  01:47.84    0    0    0    0 skype 
    1  root     20     0    0 S    3M    2M  0  0.00  0.00   0  00:02.57    0    0    0    0 /sbin/init 
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd 
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.60    0    0    0    0 ksoftirqd/0 
    5  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H 
    7  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/u:0H 
    8  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:04.42    0    0    0    0 migration/0 
    9  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 rcu_bh 
   10  root     20     2    0 R     0     0  0  0.00  0.00   0  00:02.22    0    0    0    0 rcu_sched 
   11  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.05    0    0    0    0 watchdog/0 
   12  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.07    0    0    0    0 watchdog/1 
   13  root     20     2    0 S     0     0  1  0.00  0.00   0  00:00.73    0    0    0    0 ksoftirqd/1 
   14  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:01.96    0    0    0    0 migration/1 
   16  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kworker/1:0H 
   17  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 cpuset

An elo zulescht awer net zulescht, fir de collectl Utility als ps Tool ze benotzen de folgende Kommando an Ärem Terminal lafen. Dir kritt Informatioun iwwer Prozesser an Ärem System déiselwecht wéi Dir maacht wann Dir de Kommando ps an Ärem Terminal leeft.

# collectl -c1 -sZ -i:1

waiting for 1 second sample...

### RECORD    1 >>> tecmint-vgn-z13gn <<< (1397979716.001) (Sun Apr 20 13:11:56 2014) ###

# PROCESS SUMMARY (counters are /sec)
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
    1  root     20     0    0 S    3M    2M  0  0.00  0.00   0  00:02.57    0    0    0    0 /sbin/init 
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd 
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.60    0    0    0    0 ksoftirqd/0 
    5  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H 
    7  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/u:0H 
    8  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:04.42    0    0    0    0 migration/0 
    9  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 rcu_bh 
   10  root     20     2    0 S     0     0  0  0.00  0.00   0  00:02.24    0    0    0    0 rcu_sched 
   11  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.05    0    0    0    0 watchdog/0 
   12  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.07    0    0    0    0 watchdog/1 
   13  root     20     2    0 S     0     0  1  0.00  0.00   0  00:00.73    0    0    0    0 ksoftirqd/1 
   14  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:01.96    0    0    0    0 migration/1 
   16  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kworker/1:0H 
   17  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 cpuset 
   18  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 khelper 
   19  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kdevtmpfs 
   20  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 netns 
   21  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 bdi-default 
   22  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kintegrityd

Ech si ganz sécher datt vill Linux System Administrateuren dëst Tool gär hunn a seng Kraaft fille wann se se voll benotzen. Wann Dir gär Äert Wësse iwwer Collectl op den nächsten Niveau weiderfuere wëllt, kuckt op seng manuell Säiten a setzt weider.

Gitt einfach de folgende Kommando an Ärem Terminal a fänkt un ze liesen.

# man collectl

Referenz Linken

collectl Homepage