액세스 페이지 제한

11293 단어 PHPzabbix

개요



Zabbix의 웹 페이지에 앱 담당자나 오퍼레이터가 일부 정보만 열람하고 싶지 않은 경우 소스의 PHP 파일을 편집하여 특정 페이지만 열람할 수 있는 환경을 구축할 수 있다.

환경



CentOS 6.5
zabbix2.2

절차



/usr/share/zabbix配下が、zabbixのドキュメントルートとする。
/usr/share/zabbix配下を/usr/share/monitorへコピーする。

# cd /usr/share
# mkdir monitor
# cp -pr zabbix/* monitor/

PHPファイル(/usr/share/monitor/include/menu.inc.php)を編集する。
隠したいページの配列をコメントアウトする。

# vi /usr/share/monitor/include/menu.inc.php
//                      array(
//                              'url' => 'dashboard.php',
//                              'label' => _('Dashboard'),
//                              'sub_pages' => array('dashconf.php')
//                      ),
//                      array(
//                              'url' => 'overview.php',
//                              'label' => _('Overview')
//                      ),
//                      array(
//                              'url' => 'httpmon.php',
//                              'label' => _('Web'),
//                              'sub_pages' => array('httpdetails.php')
//                      ),
                        array(
                                'url' => 'latest.php',
                                'label' => _('Latest data'),
                                'sub_pages' => array('history.php', 'chart.php')
                        ),
//                      array(
//                              'url' => 'tr_status.php',
//                              'label' => _('Triggers'),
//                              'sub_pages' => array('acknow.php', 'tr_comments.php', 'chart4.php', 'scripts_exec.php')
//                      ),
//                      array(
//                              'url' => 'events.php',
//                              'label' => _('Events'),
//                              'sub_pages' => array('tr_events.php')
//                      ),
                        array(
                                'url' => 'charts.php',
                                'label' => _('Graphs'),
                                'sub_pages' => array('chart2.php', 'chart3.php', 'chart6.php', 'chart7.php')
                ),
                        array(
                                'url' => 'screens.php',
                                'label' => _('Screens'),
                                'sub_pages' => array('slides.php')
                        ),
//                      array(
//                              'url' => 'maps.php',
//                              'label' => _('Maps'),
//                              'sub_pages' => array('map.php')
//                      ),
//                      array(
//                              'url' => 'discovery.php',
//                              'label' => _('Discovery'),
//                              'user_type' => USER_TYPE_ZABBIX_ADMIN
//                      ),
//                      array(
//                              'url' => 'srv_status.php',
//                              'label' => _('IT services'),
//                              'force_disable_all_nodes' => true,
//                              'sub_pages' => array('report3.php', 'chart5.php')
//                      ),
                        array(
                                'url' => 'chart3.php'
                        ),
                        array(
                                'url' => 'imgstore.php'
                        ),
                        array(
                                'url' => 'search.php'
                        ),
                        array(
                                'url' => 'jsrpc.php'
                        )
                )
        ),
//      'cm' => array(
//              'label'                         => _('Inventory'),
//              'user_type'                     => USER_TYPE_ZABBIX_USER,
//              'node_perm'                     => PERM_READ,
//              'default_page_id'       => 0,
//              'pages' => array(
//                      array(
//                              'url' => 'hostinventoriesoverview.php',
//                              'label' => _('Overview')
//                      ),
//                      array(
//                              'url' => 'hostinventories.php',
//                              'label' => _('Hosts')
//                      )
//              )
//      ),
//      'reports' => array(
//              'label'                         => _('Reports'),
//              'user_type'                     => USER_TYPE_ZABBIX_USER,
//              'node_perm'                     => PERM_READ,
//              'default_page_id'       => 0,
//              'pages' => array(
//                      array(
//                              'url' => 'report1.php',
//                              'label' => _('Status of Zabbix'),
//                              'user_type' => USER_TYPE_SUPER_ADMIN
//                      ),
//                      array(
//                              'url' => 'report2.php',
//                              'label' => _('Availability report')
//                      ),
//                      array(
//                              'url' => 'report5.php',
//                              'label' => _('Triggers top 100')
//                      ),
//                      array(
//                              'url' => 'report6.php',
//                              'label' => _('Bar reports'),
//                              'sub_pages' => array('popup_period.php', 'popup_bitem.php', 'chart_bar.php')
//                      ),
//                      array(
//                              'url

monitor用のZabbixページのApacheの設定ファイルを作成する。

# cp -p /etc/httpd/conf.d/zabbix.conf /etc/httpd/conf.d/zabbix-monitor.conf

ファイルを修正します。
# vi /etc/httpd/conf.d/zabbix-monitor.conf
#
# Zabbix monitoring system php web frontend
#

#Alias /zabbix /usr/share/zabbix
Alias /monitor /usr/share/monitor

<Directory "/usr/share/monitor">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    # php_value date.timezone Europe/Riga
</Directory>

<Directory "/usr/share/monitor/conf">
    Order deny,allow
    Deny from all
    <files *.php>
        Order deny,allow
        Deny from all
    </files>
</Directory>

<Directory "/usr/share/monitor/api">
    Order deny,allow
    Deny from all
    <files *.php>
        Order deny,allow
        Deny from all
    </files>
</Directory>

<Directory "/usr/share/monitor/include">
    Order deny,allow
    Deny from all
    <files *.php>
        Order deny,allow
        Deny from all
    </files>
</Directory>

<Directory "/usr/share/monitor/include/classes">
    Order deny,allow
    Deny from all
    <files *.php>
        Order deny,allow
        Deny from all
    </files>
</Directory>

編集後、Apacheを再起動しておきます。
# service httpd restart


뷰어용 사용자, 사용자 그룹을 만듭니다. 다음은 샘플입니다.





여기에서주의해야 할 것은 로그인 후 URL에 "http://Zabbix 서버 IP 주소 "monitor/latest.php"를 지정하는 것입니다.
코멘트 아웃 한 페이지에는 액세스 할 수 없으므로 로그인 후 오류로 출력됩니다.



이것으로 완성입니다.
시청자는 Zabbix에 대한 액세스 권한을 얻었습니다. "http://Zabbix 서버의 IP 주소/monitor'라고 말합시다. 작성한 test 유저로 액세스 해 봅니다.
※ 알고있는 사람은 "http://Zabbix 서버의 IP 주소/zabbix'가 본래의 Zabbix가 액세스하는 장소라고 알고 있으므로, 이쪽도 장소를 바꾸거나, F/W(iptables)나 Apache의 설정으로 액세스 제한을 한다 좋다.



「감시 데이터」아래에 「최신 데이터」, 「그래프」, 「스크린」밖에 없는 것을 확인할 수 있습니다.

좋은 웹페이지 즐겨찾기