はじめに
ユーザグループ、ユーザなどの設定が意外とややこしいZabbixの設定方法を考えました。検証には最新バージョン3.2.3を使用しました。
基礎知識
User
ログインに使用するユーザアカウントのことです。複数人で同じアカウントを使いまわすことも可能ですが、誰がどんな操作をしたか監査をする観点から、今回は個人に紐づけて発行します。
User group
Userのグループ化、Userへの権限の付与のために利用するグループです。1人のユーザ複数のUser groupに所属することが出来、また最低1つのUser groupに所属しないといけません。
Type
Zabbix Super Admin、Zabbix Admin、Zabbix Userの3種類があり、操作できるメニューの数が変わります。大まかな理解では、Zabbix Userはデータの閲覧のみ、Zabbix Adminは閲覧に加えてノードの設定、Zabbix Super Adminではさらにユーザの管理ができると思っておけばよいです。
想定した組織図
アカウント名 | 使用者 | Type | 所属部門 | 役割 |
---|---|---|---|---|
peach | Princess Peach | Zabbix Super Admin | システム管理部 | Zabbix管理者 |
mario | Mario Mario | Zabbix Admin | システム管理部 | ノード追加・削除 |
luigi | Mario Luigi | Zabbix User | システム運用部 | 監視データ閲覧、アラート受信 |
このような3人分のユーザアカウントを作成します。Peachがいわゆる管理者、Marioが監視構築を行う作業者、Luigiが監視データの閲覧やアラート受信をする運用者、のイメージです。特定のノードへのアクセス制限は実施せず、アカウント種別によって認められている操作は全ノードに対して実施できるものとします。ある程度の規模のシステムを管理している会社だと、このような分業体制になっていることが多いのではないでしょうか。これに合わせてUser groupとUserを作っていきます。
User groupの作成
まずは3人が所属するUser groupを作成します。User groupの作り方として、所属する組織(部・グループ・チーム)毎に作る、アクセスするノード毎に作る(Server Admin・Network Admin・DBA)、などの方法もありますが、ずばりオススメは「全ユーザが所属する一つのグループを作る」です。今回はAll usersというグループを作成して全員を所属させます。
さらに追加で2つのグループを作成します。1つはDisabledというユーザグループ、これはデフォルトでありますが、何らかの理由でログインをさせたくないアカウントを所属させます。Zabbixは何故かユーザアカウントごとに有効無効を切り替えることができないため、このような無効にしたいグルーうを予め作成しておき、必要に応じてユーザをこのグループに所属させることでアカウントを無効にします。
もう1つはアラート受信用のグループでです。トリガーに対するメール送信などのアクションはユーザグループ単位で設定されますが、実際の運用場面ではメールを受信したい人は限定されているはずです。そのため、アクション用のユーザグループは全ユーザが所属するグループとは別に作る必要があります。
実際に作ってみたものが、以下となります。まずはUserから。
次にUser groupです。
全員をAll usersに所属させ、ノードへのRead-Write権限をAll usersグループ内で付与しています。All usersグループにだけはPermission設定が必要なことに注意。
Alert mail membersグループはアクションの設定に使い、メール受信をしたい人は追加でこのグループにも所属させます。こちらは権限設定をNoneにしています。
終わりに
ZabbixのUser groupの考え方は分かりにくく、どのように設定すればシンプルで運用が楽になるかを考えていましたが、割といい例が作れたのではないかと思っています。