"Yo rabbit, Trixx are for hackers"
ATTENTION:
I am actually deprecating most of this project due to lack of time.
Trixx as it stands right now, consists of 3 componments: web, service and Erlang interop.
I am removing everything except the Erlang interop which is written in Clojure.
The Clojure part seems to be working fine, and can serve as an example to anyone
interested talking to Erlang from the Java via JInterface.
If you want to see what the monitoring interface looked like before I removed it, feel free to fetch it from git history.
If anyone is interested in taking over the project, please fork it.
The goal of Trixx is to build an administration and monitoring tool for RabbitMQ. Trixx consists of 3 componments: Trixx web, Trixx service, and Trixx Erlang.
Trixx Erlang is used to communicate with Erlang nodes to extract RabbitMQ information.
Trixx service returns RabbitMQ information as JSON. Trixx web consumes JSON and renders
the administration interface.
Features of Trixx:
- All the features of rabbitmqctl + more via a web interface
- User authentication
- More coming soon
Since Trixx directly communicates with Erlang nodes, it requires JInterface. Trixx is using Erlang 6.5 at the time of this writing.
To build from source:
ant fetch-deps compile-rabbit-server jar
Note that we've included a specific version of RabbitMQ at this time. Erlang must be
installed so it can be built. RabbitMQ will be built by the compile-rabbit-server target.
To compile rabbit server Python 2.5 or greater must be installed along with simplejson.py.
Then in separate terminals, first run the rabbit server:
ant run-rabbit
Then the trixx server:
ant run-trixx
Open your browser to any of the following urls to incoming JSON:
GET http://localhost:8080/exchanges/:vhost - :vhost is optional, default to "/"
POST http://localhost:8080/exchanges - params: user, password, name, type, vhost, durable
GET http://localhost:8080/queues/:vhost
POST http://localhost:8080/queues - params: user, password, name, vhost, durable
GET http://localhost:8080/bindings/:vhost
GET http://localhost:8080/vhosts
POST http://localhost:8080/vhosts - params: name
GET http://localhost:8080/connections
GET http://localhost:8080/users/:user/permissions - :user is the rabbit user name
GET http://localhost:8080/users PUT http://localhost:8080/users - params: name, vhost, config_permission write_permission, read_permission POST http://localhost:8080/users - params: name, password, vhost, config_permission write_permission, read_permission DELETE http://localhost:8080/users/:user
GET http://localhost:8080/rabbit/status PUT http://localhost:8080/rabbit/start PUT http://localhost:8080/rabbit/stop PUT http://localhost:8080/rabbit/reset
POST http://localhost:8080/sessions/authenticate - parmas: name, password
To run the Ruby Web Management Console:
ant run-www
Navigate to http://localhost:3000/ and login with RabbitMQ user/password.
We are making an effort to ensure that Trixx and its dependencies are java 1.5 compatible. If you are working on Trixx and would like to submit changes back to the core repository, please ensure that your code is 1.5 compatible.
If you have any questions/problems/suggestions with Trixx I can be contacted in the following ways:
Email: aaron.feng.blog@gmail.com Twitter: aaronfeng Blog: leftrightfold.com