# fluent-plugin-slack [![Build Status](https://travis-ci.org/sowawa/fluent-plugin-slack.svg)](https://travis-ci.org/sowawa/fluent-plugin-slack) # Installation ``` $ fluent-gem install fluent-plugin-slack ``` # Usage (Incoming Webhook) ```apache @type slack webhook_url https://hooks.slack.com/services/XXX/XXX/XXX channel general username sowasowa icon_emoji :ghost: flush_interval 60s ``` ```ruby fluent_logger.post('slack', { :message => 'Hello
World!' }) ``` # Usage (Slackbot) ```apache @type slack slackbot_url https://xxxx.slack.com/services/hooks/slackbot?token=XXXXXXXXX channel general flush_interval 60s ``` ```ruby fluent_logger.post('slack', { :message => 'Hello
World!' }) ``` # Usage (Web API) ```apache @type slack token xoxb-XXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX channel general username sowasowa icon_emoji :ghost: flush_interval 60s ``` ```ruby fluent_logger.post('slack', { :message => 'Hello
World!' }) ``` ### Parameter |parameter|description|default| |---|---|---| |webhook_url|Incoming Webhook URI (Required for Incoming Webhook mode). See https://api.slack.com/incoming-webhooks|| |slackbot_url|Slackbot URI (Required for Slackbot mode). See https://api.slack.com/slackbot. NOTE: most of optional parameters such as `username`, `color`, `icon_emoji`, `icon_url`, and `title` are not available for this mode, but Desktop Notification via Highlight Words works with only this mode|| |token|Token for Web API (Required for Web API mode). See https://api.slack.com/web|| |as_user|post messages as a bot user. See https://api.slack.com/bot-users#post_messages_and_react_to_users. NOTE: This parameter is only enabled if you use the Web API with your bot token. You cannot use both of `username` and `icon_emoji`(`icon_url`) when you set this parameter to `true`.|nil| |username|name of bot|nil| |color|color to use such as `good` or `bad`. See `Color` section of https://api.slack.com/docs/attachments. NOTE: This parameter must **not** be specified to receive Desktop Notification via Mentions in cases of Incoming Webhook and Slack Web API|nil| |icon_emoji|emoji to use as the icon. either of `icon_emoji` or `icon_url` can be specified|nil| |icon_url|url to an image to use as the icon. either of `icon_emoji` or `icon_url` can be specified|nil| |mrkdwn|enable formatting. see https://api.slack.com/docs/formatting|true| |link_names|find and link channel names and usernames. NOTE: This parameter must be `true` to receive Desktop Notification via Mentions in cases of Incoming Webhook and Slack Web API|true| |parse|change how messages are treated. `none` or `full` can be specified. See `Parsing mode` section of https://api.slack.com/docs/formatting|nil| |channel|channel to send messages (without first '#')|| |channel_keys|keys used to format channel. %s will be replaced with value specified by channel_keys if this option is used|nil| |title|title format. %s will be replaced with value specified by title_keys. title is created from the first appeared record on each tag. NOTE: This parameter must **not** be specified to receive Desktop Notification via Mentions in cases of Incoming Webhook and Slack Web API|nil| |title_keys|keys used to format the title|nil| |message|message format. %s will be replaced with value specified by message_keys|%s| |message_keys|keys used to format messages|message| |auto_channels_create|Create channels if not exist. Not available for Incoming Webhook mode (since Incoming Webhook is specific to a channel). A web api `token` for Normal User is required (Bot User can not create channels. See https://api.slack.com/bot-users)|false| |https_proxy|https proxy url such as `https://proxy.foo.bar:443`|nil| |verbose_fallback|Originally, only `title` is used for the fallback which is the message shown on popup if `title` is given. If this option is set to be `true`, messages are also included to the fallback attribute|false| `fluent-plugin-slack` uses `SetTimeKeyMixin` and `SetTagKeyMixin`, so you can also use: |parameter|description|default| |---|---|---| |timezone|timezone such as `Asia/Tokyo`|| |localtime|use localtime as timezone|true| |utc|use utc as timezone|| |time_key|key name for time used in xxx_keys|time| |time_format|time format. This will be formatted with Time#strftime.|%H:%M:%S| |tag_key|key name for tag used in xxx_keys|tag| `fluent-plugin-slack` is a kind of BufferedOutput plugin, so you can also use [Buffer Parameters](http://docs.fluentd.org/articles/out_exec#buffer-parameters). ## FAQ ### Desktop Notification seems not working? Currently, slack.com has following limitations: 1. Desktop Notification via both Highlight Words and Mentions works only with Slackbot Remote Control 2. Desktop Notification via Mentions works for the `text` field if `link_names` parameter is specified in cases of Incoming Webhook and Slack Web API, that is, * Desktop Notification does not work for the `attachments` filed (used in `color` and `title`) * Desktop Notification via Highlight Words does not work for Incoming Webhook and Slack Web API anyway ## ChangeLog See [CHANGELOG.md](CHANGELOG.md) for details. # Contributors - [@sonots](https://github.com/sonots) - [@kenjiskywalker](https://github.com/kenjiskywalker) # Copyright * Copyright:: Copyright (c) 2014- Keisuke SOGAWA * License:: Apache License, Version 2.0