Zabbix Version: 7.0.21
Redmimne Version: 6.1.0.stable
やること(ZabbixとRedmine連携)
Docker ContainerにZabbixとRedmineを立ててZabbixからRESTでRedmineにチケットを起票します
Zabbixはこちらで立てたZabbixを使います 今回立てるのはRedmineだけです
Zabbixにはチケット管理機能がありません
Zabbixはバージョン7.0.21時点でチケット管理の機能がありません 機器/ネットワークの故障を検知しますが復旧するまでの対応を管理するにはエクセルや他のチケットシステムなどを使う運用になるのではと思います
Zabbixの連携相手のチケットシステムは何がいいか調べる
GeminiのおすすめはRedmineかBacklog
エクセル管理も個人的には好きですがZabbixの連携相手のチケットシステムとして何が適当か調べてみます GeminiのおすすめはRedmineかBacklogのようです 課題管理システム(チケットシステム)という言い回しは分かりやすくていいと思いました
Zabbixのドキュメントを確認するとたくさんあります
Zabbix7.0のドキュメントを確認すると
TypeがWebhookで用意されている連携相手は以下の製品になるようです 勉強不足かもですが半分以上知りません Redmineはありました ちなみにWebhook以外の連携先としてEmailやSMSも用意されています
brevis.one
Discord
Express.ms messenger
Github issues
GLPi
iLert
iTop
Jira
Jira Service Desk
ManageEngine ServiceDesk
Mattermost
Microsoft Teams
Opsgenie
OTRS
Pagerduty
Pushover
Redmine
Rocket.Chat
ServiceNow
SIGNL4
Slack
SolarWinds
SysAid
Telegram
TOPdesk
VictorOps
Zammad
Zendesk
Redmineにします
GeminiのおすすめかつZabbixとしてもWebhookが用意されているRedmineにしてみます
RedmineをDocker Containerに立てる
こちらの手順を参考にして
docker runしてみます
% docker run -d -p 8000:3000 --name some-redmine redmine
Unable to find image 'redmine:latest' locally
latest: Pulling from library/redmine
fc8c15d311e9: Pull complete
98d2d24b7195: Pull complete
cc66f81097e2: Pull complete
195d2ff19182: Pull complete
3183fdb7fc98: Pull complete
08d46ba2a1fd: Pull complete
0374a2c629f4: Pull complete
55550f05e9da: Pull complete
649c227e5276: Pull complete
2ae15a201602: Pull complete
a6d5524debc3: Pull complete
9ded26294acd: Pull complete
abf44f0cf00e: Pull complete
Digest: sha256:86aabc73c774144df6c51612f7a4fc9e6c3fa430e9cbabc5f1a509b47d2b67df
Status: Downloaded newer image for redmine:latest
cb119b7074b1489d26df601be8b108520b3e096e2fa0d4b1c74dd1f4bb6809d2
http://localhost:8000 にアクセスして以下画面が表示されました
Redmineの設定
ログイン
画面右上の[ログイン]をクリックするとログイン画面が表示されました 初期パスワードは admin/admin らしいので入力してログインしてみます
パスワード変更
初期ログインでパスワードの変更を求められました
個人設定
パスワードを変更後で個人設定画面が表示されました 真面目に使うなら二要素認証は必須かなと思います
バージョン確認
画面左上の[管理]をクリックし画面左下の[(i)情報]をクリックしてバージョンを確認したところ Redmine 6.1.0.stable になっていました
プロジェクトの作成
ここからは以下の2つのサイトなどの手順を参考に進めてみます
画面左上の[プロジェクト]をクリックして
画面右上の[(+)新しいプロジェクト]をクリックして名称に LetsGetPartyStarted と入力して[作成]をクリックして作成します
RESTによるWebサービスを有効にする
画面左上の[管理]をクリックして画面左の[設定]をクリックしてAPIタブをクリックして"RESTによるWebサービスを有効にする"をチェックして[保存]をクリックして有効にできたようです
APIアクセスキー
画面左上の[個人設定]をクリックして画面右のAPIアクセスキーの"表示"をクリックするとAPIアクセスキーが表示されます(マスクしています)
APIアクセスキーをコピーして置きます
チケットのステータスの作成(こちらの手順が無いとトラッカーのデフォルトのステータスに何も表示されず保存出来ませんでした)
画面左上の[管理]をクリックして画面左の"チケットのステータス"をクリックして[(+)新しいステータス]をクリックして名称に"DenyAll"を入力して[作成]をクリックして作成されたようです
トラッカーの作成
画面左上の[管理]をクリックして画面左の"トラッカー"をクリックして[(+)新しいトラッカー]をクリックして名称に"BrandnewTracker"と入力してプロジェクトでLetsGetPartyStartedをチェックして[作成]をクリックして作成されたようです
連携の際に利用するトラッカーのIDはURLに数字で含まれるようです 作成されたトラッカーを表示してURLを確認すると1という値が含まれていました
http://localhost:8000/trackers/1/edit
チケットの優先度(こちらを設定しないとSending failed: Request failed with status code 422: ["Priority cannot be blank"] Check debug log for more information.になりました)
画面左上の[管理]をクリックして画面左の"選択肢の値"をクリックしてチケットの優先度の[(+)新しい値]をクリックして名称に"ASAP"と入力してデフォルト値をチェックして[作成]をクリックして作成されたようです
Zabbixの設定
Media typeの有効化
Alert - Media types を選択してNameを redmine で絞り込みます
Redmineをクリックして
表示されたダイアログで
色々入力して[Update]してevent_id, event_nseverity, event_source, event_update_message, event_update_status, event_value, redmine_issue_key, redmine_tracker_id, trigger_idに1を入力してredmine_access_keyにAPIアクセスキーでコピーして置いた値を入力してredmine_projectにプロジェクトの作成で作成した"LetsGetPartyStarted"を入力してredmine_urlにDockerホストのプライベートIPの値とPort( http://192.168.3.69:8000 )を指定して(ここでlocalhostを指定するとZabbixが自身のホストに繋ぎに行って失敗します)zabbix_urlもおそらくプライベートIPの値の方が良いのだろうと思いつつ動けばいいので http://localhost/ を入力してUpdateして
StatusをクリックしてEnabledにしてActionのTestをクリックして
表示されたダイアログで[Test]をクリックしてsuccesfulになったようです
確認
Redmineのマイページを確認するとチケットが増えていることを確認できました(3回Testしています)
Appendix
その他のチケット管理システム
今回はRedimineを試してみましたが世の中的にどういったチケット管理システムが流行っているのか気になったので調べようとしたところGeminiが答えてくれました 用途によって使い分けると良さそうです



















