Bug 7353 - Errors in mrtg configs: can't get CPU stat info in russian locale
Summary: Errors in mrtg configs: can't get CPU stat info in russian locale
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: mrtg (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Andrei Bulava
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-07-12 12:24 MSD by Victor Chusovitin
Modified: 2006-04-26 13:36 MSD (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.