2016-11-13 6 views
0

우분투 16.04에서 MRTG 2.17.4를 테스트하고 있습니다. rrdtool을 사용하여 데이터를 기록하도록 구성했습니다. /etc/mrtg.cfg에 "Interval : 1"이 있습니다. 나는 /etc/cron.d/mrtg에서 크론 작업으로 편집 :MRTG 및/또는 rrdtool - 1 분 간격이 작동하지 않음

*/1 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*WorkDir' /etc/mrtg.cfg | awk '{ print $NF }')" ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg --debug="time,log" 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi 

문제 해결을 돕기 위해 "로그인 시간을"나는 디버그 옵션을 추가 있습니다. 내 /var/log/mrtg/mrtg.log에는 데이터가 예상대로 1 분마다 기록되지만 매분마다 처리량을 계산하지는 않습니다. 대신 5 분마다 실행합니다. 다른 시간 동안, 그것은 단지 "got ???/???"을 말한다.

--time: prog start Sat Nov 12 21:54:01 2016 
--time: loop start Sat Nov 12 21:54:01 2016 
--time: snmp read start Sat Nov 12 21:54:01 2016 
--time: target loop start Sat Nov 12 21:54:01 2016 
--log: RRDs::tune(/var/mrtg/192.168.1.40_24.rrd -a ds0:125000000 -a ds1:125000000 -d ds0:COUNTER -d ds1:COUNTER) 
--log: RRDs::update(/var/mrtg/192.168.1.40_24.rrd, '1479012841:171337092:172912456') 
--log: got: ???/??? 
--time: prog start Sat Nov 12 21:55:01 2016 
--time: loop start Sat Nov 12 21:55:01 2016 
--time: snmp read start Sat Nov 12 21:55:01 2016 
--time: target loop start Sat Nov 12 21:55:01 2016 
--log: RRDs::tune(/var/mrtg/192.168.1.40_24.rrd -a ds0:125000000 -a ds1:125000000 -d ds0:COUNTER -d ds1:COUNTER) 
--log: RRDs::update(/var/mrtg/192.168.1.40_24.rrd, '1479012901:171686542:173262414') 
--log: got: 5804.75277777778/5813.21944444444 
--time: prog start Sat Nov 12 21:56:02 2016 
--time: loop start Sat Nov 12 21:56:02 2016 
--time: snmp read start Sat Nov 12 21:56:02 2016 
--time: target loop start Sat Nov 12 21:56:02 2016 
--log: RRDs::tune(/var/mrtg/192.168.1.40_24.rrd -a ds0:125000000 -a ds1:125000000 -d ds0:COUNTER -d ds1:COUNTER) 
--log: RRDs::update(/var/mrtg/192.168.1.40_24.rrd, '1479012962:172034542:173610922') 
--log: got: ???/??? 
--time: prog start Sat Nov 12 21:57:01 2016 
--time: loop start Sat Nov 12 21:57:01 2016 
--time: snmp read start Sat Nov 12 21:57:01 2016 
--time: target loop start Sat Nov 12 21:57:01 2016 
--log: RRDs::tune(/var/mrtg/192.168.1.40_24.rrd -a ds0:125000000 -a ds1:125000000 -d ds0:COUNTER -d ds1:COUNTER) 
--log: RRDs::update(/var/mrtg/192.168.1.40_24.rrd, '1479013021:172376742:173953630') 
--log: got: ???/??? 
--time: prog start Sat Nov 12 21:58:01 2016 
--time: loop start Sat Nov 12 21:58:01 2016 
--time: snmp read start Sat Nov 12 21:58:01 2016 
--time: target loop start Sat Nov 12 21:58:01 2016 
--log: RRDs::tune(/var/mrtg/192.168.1.40_24.rrd -a ds0:125000000 -a ds1:125000000 -d ds0:COUNTER -d ds1:COUNTER) 
--log: RRDs::update(/var/mrtg/192.168.1.40_24.rrd, '1479013081:172724742:174302138') 
--log: got: ???/??? 
--time: prog start Sat Nov 12 21:59:01 2016 
--time: loop start Sat Nov 12 21:59:01 2016 
--time: snmp read start Sat Nov 12 21:59:01 2016 
--time: target loop start Sat Nov 12 21:59:01 2016 
--log: RRDs::tune(/var/mrtg/192.168.1.40_24.rrd -a ds0:125000000 -a ds1:125000000 -d ds0:COUNTER -d ds1:COUNTER) 
--log: RRDs::update(/var/mrtg/192.168.1.40_24.rrd, '1479013141:173077092:174654996') 
--log: got: ???/??? 
--time: prog start Sat Nov 12 22:00:02 2016 
--time: loop start Sat Nov 12 22:00:02 2016 
--time: snmp read start Sat Nov 12 22:00:02 2016 
--time: target loop start Sat Nov 12 22:00:02 2016 
--log: RRDs::tune(/var/mrtg/192.168.1.40_24.rrd -a ds0:125000000 -a ds1:125000000 -d ds0:COUNTER -d ds1:COUNTER) 
--log: RRDs::update(/var/mrtg/192.168.1.40_24.rrd, '1479013202:173426542:175004954') 
--log: got: 5781.22263205829/5789.66200182149 
--time: prog start Sat Nov 12 22:01:01 2016 
--time: loop start Sat Nov 12 22:01:01 2016 
--time: snmp read start Sat Nov 12 22:01:01 2016 
--time: target loop start Sat Nov 12 22:01:01 2016 
--log: RRDs::tune(/var/mrtg/192.168.1.40_24.rrd -a ds0:125000000 -a ds1:125000000 -d ds0:COUNTER -d ds1:COUNTER) 
--log: RRDs::update(/var/mrtg/192.168.1.40_24.rrd, '1479013261:173768742:175347662') 
--log: got: ???/??? 

매분마다 속도를 계산하지는 않지만 걱정하지는 않습니다.하지만 데이터가 rrd 데이터베이스에 저장되어야합니다. 하지만 rrdtool 가져 오기를 시도하면 5 분 동안의 데이터가 계속 표시됩니다. 어디에서 잘못 했습니까?

rrdtool fetch 192.168.1.40_24.rrd AVERAGE -a -s -1h -r 1m -a 
          ds0     ds1 

1479010500: 1.0150000000e+04 1.0158466667e+04 
1479010800: 1.0150000000e+04 1.0158466667e+04 
1479011100: 1.0145166667e+04 1.0153661556e+04 
1479011400: 1.0021447006e+04 1.0029884972e+04 
1479011700: 5.8127796610e+03 5.8212468060e+03 
1479012000: 5.7859754098e+03 5.7944147796e+03 
1479: 5.8089454941e+03 5.8174389793e+03 
1479012600: 5.8006990960e+03 5.8091662411e+03 
1479012900: 5.8047527778e+03 5.8132194444e+03 
1479013200: 5.7812226321e+03 5.7896620018e+03 
1479013500: 5.7946912568e+03 5.8031847421e+03 
1479013800: 5.8049794444e+03 5.8134465895e+03 
1479014100: -nan -nan 

고마워요! Difan

+0

정답 아래에있는 체크 박스를 클릭하십시오! – Questionmark

답변

1

RRT 파일에서 MRTG 구성 파일과 rrdtool info의 출력을 보는 것이 도움이 될 수 있습니다.

그러나 원래 RRD 파일을 5 분 간격으로 만든 다음 나중에 1 분 간격으로 변경 한 것 같습니다. 이렇게하면 MRTG는 RRD 파일을 다시 만들지 않지만 1 분마다 데이터를 수집하도록 변경됩니다. Mrtg는 RRD가 생성 된 후에 수정 된 경우에만 RRD의 MaxBytes를 변경할 수 있습니다. 다른 설정 (RRDRowCount, Interval)은 초기 생성시에만 사용할 수 있으며 이후에 MRTG cfg 파일에서 변경하면 RRD 파일이 변경되지 않습니다.

RRD 파일에 rrdtool info을 사용하는 경우 5 분 (300 초)의 단계 크기가 있음을 알 수 있습니다. 이를 변경하는 유일한 방법은 RRD 파일 (기록 데이터 손실)을 삭제하고 MRTG가 cfg 파일에 지정된 60 초 간격으로 다시 만들도록 허용하는 것입니다.

중요한 5 분 RRD 파일에 중요한 과거 데이터가 많이 있어야한다면이 데이터를 XML로 덤프하고 새 RRD를 다시 작성할 수있는 타사 유틸리티가 있지만 작업은 다음과 같습니다. bit complex. rrdmigrate 또는 rrdmerge을 찾으십시오. 최신 RRDtool에는이 영역에서 몇 가지 기능이 있습니다.

+0

당신은 천재입니다. 고맙습니다! –

+0

@DifanZhao - 이것이 올바른 대답이라면, 정확함을 표시하고 +1을주세요. (나는 대답을 더 얻습니다. 대답은 다른 사람들을 도울 수 있습니다) –

+0

죄송합니다. 스택 오버플로. 당신이 저에게 답변을 준 후에 실제로 +1을주었습니다. 그러나 충분한 게시물이없는 새로운 사용자이기 때문에, 내 upvote는 계산에 포함되지 않습니다 ... 더 나은 평판없이 게시물을 보는 사람은 내 문제를 확실히 해결 했으므로 upvote하십시오! 감사! –