NWトラフィックの監視が取れない
下記環境で対象サーバーへの監視をする際に、NWトラフィックの監視が取れないです。
Network interface discoveryルールは有効ですが、追加NICを識別できないです。
NWトラフィック以外のアイテムは監視が取れています。
【環境】
Zabbix-Server:zabbix5.0
対象サーバ:CentOS7.0 Zabbix-agent2.2 アクティブチェック SELinuxはEnforcing
使用するキー: net.if.in[eth0,] net.if.out[eth0,]
【調査したこと】
対象サーバで
①# zabbix_agentd -t "net.if.out[eth0,]" を実行したら、下記のように値が返ってくる。
net.if.out[eth0,] [u|16158340]
②Zabbix-agentのログファイルに、下記のようなエラーログが出力されている
1871:20210801:072142.722 active check "net.if.out[eth0,]" is not supported
1871:20210801:073542.514 active check "net.if.in[eth0,]" is not supported
色々調べったところSELinuxのモードをpermissiveにしたら、NWのトラフィックは取れるようになった。
Network interface discoveryも追加のNICを認識できて、アイテムを追加してくれました。
しかし、できるだけOSへの変更を加わりたくないので、他に解決方法はありますでしょうか?
(SELinuxにZabbix用のポリシーを作成して、インストールするような記事も見つかりましたが、それを実現するためにはツール「policycoreutils-python」をインストールする必要があるので、できればもやりたくないです。。。)
【質問】
①このような事象が起きる原因は何でしょうか?
②SELinuxのモードを変更したり、ポリシーを追加したりする以外に、対応方法はあるのでしょうか?
TNK - 投稿数: 4769
zabbix_agentdを起動したユーザーのパーミッションの問題でしょ
う。
SELinuxをpermissiveにして値が取得できるのであれば、SELinuxの
ポリシーで制限されているのでしょう。
ポリシーの追加をする際に、簡単に設定するには
policycoreutils-python
などをインストールした方が良いと思います。
詳細は、SELinuxの学習を行ってみてはいかがでしょうか?
cheryl - 投稿数: 7
TNKさん
ご回答ありがとうござます。
現状、対象サーバには制限が掛けていて、新しいツールなどをインストールすることは難しいです。
パーミッションの問題であれば、何か個別にZabbixユーザに対してパーミッションを与える方法はないでしょうか?
【追加情報】対象サーバで、下記コマンドを実施しました。このログの意味がよくわからないです。。。
これはどういう原因で怒られているのでしょうか?
# grep zabbix_agentd /var/log/audit/audit.log
結果の一部を抜粋
type=AVC msg=audit(1628177845.103:6726): avc: denied { read } for pid=10011 comm="zabbix_agentd" name="dev" dev="proc" ino=4026531975 scontext=system_u:system_r:zabbix_agent_t:s0 tcontext=system_u:object_r:proc_net_t:s0 tclass=file
type=SYSCALL msg=audit(1628177845.103:6726): arch=c000003e syscall=2 success=no exit=-13 a0=7fa8e0508e8a a1=0 a2=1b6 a3=0 items=0 ppid=10006 pid=10011 auid=4294967295 uid=501 gid=501 euid=501 suid=501 fsuid=501 egid=501 sgid=501 fsgid=501 tty=(none) ses=4294967295 comm="zabbix_agentd" exe="/usr/sbin/zabbix_agentd" subj=system_u:system_r:zabbix_agent_t:s0 key=(null)
TNK - 投稿数: 4769
SELinuxを学習するか、相談できるようなサポートをしてくれる企
業と契約するなどして、内容を確認してください。
RHEL 7 : SELinux ユーザーおよび管理者のガイド
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7...
RHEL 8 : SELinux の使用
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8...
ログに記載されている通り、proc_net_tというコンテキストのファ
イルの読み込みができないというログです。
Zabbixのソースを見て頂ければわかりますが、Linuxのネットワー
クのI/Oの値の取得は、/proc/net/devなどを参照して取得するよう
になっています。
値が取得できないcherylさんの環境では、SELinuxによって、この
ファイルへのアクセス制限が行われているのです。
checkmodule、semodule_package、semoduleなどのコマンドが実行
できる環境であれば、SELinuxのポリシーの追加はできるかもしれ
ません。
cheryl - 投稿数: 7
【追加質問】
SELinuxの有効により、Zabbix-agentのアクティブチェックがうまく動作しない現象は
Zabbix-agentのバージョンとZabbix-agentがインストールされているサーバのOSのバージョンとは関係あるのでしょうか?
他のZabbix-agentとOSの組み合わせでも監視を取っていますが、NWトラフィックがうまく取れないのが、このlinux7.0/agent2.2の組み合わせだけです。
▼Zabbix-Server:Zabbix5.0
▼すべてのOSのSELinuxがEnforcingで、アクティブチェックで監視している
▼Zabbix-agentとOSのコンビ/NWトラフィック監視の結果
①linux5.0/agent2.0 〇
②linux6.0/agent2.0 〇
③linux7.0/agent2.2 ✖
④linux8.0/agent3.0 〇
TNK - 投稿数: 4769
linux5.0というのは何ですか?
使用しているディストリビューションやバージョンは正確に記載し
てください。
SELinuxを使用されているようですので、RHELかCentOSだと仮定し
ますが、SELinuxのポリシーは、OS自体の更新と同様にポリシーも
更新されています。
最新のポリシーが適用されていれば、Zabbixエージェントのアクセ
スは許可されていたと思います。
Zabbixサーバーを稼働させたり、特殊なアクセス権限が必要な場合
はポリシーの追加を自身で行う必要があります。
Zabbixエージェントで値が取得できないのであれば、OSやインスト
ールされているパッケージを更新せずに古いまま使用していたりし
ないかをご確認ください。
最後に、情報を提供される際には、バージョンの記載も省略せずに
記述されることをお勧めします。
cheryl - 投稿数: 7
TNKさん
ご親切な回答及びご意見ありがとうございます。
ご提示の通り、いろいろな事情があり、NWトラフィックの監視ができていないOSは更新せずに古いまま使用しています。
頂いた回答によりとても勉強になりました。もう少し対応方法を検討します。