Bug 7353

Summary: Errors in mrtg configs: can't get CPU stat info in russian locale
Product: Sisyphus Reporter: Victor Chusovitin <vchusovitin>
Component: mrtgAssignee: Andrei Bulava <abulava>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: mike, oddity
Version: unstable   
Hardware: all   
OS: Linux   

Description Victor Chusovitin 2005-07-12 12:24:30 MSD
For CPU stat MRTG uses perl script /usr/lib/mrtg2/helpers/cpuinfo.pl, which
calls command "sar": `sar -u 1 10 | grep Average`.
But sar's output is defined by LOCALE -- f.e. russian, and filter "|grep
Average" shows NOTHING, because sar says "Среднее"...
Temporary solution: in mrtg.conf I wrote in mrtg.cfg
`LANG=C /usr/lib/mrtg2/helpers/cpuinfo.pl localhost linux`
(but maybe another commands will have the same behaviour).

Steps to Reproduce:
1. sudo /usr/bin/mrtg --user mrtg --group mrtg /etc/mrtg/mrtg.cfg
2.
3.
Actual Results:  
WARNING: Problem with External get '/usr/lib/mrtg2/helpers/cpuinfo.pl localhost
linux':
   Expected a Number for 'in' but got ''
WARNING: Problem with Externale get '/usr/lib/mrtg2/helpers/cpuinfo.pl localhost
linux':
   Expected a Number for 'out' but got ''
ERROR: Target[machine][_IN_] ' $target->[0]{$mode} ' did not eval into defined data
ERROR: Target[machine][_OUT_] ' $target->[0]{$mode} ' did not eval into defined data

Expected Results:  
silent end
Comment 1 Andrei Bulava 2005-07-12 17:08:01 MSD
Есть какие-нибудь возражения против того, чтобы считать приведённый "Temporary
solution" (с заменой LANG=C на LANG=POSIX) способом перманентного исправления
этой ошибки?

А то у меня прямо сходу есть не один, по-настоящему временный, способ:

1) $ LANG=C sudo /usr/bin/mrtg --user mrtg --group mrtg /etc/mrtg/mrtg.cfg

2) $ sudo su - -c '/usr/bin/mrtg --user mrtg --group mrtg /etc/mrtg/mrtg.cfg'

Это известное свойство sudo - сохранять переменные окружения пользователя,
запускающего sudo.

Например, запуск 'sudo /etc/init.d/httpd restart' и последующий анализ
переменных окружения apache вас очень сильно и неприятно удивит.

Так что предлагаемое исправление скорее отодвинет (малоприятное) знакомство
пользователя с sudo. Я сам уже ходил по граблям 'sudo bash', 'sudo mc', пока не
открыл для себя 'su -' и перманентный способ запуска программ через sudo в
окружении root, а не пользователя, запустившего sudo:

$ cat ~/bin/sudo- 
#!/bin/sh

sudo su - -c "$*"
Comment 2 Andrei Bulava 2005-08-23 16:29:17 MSD
Сделаю исправление вместе со следующим релизом mrtg.
Comment 3 Andrei Bulava 2006-02-14 11:43:25 MSK
Fixed in 2.13.2-alt1.