2014-09-19 3 views
0

Я пытаюсь добавить плагин MongoDB в munin. Я последовал за это установить плагин:Статистика Mongo не отображается на munin

sudo apt-get install git munin-node 
git clone git://github.com/erh/mongo-munin.git /home/ubuntu/mongo-munin 
sudo ln -sf /home/ubuntu/mongo-munin/mongo_btree /etc/munin/plugins/mongo_btree 
sudo ln -sf /home/ubuntu/mongo-munin/mongo_conn /etc/munin/plugins/mongo_conn 
sudo ln -sf /home/ubuntu/mongo-munin/mongo_lock /etc/munin/plugins/mongo_lock 
sudo ln -sf /home/ubuntu/mongo-munin/mongo_mem /etc/munin/plugins/mongo_mem 
sudo ln -sf /home/ubuntu/mongo-munin/mongo_ops /etc/munin/plugins/mongo_ops 
sudo service munin-node restart 

(от https://ivan-site.com/2013/06/monitoring-mongodb-in-munin-on-ubuntu-1304)

Но ничего не было отправлено на сервер Munin (для Монго только, все другие даты с сервера в порядке на Munin).

Тогда я нашел там ошибка, когда подножка плагин:

# sudo -u munin python /usr/share/munin/plugins/mongo_ops 
Traceback (most recent call last): 
    File "/usr/share/munin/plugins/mongo_ops", line 56, in <module> 
    doData() 
    File "/usr/share/munin/plugins/mongo_ops", line 33, in doData 
    ss = getServerStatus() 
    File "/usr/share/munin/plugins/mongo_ops", line 28, in getServerStatus 
    raw = urllib2.urlopen(req).read() 
    File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 400, in open 
    response = self._open(req, data) 
    File "/usr/lib/python2.7/urllib2.py", line 418, in _open 
    '_open', req) 
    File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 1207, in http_open 
    return self.do_open(httplib.HTTPConnection, req) 
    File "/usr/lib/python2.7/urllib2.py", line 1177, in do_open 
    raise URLError(err) 
urllib2.URLError: <urlopen error [Errno 111] Connection refused> 

Я проверил этот вопрос: Munin Mongodb Plugin Not Showing. . .?, но проблема не то же самое, я бегу pyhton 2, как показано в выход выше:

File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen 

И так, плагины являются активными:

# munin-node-configure | grep "mongo" 
mongo_btree    | yes | 
mongo_conn     | yes | 
mongo_lock     | yes | 
mongo_mem     | yes | 
mongo_ops     | yes | 

Это разрешение от Монго? Может быть, мне нужно настроить пользователя для Munin? У вас есть идея, как это исправить?

+0

Вы скопировали плагины в '/ usr/share/munin/plugins' и связали их там от'/etc/munin/plugins'? –

+0

Да, плагины находятся в '/ usr/share/munin/plugins' и simlink для'/etc/munin/plugins': 'mongo_btree ->/usr/share/munin/plugins/mongo_btree'' mongo_conn ->/usr/share/munin/plugins/mongo_conn' 'mongo_lock ->/usr/share/munin/plugins/mongo_lock'' mongo_mem ->/usr/share/munin/plugins/mongo_mem' 'mongo_ops ->/usr/share/munin/plugins/mongo_ops' –

+0

Я отредактировал мой вопрос, как сейчас, плагины активны, но ошибка python остается. –

ответ

1

ОК, так что сначала - те плагины были написаны ДЛИННЫМ временем назад и не обновлялись через несколько лет, поэтому они могут или не могут работать в этом пункте. Во-вторых, они используют HTTP console MongoDB для сбора данных. Начиная с этого момента defaults to disabled он может вообще не работать для вашего экземпляра (и обычно не рекомендуется для производственных систем - если вы его запустили, вы должны отключить его).

EDIT: После чуть более проверки, плагины требуют больше, чем на консоли, они требуют REST interface быть включен, и это определенно отключена по умолчанию, и снова не рекомендуется для производства.

Наконец, плагины жестко закодированы для подключения к порту 28017 (порт по умолчанию для MongoDB +1000), поэтому, если вы настроили порт MongoDB, вам необходимо вручную настроить каждый плагин для подключения к правой порт.

Самый простой способ проверить все это - указать браузер на хост на порту 28017 (http://hostame/28017) или любой другой соответствующий порт и посмотреть, можете ли вы получить доступ к консоли.

Update

Я раздвоенный плагины Элиота, чтобы увидеть, как трудно было бы портировать pymongo, снимая зависимость от REST API, и мне удалось сделать это довольно легко (без поддержки Идента пока). Вы можете найти эту версию здесь же команды установки и тестирования за страницу вы перешли по ссылке работал для меня:

https://github.com/comerford/mongo-munin

Как выясняется, что изменения в serverStatus() command, так как плагины были написаны означает, что некоторые из них больше не работает как есть с текущей версией MongoDB, поэтому мне пришлось вернуться и исправить их для 2.4 и более поздних версий (это вместе с новой зависимостью pymongo указано в README).

+0

Спасибо, Адам, вы знаете еще один плагин Munin для Mongo? Этот старый вариант предложен в [Mongo Doc] (http://docs.mongodb.org/ecosystem/tools/munin) :( –

+1

Я реорганизовал (в основном) плагины в вилке, чтобы использовать pymongo вместо REST API и обновил ответ. Я еще немного подшучу над ним, чтобы добавить auth и, возможно, некоторые другие показатели, а затем пинг Элиота о слиянии двух. –

+0

Большое спасибо! Очень полезно. ваша вилка добавит базовое руководство по установке и плагин для контроля количества документов. Если вы считаете, что это может быть хорошим дополнением :) –

 Смежные вопросы

  • Нет связанных вопросов^_^