Running Graphite WebApp on Windows
January 2, 2013, with 11 commentsIn my previous blog post I wrote about how to make Graphite monitoring system run on Windows.
Coming with Graphite (respectively the Carbon component), the Graphite WebApp is availalable to view monitoring information.
This application is completely cross-platform, so it doesn’t need any adoptions to the Windows operating system.
It only requires certain third party components to be available on the system:
- Install Python 2.7 (as mentioned in the other blog post)
- Install PyPi (as mentioned in the other blog post)
- Install PythonGTK+ (for Cairo graphics) from here
- Install Django using a package from here. In my case, I used Django 1.4.2. Drop me a message if Graphite WebApp also works with newer versions of Django.
- Install twisted using:
pip install Twisted
- Install zope.interface using:
pip install zope.interface
The installation itself works just like described in the base Graphite installation post:
-
python check-dependencies.py
-
python setup.py install
You can test Graphite WebApp using Django development tools:
django-admin.py runserver --pythonpath d:\graphite\webapp --settings graphite.settings 0.0.0.0:8080
with the following important parameters:
- d:\graphite\webapp as the path where the Graphite WebApp is stored.
- The –settings parameter is required to let Django set up its database. There are two good postings for this:
Ron Cordell from RelayHealth reported that they run Graphite WebApp in IIS with Helicon Zoo which is available for free here. I didn’t try this and if you should have experience with it, let me know and I’ll add detailed steps for it in this post.
Aktualisiert am February 15, 2013
Carlos schrieb am
February 14, 2013 um 4:11 pmHi,
Thanks for all, I’m trying configure it now
Regards
Mike schrieb am
April 14, 2014 um 5:46 pmWhen I start my Apache after following all the instructions, I get the following error. any ideas?
mod_wsgi (pid=3456): Exception occurred processing WSGI script ‘C:\\graphite\\conf\\graphite.wsgi’.
Traceback (most recent call last):
File “C:\\graphite\\conf\\graphite.wsgi”, line 4, in
from graphite.wsgi import application
File “C:\\graphite\\webapp\\graphite\\wsgi.py”, line 12, in
from graphite.logger import log
File “C:\\graphite\\webapp\\graphite\\logger.py”, line 95, in
log = GraphiteLogger() # import-shared logger instance
File “C:\\graphite\\webapp\\graphite\\logger.py”, line 41, in __init__
level = logging.INFO,
File “C:\\graphite\\webapp\\graphite\\logger.py”, line 63, in _config_logger
log_file = os.path.join(settings.LOG_DIR, log_file_name)
File “C:\\Python27\\lib\\site-packages\\django\\conf\\__init__.py”, line 54, in __getattr__
self._setup(name)
File “C:\\Python27\\lib\\site-packages\\django\\conf\\__init__.py”, line 49, in _setup
self._wrapped = Settings(settings_module)
File “C:\\Python27\\lib\\site-packages\\django\\conf\\__init__.py”, line 128, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File “C:\\Python27\\lib\\site-packages\\django\\utils\\importlib.py”, line 40, in import_module
__import__(name)
File “C:\\graphite\\webapp\\graphite\\settings.py”, line 172, in
import whisper
File “C:\\Python27\\lib\\site-packages\\whisper.py”, line 47, in
libc = ctypes.CDLL(libc_name)
File “C:\\Python27\\Lib\\ctypes\\__init__.py”, line 365, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
Mike schrieb am
April 14, 2014 um 10:57 pmBy the way, the DLL that it can’t load is called msvcr90.dll. I did a bit of googling and installed the redist package and that didn’t fix it so I’m not sure what to do next. I assume I need to copy the three DLLs and the manifest somewhere but I’m not sure if I need to copy them to the Python or Apache installation and where under that?
Mike schrieb am
April 14, 2014 um 11:24 pmI copied the three DLLs and the manifest file to a folder named Microsoft.VC90.CRT in the Python installation and then added this to my wsgi.py: sys.path.append(“C:\Python27\Microsoft.VC90.CRT”)
Still not enough. It gets the same error trying to find the DLL that I pointed it to. I’m not sure what to try next.
stephan schrieb am
April 15, 2014 um 6:55 amthis problem must be WSGI specific. Running Graphite WebApp from the console works like a charm.
When you’ve got a solution, I’d be more than happy to link to your site or to post it here!
Kaycie schrieb am
August 14, 2014 um 11:28 pmI’m greutfal you made the post. It’s cleared the air for me.
Mike schrieb am
April 15, 2014 um 4:14 pmI’m curious. Have you gotten Graphite to work on a Windows 7 64-bit machine with daily updated patches? Also, when I installed the redist stuff, since I didn’t have Visual Studio v2008 (too old), it stuck the files in C:\Windows\WinSxS under a bunch of sub-directories. I had to do a lot of surgery to find them and the manifest file. Depending on this ancient stuff is a real problem.
It seems that the issues I’m having may be due to the fact that all the dependencies in this Python oriented world are very old. When will Graphite move to Python 3.3 or beyond on 64-bit?
I’m thinking that overall, Graphite will not run on a modern Windows install. I’m moving on to other things unless you have a suggestion you feel confident about.
buffalo schrieb am
January 24, 2015 um 10:56 amWhen I python check-dependencies.py on windows 8, I get the following error. any ideas?
[OPTIONAL] Unable to import the ‘python-rrdtool’ module,this is required for reading RRD.
thanks
fastzhong schrieb am
June 2, 2015 um 6:52 amOn windows, the path is not correct by default, “pip setup.py install” gives me the error: ValueError: path ‘/opt/graphite/webapp’ cannot be absolute
where to set it?
fastzhong schrieb am
June 2, 2015 um 11:10 amok, python install.py –help install would give the answer
fastzhong schrieb am
June 2, 2015 um 11:12 amafter installation, i have another problem with this:
django-admin.py runserver –pythonpath d:\graphite\webapp –settings graphite.settings 0.0.0.0:8080
Where is the graphite.settings? I copy from local.settings, but i still have an error:
no such table: auth_user