====== MRTG 安裝與應用 ======
===== Alpine =====
* 安裝套件
apk add mrtg net-snmp
* 設定 snmpd.conf
* 啟動 snmpd 服務
rc-update add snmpd
rc-service snmpd start
===== CentOS =====
==== - 確認是否已經安裝 mrtg 套件 ====
rpm -q mrtg
[docsrv@ed ~]$ rpm -q mrtg
mrtg-2.10.15-1
* 如果沒有安裝, 就執行 yum -y install mrtg 來安裝
===== - 使用 snmpd 來讓 MRTG 監看網路流量 ====
==== - 安裝 snmpd ====
rpm -q net-snmp
[root@pd920 ~]# rpm -q net-snmp
net-snmp-5.1.2-11.EL4.7
* 如果沒有安裝, 就執行 yum -y install net-snmp 來安裝
==== - 設定 snmpd ====
vi /etc/snmp/snmpd.conf
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
service snmpd restart
chkconfig snmpd on
chkconfig --list | grep snmpd
===== - 使用簡單 script 來讓 MRTG 監看硬碟空間, CPU 負載.. ====
* 可直接下載 trysrvtool 使用, 請參考 **[[tech:trysrvtool]]**
===== - 設定 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]] 獲取目前網卡資訊
cd /etc/mrtg
/opt/trysrvtool/mrtg/runcfgmaker.sh
cat localhost.cfg >> mrtg.cfg
vi /etc/mrtg/mrtg.cfg
:
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
Options[_]: growright, bits
:
:
Target[eth1]: 3:public@192.168.11.250
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]: Stats for our eth0:192.168.11.250 Ethernet
#
#
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]: disk_root usage
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]: disk_boot usage
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]: disk_data usage
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]: disk_backup usage
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]: CPU loading
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]: cpuio loading
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]: Memory Usage
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]: M/B temperature
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]: APC UPS temperature
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]: Hard Disk temperature
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]: Hard Disk temperature
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]: SMTP connections
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]: POP3 connections
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]: IMAP connections
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]: mail_queue files
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]: HTTP connections
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]: SSH connections
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]: PostgreSQL connections
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]: MYSQL connections
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]: domain connections
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]: NTP connections
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]: APC UPS Loading
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]: APC UPS Voltage
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]: APC UPS Others
===== - 啟動 mrtgd =====
==== - 確認 /opt/trysrvtool/mrtg 內的 script 要設定可執行 ====
cd /opt/trysrvtool/mrtg
chmod a+x *
* 測試執行兩次 /opt/trysrvtool/mrtg/runmrtg.sh, 第一次會出現一些 Rateup WARNING:..., 第二次應該就不會出現
/opt/trysrvtool/mrtg/runmrtg.sh
/opt/trysrvtool/mrtg/runmrtg.sh
==== - 設定每五分鐘執行一次 ====
vi /etc/cron.d/mrtg
*/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
service crond restart
==== - 設定透過 web 可以看到結果 ====
vi /etc/httpd/conf.d/mrtg.conf
Alias /mrtg /var/www/mrtg
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
# Allow from ::1
# Allow from .example.com
service httpd restart
* 在 /var/www/mrtg/ 底下產生 index.html
/opt/trysrvtool/mrtg/runindex.sh
{{tag>mrtg snmp cron 安裝 經驗 監控 linux trysrvtool}}