##0.記事の経緯
絶対忘れるため、メモ用。
勿体無いついでに公開
##1.Zabbixとは
ZabbixとはOSSで利用できる監視ソフトウェアのこと。
監視ソフトウェアの中でも、自由度が非常に高く無料で利用できるため、人気が高い。
無駄にオプション料金をとる商用ソフトウェアと比較して、かなり安価に高度な監視を組み込むことができるが、自由度の高さを引き換えに、異常に構築が面倒。
##2. Zabbixで監視できること
Zabbixでは以下の監視が可能
- 死活監視(ICMP監視)
- ステータス監視
- ログ監視
- 閾値監視
- サービス監視(プロセス監視)
なお、上記の監視にアクション、スクリプト 実行、メール通知などが可能
正直いくらでも拡張ができるため、アプリケーション層の内部的な処理についても監視可能(だと思う...)
そもそもZabbix-agentが優秀なので、上記のインフラの基本的な監視は問題なくできる。
##3.優秀とはいえども、困るものは困る
最近・・・とはいえないが、Zabbix5.0になった。しかし、日本語版の情報は 2.2くらいで止まっている。
有志による掲示板や、フォーラムがあるので、なんとかなっているが、実際は5.0くらいになるとほぼ日本語の情報がない。
今関わっている案件では5.0だったので、古い情報があてにならなかったところが多い。
そういった状況だったので、古い情報だけでは苦戦も多く、タイトル通りrootでagentを実行しようとしたが、2.2や3.0の情報だけでは、実行ができなかった。
##4.rootで実行する理由
そもそもrootでagentを実行する必要があるのか、という点だけど、ログ監視をする場合、経験上linuxでは大概syslogの監視組み込む場合が多いが、syslogは基本的にはrootでしか読み取ることができない。
また、アプリケーションのログの中にはrootや特定のサービスアカウントでしか読み取りできないログも存在する。(ほぼ権限変更できると思うが・・・)
いずれにしもrootで実行する方法は理解しておくと便利。セキュリティ上は危険だけど。。。
##5.設定方法
###使用している環境
- ZabbixServer OS:CentOS8
- Zabbix-Server:5.0.4
- ZabbixAgent OS:CentOS7
- Zabbix-agent:5.0.4
Zabbix-agentをインストールしたサーバから/etc/zabbix/zabbix-agentd.conf
をviで以下のように編集する
#AllowRoot=0
#↓追記
AllowRoot=1
上記はrootで実行を許可しているだけなので、実際にrootで実行する設定をサービスファイルに書き込む必要がある。
zabbix-agentd.conf設定完了後は/usr/lib/systemd/system/zabbix-agent.service
をviで
修正する。
#User=zabbixを修正
User=root
#Group=zabbixを修正
Group=root
設定後、以下を実行
systemctl daemon-reload
systemctl restart zabbix-agent
完了後はps -ef |grep "zabbix_agent"
を実行し、rootで起動されていること確認する。
これだけで、zabbix-agentはrootで起動する。
あとはsyslogの権限周りのこともあるが、ログ監視となるため、別記事に記載しようと思う
(調べれば出てくるので、不要かな。。。)