-
Notifications
You must be signed in to change notification settings - Fork 353
Example Roles
These examples are for pre 1.4 version and are likely nonworking for version >= 1.4*
This cookbook heavily depends on roles, so that some recipes could detect IP of your node.
For example, when you install logstash::agent
it will automatically search for the IP of the node where logstash_server
role have been applied.
Note: Rabbitmq is optional in here, logstash::server
comes without any message-queue service, so it's up to you to setup one. You can use redis, zeromq, or whatever you prefer. If you have roles with any other message-queue service, please share :)
If you want to use kibana (lusis/chef-kibana) cookbook, recipe will search for elasticsearch_server
role. If you don't need kibana, then this role is optional, logstash::server has an option for installing elasticsearch locally.
Note: Name of roles should be exactly as specified here or else recipe will fail to find it.
{
"name": "elasticsearch_server",
"default_attributes": {
},
"json_class": "Chef::Role",
"run_list": [
"recipe[java]",
"recipe[elasticsearch]"
],
"description": "",
"chef_type": "role",
"override_attributes": {
"java": {
"install_flavor": "openjdk",
"jdk_version": "7"
},
"elasticsearch": {
"cluster_name" : "logstash",
"bootstrap.mlockall" : false
}
}
}
Note: Rabbitmq mgmt_console
parameter is optional, if you have stand-alone rabbitmq node, this might be helpful to you.
{
"name": "logstash_server",
"default_attributes": {},
"json_class": "Chef::Role",
"run_list": [
"recipe[logstash::server]",
"recipe[kibana]"
],
"description": "",
"chef_type": "role",
"override_attributes": {
"rabbitmq": {
"mgmt_console": true
},
"logstash": {
"install_rabbitmq": true,
"server": {
"enable_embedded_es": false,
"inputs": [ {
"rabbitmq": {
"type": "direct",
"host": "127.0.0.1",
"exchange": "logstash-exchange",
"key": "logstash-key",
"exclusive": false,
"durable": false,
"auto_delete": false
}
} ]
}
}
}
}
In here beaver is used as a client for logstash. Beaver is written in python, so you don't need install java as logstash::agent
requires. Feel free to provide your example of logstash::agent
.
Note: supervisor_gid
is set to adm, this option is for Ubuntu only. Ubuntu using special group for reading logs. In Redhat you'd probably want to use wheel, or add group for readings logs, if you don't want to run client as root.
{
"name": "logstash_client",
"default_attributes": {},
"json_class": "Chef::Role",
"run_list": [
"recipe[logstash::beaver]"
],
"description": "",
"chef_type": "role",
"override_attributes": {
"logstash": {
"supervisor_gid" : "adm",
"beaver": {
"inputs": [
{
"file": {
"path": [
"/var/log/*log"
],
"type": "syslog",
"tags": [
"sys"
]
}
}
],
"outputs": [
{
"rabbitmq": {
"exchange_type": "direct",
"exchange": "logstash-exchange"
}
}
]
}
}
}
}
- Roman Gorodeckij ([email protected])