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 の写真

【質問】
①このような事象が起きる原因は何でしょうか?

zabbix_agentdを起動したユーザーのパーミッションの問題でしょ
う。
SELinuxをpermissiveにして値が取得できるのであれば、SELinuxの
ポリシーで制限されているのでしょう。

②SELinuxのモードを変更したり、ポリシーを追加したりする以外に、対応方法はあるのでしょうか?

ポリシーの追加をする際に、簡単に設定するには

 policycoreutils-python

などをインストールした方が良いと思います。
詳細は、SELinuxの学習を行ってみてはいかがでしょうか?

ユーザー cheryl の写真

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 の写真

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 の写真

【追加質問】
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 の写真

linux5.0というのは何ですか?
使用しているディストリビューションやバージョンは正確に記載し
てください。
SELinuxを使用されているようですので、RHELかCentOSだと仮定し
ますが、SELinuxのポリシーは、OS自体の更新と同様にポリシーも
更新されています。

最新のポリシーが適用されていれば、Zabbixエージェントのアクセ
スは許可されていたと思います。
Zabbixサーバーを稼働させたり、特殊なアクセス権限が必要な場合
はポリシーの追加を自身で行う必要があります。

Zabbixエージェントで値が取得できないのであれば、OSやインスト
ールされているパッケージを更新せずに古いまま使用していたりし
ないかをご確認ください。

最後に、情報を提供される際には、バージョンの記載も省略せずに
記述されることをお勧めします。

ユーザー cheryl の写真

TNKさん

ご親切な回答及びご意見ありがとうございます。

ご提示の通り、いろいろな事情があり、NWトラフィックの監視ができていないOSは更新せずに古いまま使用しています。
頂いた回答によりとても勉強になりました。もう少し対応方法を検討します。