差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:mrtg [2007/12/06 16:56] jonathantech:mrtg [2023/06/27 09:07] (目前版本) jonathan
行 1: 行 1:
 +====== MRTG 安裝與應用 ======
 +===== Alpine =====
 +  * 安裝套件 <cli>
 +apk add mrtg net-snmp
 +</cli>
 +  * 設定 snmpd.conf
 +  * 啟動 snmpd 服務 <cli>
 +rc-update add snmpd
 +rc-service snmpd start
 +</cli>
  
 +===== CentOS =====
 +==== - 確認是否已經安裝 mrtg 套件 ====
 +<cli>
 +rpm -q mrtg
 +
 +[docsrv@ed ~]$ rpm -q mrtg
 +mrtg-2.10.15-1
 +</cli>
 +  * 如果沒有安裝, 就執行 <cli>yum -y install mrtg</cli> 來安裝
 +
 +===== - 使用 snmpd 來讓 MRTG 監看網路流量 ====
 +==== - 安裝 snmpd ====
 +<cli>
 +rpm -q net-snmp
 +
 +[root@pd920 ~]# rpm -q net-snmp
 +net-snmp-5.1.2-11.EL4.7
 +</cli>
 +  * 如果沒有安裝, 就執行 yum -y install net-snmp 來安裝
 +
 +
 +==== - 設定 snmpd ====
 +<cli>
 +vi /etc/snmp/snmpd.conf
 +</cli>
 +<file>
 +com2sec notConfigUser  default       public
 +
 +group   notConfigGroup v1           notConfigUser
 +group   notConfigGroup v2c           notConfigUser
 +
 +view    systemview    included   .1.3.6.1.2.1.2
 +view    systemview    included   .1.3.6.1.2.1.1
 +view    systemview    included   .1.3.6.1.2.1.25.1.1
 +view    systemview    included   .1.3.6.1.2.1.2.2.1
 +
 +access  notConfigGroup ""      any       noauth    exact  systemview none none
 +
 +syslocation Taipei
 +syscontact Admin <[email protected]>
 +</file>
 +<cli>
 +service snmpd restart
 +chkconfig snmpd on 
 +chkconfig --list | grep snmpd
 +</cli>
 +
 +===== - 使用簡單 script 來讓 MRTG 監看硬碟空間, CPU 負載.. ====
 +<note important>
 +  * 可直接下載 trysrvtool 使用, 請參考 **[[tech:trysrvtool]]**
 +</note>
 +
 +===== - 設定 mrtg.cfg =====
 +  * 假設已經安裝 [[http://svn.ichiayi.com/opensvn/opentrysoft/trysrvtool|trysrvtool]] 在 /opt/trysrvtool/, 就可以在 /opt/trysrvtool/mrtg/ 底下看到相關的 scripts
 +
 +  * 先使用 [[http://svn.ichiayi.com/opensvn/opentrysoft/trysrvtool/mrtg/runcfgmaker.sh|runcfgmaker.sh]] 獲取目前網卡資訊
 +<cli>
 +cd /etc/mrtg
 +/opt/trysrvtool/mrtg/runcfgmaker.sh
 +cat localhost.cfg >> mrtg.cfg
 +vi /etc/mrtg/mrtg.cfg
 +</cli>
 +
 +<file>
 +:
 +### Global Defaults
 +
 +#  to get bits instead of bytes and graphs growing to the right
 +Options[_]: growright, bits
 +:
 +:
 +
 +Target[eth1]: 3:[email protected]
 +SetEnv[eth1]: MRTG_INT_IP="192.168.11.250" MRTG_INT_DESCR="eth1"
 +MaxBytes[eth1]: 1250000000
 +Options[eth1]: growright
 +Title[eth1]: Traffic Analysis
 +PageTop[eth1]: <H1>Stats for our eth0:192.168.11.250 Ethernet</H1>
 +#
 +#
 +
 +Target[disk_root]: `/opt/trysrvtool/mrtg/disk.pl`
 +MaxBytes[disk_root]: 50000000000
 +Options[disk_root]: gauge, nopercent, growright
 +YLegend[disk_root]: disk_root
 +ShortLegend[disk_root]: Bytes
 +LegendO[disk_root]: disk_root Available;
 +LegendI[disk_root]: disk_root Used;
 +Title[disk_root]: disk_root Usage
 +PageTop[disk_root]: <H1>disk_root usage</H1>
 +
 +Target[disk_boot]: `/opt/trysrvtool/mrtg/disk.pl /boot`
 +MaxBytes[disk_boot]: 50000000000
 +Options[disk_boot]: gauge, nopercent, growright
 +YLegend[disk_boot]: disk_boot
 +ShortLegend[disk_boot]: Bytes
 +LegendO[disk_boot]: disk_boot Available;
 +LegendI[disk_boot]: disk_boot Used;
 +Title[disk_boot]: disk_boot Usage
 +PageTop[disk_boot]: <H1>disk_boot usage</H1>
 +
 +Target[disk_data]: `/opt/trysrvtool/mrtg/disk.pl /data`
 +MaxBytes[disk_data]: 200000000000
 +Options[disk_data]: gauge, nopercent, growright
 +YLegend[disk_data]: disk_data
 +ShortLegend[disk_data]: Bytes
 +LegendO[disk_data]: disk_data Available;
 +LegendI[disk_data]: disk_data Used;
 +Title[disk_data]: disk_data Usage
 +PageTop[disk_data]: <H1>disk_data usage</H1>
 +
 +Target[disk_backup]: `/opt/trysrvtool/mrtg/disk.pl /backup`
 +MaxBytes[disk_backup]: 200000000000
 +Options[disk_backup]: gauge, nopercent, growright
 +YLegend[disk_backup]: disk_backup
 +ShortLegend[disk_backup]: Bytes
 +LegendO[disk_backup]: disk_backup Available;
 +LegendI[disk_backup]: disk_backup Used;
 +Title[disk_backup]: disk_backup Usage
 +PageTop[disk_backup]: <H1>disk_backup usage</H1>
 +
 +Target[cpuload]: `/opt/trysrvtool/mrtg/cpuload.pl` 
 +MaxBytes[cpuload]: 100 
 +Options[cpuload]: gauge, nopercent, growright 
 +YLegend[cpuload]: CPU loading (%) 
 +ShortLegend[cpuload]:
 +LegendO[cpuload]: CPU User Loading; 
 +LegendI[cpuload]: CPU System Loading; 
 +Title[cpuload]: CPU Loading
 +PageTop[cpuload]: <H1>CPU loading</H1> 
 +
 +Target[cpuio]: `/opt/trysrvtool/mrtg/cpuio.pl`
 +MaxBytes[cpuio]: 100
 +Options[cpuio]: gauge, nopercent, growright
 +YLegend[cpuio]: cpuio (%)
 +ShortLegend[cpuio]: %
 +LegendO[cpuio]: cpu Idel;
 +LegendI[cpuio]: cpu IOWait;
 +Title[cpuio]: cpuio Loading
 +PageTop[cpuio]: <H1>cpuio loading</H1>
 +
 +Target[memswap]: `/opt/trysrvtool/mrtg/memswap.pl`
 +MaxBytes[memswap]: 8000000000
 +Options[memswap]: gauge, nopercent, growright
 +YLegend[memswap]: Memory (Bytes)
 +ShortLegend[memswap]: Bytes
 +LegendO[memswap]: Free Memory;
 +LegendI[memswap]: Swap Memory;
 +Title[memswap]: Memory Usage
 +PageTop[memswap]: <H1>Memory Usage</H1>
 +
 +Target[sensors]: `/opt/trysrvtool/mrtg/temper.pl sensors`
 +MaxBytes[sensors]: 100
 +Options[sensors]: gauge, nopercent, growright
 +YLegend[sensors]: M/B (C)
 +ShortLegend[sensors]: C
 +LegendO[sensors]: M/B Temp ;
 +LegendI[sensors]: M/B Temp;
 +Title[sensors]: M/B Temperature
 +PageTop[sensors]: <H1>M/B temperature</H1>
 +
 +Target[ups]: `/opt/trysrvtool/mrtg/temper.pl ups`
 +MaxBytes[ups]: 100
 +Options[ups]: gauge, nopercent, growright
 +YLegend[ups]: UPS (C)
 +ShortLegend[ups]: C
 +LegendO[ups]: UPS Temp ;
 +LegendI[ups]: UPS Temp;
 +Title[ups]: UPS Temperature
 +PageTop[ups]: <H1>APC UPS temperature</H1>
 +
 +Target[sata_dev_sda]: `/opt/trysrvtool/mrtg/temper.pl sata /dev/sda`
 +MaxBytes[sata_dev_sda]: 100
 +Options[sata_dev_sda]: gauge, nopercent, growright
 +YLegend[sata_dev_sda]: HD (C)
 +ShortLegend[sata_dev_sda]: C
 +LegendO[sata_dev_sda]: data HD Temp ;
 +LegendI[sata_dev_sda]: data HD Temp;
 +Title[sata_dev_sda]: Hard Disk Temperature
 +PageTop[sata_dev_sda]: <H1>Hard Disk temperature</H1>
 +
 +Target[sata_dev_sdb]: `/opt/trysrvtool/mrtg/temper.pl sata /dev/sdb`
 +MaxBytes[sata_dev_sdb]: 100
 +Options[sata_dev_sdb]: gauge, nopercent, growright
 +YLegend[sata_dev_sdb]: HD (C)
 +ShortLegend[sata_dev_sdb]: C
 +LegendO[sata_dev_sdb]: main HD Temp ;
 +LegendI[sata_dev_sdb]: main HD Temp;
 +Title[sata_dev_sdb]: Hard Disk Temperature
 +PageTop[sata_dev_sdb]: <H1>Hard Disk temperature</H1>
 +
 +Target[smtp]: `/opt/trysrvtool/mrtg/connection.pl 25`
 +MaxBytes[smtp]: 500
 +Options[smtp]: gauge, nopercent, growright
 +YLegend[smtp]: smtp connect (#)
 +ShortLegend[smtp]: #
 +LegendO[smtp]: SMTP User Connecting;
 +LegendI[smtp]: SMTP User Connected;
 +Title[smtp]: SMTP Connections
 +PageTop[smtp]: <H1>SMTP connections</H1>
 +
 +Target[pop3]: `/opt/trysrvtool/mrtg/connection.pl 110`
 +MaxBytes[pop3]: 500
 +Options[pop3]: gauge, nopercent, growright
 +YLegend[pop3]: pop3 connect (#)
 +ShortLegend[pop3]: #
 +LegendO[pop3]: POP3 User Connecting;
 +LegendI[pop3]: POP3 User Connected;
 +Title[pop3]: POP3 Connections
 +PageTop[pop3]: <H1>POP3 connections</H1>
 +
 +Target[imap]: `/opt/trysrvtool/mrtg/connection.pl 143`
 +MaxBytes[imap]: 500
 +Options[imap]: gauge, nopercent, growright
 +YLegend[imap]: imap connect (#)
 +ShortLegend[imap]: #
 +LegendO[imap]: IMAP User Connecting;
 +LegendI[imap]: IMAP User Connected;
 +Title[imap]: IMAP Connections
 +PageTop[imap]: <H1>IMAP connections</H1>
 +
 +Target[mail_queue]: `/opt/trysrvtool/mrtg/filenum.pl`
 +MaxBytes[mail_queue]: 50000000000
 +Options[mail_queue]: gauge, nopercent, growright
 +YLegend[mail_queue]: mail_queue
 +ShortLegend[mail_queue]: #
 +LegendO[mail_queue]: mail_queue1 files;
 +LegendI[mail_queue]: mail_queue2 files;
 +Title[mail_queue]: mail_queue files
 +PageTop[mail_queue]: <H1>mail_queue files</H1>
 +
 +Target[http]: `/opt/trysrvtool/mrtg/connection.pl 80`
 +MaxBytes[http]: 500
 +Options[http]: gauge, nopercent, growright
 +YLegend[http]: http connect (#)
 +ShortLegend[http]: #
 +LegendO[http]: HTTP User Connecting;
 +LegendI[http]: HTTP User Connected;
 +Title[http]: HTTP Connections
 +PageTop[http]: <H1>HTTP connections</H1>
 +
 +Target[ssh]: `/opt/trysrvtool/mrtg/connection.pl 22`
 +MaxBytes[ssh]: 500
 +Options[ssh]: gauge, nopercent, growright
 +YLegend[ssh]: ssh connect (#)
 +ShortLegend[ssh]: #
 +LegendO[ssh]: SSH User Connecting;
 +LegendI[ssh]: SSH User Connected;
 +Title[ssh]: SSH Connections
 +PageTop[ssh]: <H1>SSH connections</H1>
 +
 +Target[postgres]: `/opt/trysrvtool/mrtg/connection.pl 5432`
 +MaxBytes[postgres]: 500
 +Options[postgres]: gauge, nopercent, growright
 +YLegend[postgres]: psql connect (#)
 +ShortLegend[postgres]: #
 +LegendO[postgres]: PostgreSQL User Connecting;
 +LegendI[postgres]: PostgreSQL User Connected;
 +Title[postgres]: PostgreSQL Connections
 +PageTop[postgres]: <H1>PostgreSQL connections</H1>
 +
 +Target[mysql]: `/opt/trysrvtool/mrtg/connection.pl 3306`
 +MaxBytes[mysql]: 500
 +Options[mysql]: gauge, nopercent, growright
 +YLegend[mysql]: msql connect (#)
 +ShortLegend[mysql]: #
 +LegendO[mysql]: MYSQL User Connecting;
 +LegendI[mysql]: MYSQL User Connected;
 +Title[mysql]: MYSQL Connections
 +PageTop[mysql]: <H1>MYSQL connections</H1>
 +
 +Target[domain]: `/opt/trysrvtool/mrtg/connection.pl 53`
 +MaxBytes[domain]: 500
 +Options[domain]: gauge, nopercent, growright
 +YLegend[domain]: dns connect (#)
 +ShortLegend[domain]: #
 +LegendO[domain]: domain User Connecting;
 +LegendI[domain]: domain User Connected;
 +Title[domain]: domain Connections
 +PageTop[domain]: <H1>domain connections</H1>
 +
 +Target[ntp]: `/opt/trysrvtool/mrtg/connection.pl 123`
 +MaxBytes[ntp]: 500
 +Options[ntp]: gauge, nopercent, growright
 +YLegend[ntp]: ntp connect (#)
 +ShortLegend[ntp]: #
 +LegendO[ntp]: NTP User Connecting;
 +LegendI[ntp]: NTP User Connected;
 +Title[ntp]: NTP Connections
 +PageTop[ntp]: <H1>NTP connections</H1>
 +
 +Target[upsload]: `/opt/trysrvtool/mrtg/apcups.pl`
 +MaxBytes[upsload]: 100
 +Options[upsload]: gauge, nopercent, growright
 +YLegend[upsload]: upsload (%)
 +ShortLegend[upsload]: %
 +LegendI[upsload]: ups load;
 +LegendO[upsload]: bat capacity;
 +Title[upsload]: UPS Loading
 +PageTop[upsload]: <H1>APC UPS Loading</H1>
 +
 +Target[upsvolts]: `/opt/trysrvtool/mrtg/apcups.pl "LINEV    :,OUTPUTV"`
 +MaxBytes[upsvolts]: 200
 +Options[upsvolts]: gauge, nopercent, growright
 +YLegend[upsvolts]: ups volts
 +ShortLegend[upsvolts]: VAC
 +LegendI[upsvolts]: Utility Voltage;
 +LegendO[upsvolts]: Output Voltage;
 +Title[upsvolts]: UPS Voltage
 +PageTop[upsvolts]: <H1>APC UPS Voltage</H1>
 +
 +Target[upsother]: `/opt/trysrvtool/mrtg/apcups.pl "TIMELEFT,BATTV    :"`
 +MaxBytes[upsother]: 100
 +Options[upsother]: gauge, nopercent, growright
 +YLegend[upsother]: ups others
 +ShortLegend[upsother]: min/vdc
 +LegendI[upsother]: Time Left;
 +LegendO[upsother]: Bat Voltage;
 +Title[upsother]: UPS Others
 +PageTop[upsother]: <H1>APC UPS Others</H1>
 +
 +</file>
 +
 +===== - 啟動 mrtgd =====
 +==== - 確認 /opt/trysrvtool/mrtg 內的 script 要設定可執行 ====
 +<cli>
 +cd /opt/trysrvtool/mrtg
 +chmod a+x *
 +</cli>
 +  * 測試執行兩次 /opt/trysrvtool/mrtg/runmrtg.sh, 第一次會出現一些  Rateup WARNING:..., 第二次應該就不會出現
 +<cli>
 +/opt/trysrvtool/mrtg/runmrtg.sh
 +/opt/trysrvtool/mrtg/runmrtg.sh
 +</cli>
 +
 +==== - 設定每五分鐘執行一次 ====
 +<cli>
 +vi /etc/cron.d/mrtg
 +</cli>
 +<file>
 +*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
 +</file>
 +<cli>
 +service crond restart
 +</cli>
 +
 +
 +==== - 設定透過 web 可以看到結果 ====
 +<cli>
 +vi /etc/httpd/conf.d/mrtg.conf
 +</cli>
 +<file>
 +Alias /mrtg /var/www/mrtg
 +
 +<Location /mrtg>
 +#    Order deny,allow
 +#    Deny from all
 +#    Allow from 127.0.0.1
 +#    Allow from ::1
 +    # Allow from .example.com
 +</Location>
 +</file>
 +
 +<cli>
 +service httpd restart
 +</cli>
 +
 +  * 在 /var/www/mrtg/ 底下產生 index.html
 +<cli>
 +/opt/trysrvtool/mrtg/runindex.sh
 +</cli>
 +
 +
 +{{tag>mrtg snmp cron 安裝 經驗 監控 linux trysrvtool}}