ZABBIX1.6フロントエンドのバグ?
こんにちは、お世話になっています。
version1.6にて、ZABBIXフロントエンドにアクセスした場合にメインメニューが見えない、ログインが出来ないという事象がありました。
サーバ環境の設定を思いつく限りで設定しなおしていたのですが、どうも改善されないのでソースコードを追いかけてみました。
対象コードはメインメニューを作成している"include/page_header.php"です。
361-372行にてメインメニューを作成しているようです。
<code>
else{
if(isset($deny)) continue;
$class = 'horizontal_menu_n';
$menu_url = get_profile('web.menu.'.$label.'.last',false);
if(!$menu_url)
$menu_url = $sub['pages'][$sub['default_page_id']]['url'];
}
array_push($main_menu_row, new CCol(new CLink($sub['label'], $menu_url, 'highlight'),$class));
</code>
上記にて$denyが作成されていた場合には当該メニュー作成処理をスキップするようです。
"$deny"がセットされている265-288行を見てみました。
<code>
foreach($ZBX_MENU as $label=>$sub){
// Check permissions for main menu
unset($deny);
if(!defined('ZBX_PAGE_NO_AUTHERIZATION')){
if(isset($sub['user_type'])){
if($USER_DETAILS['type'] < $sub['user_type'])
$deny = true;
}
if(isset($sub['node_perm'])){
if(0 == count(get_accessible_nodes_by_user($USER_DETAILS,$sub['node_perm']))){
$deny = true;
}
}
if($label=='login'){
$deny = true;
/* if(isset($USER_DETAILS['sessionid']))
$sub['label'] = S_LOGOUT;
else
unset($deny);
*/
}
}
</code>
注視すべきは280行目に"$label"に"login"が入っていた時に"$deny"がセットされる処理です。
続いて"$label"をforeach文にて生成している"$ZBX_MENU"を設定している250-259行を見てみます。
<code>
'login'=>array(
'label' => S_LOGIN,
'default_page_id' => 0,
'forse_disable_subnodes'=> true,
'pages'=>array(
array('url'=>'index.php',
'sub_pages'=>array('profile.php')
)
)
)
</code>
上記を見ますと、"$ZBX_MENU"のラベルには常に"login"が設定されています。
つまり、処理上は"$deny"がセットされずメインメニューが作成されないこととなってしまうようです。
ひとまず281行目において"$deny"をセットしている行をコメントアウトしてみました。
<code>
// $deny = true;
</code>
上記にてメインメニューの表示、ログインが可能となりました。
上記事象はフロントエンドのバグと見ているのですが、果たしてどうなのか、ご意見いただければと思います。
takehide - 投稿数: 2
こんにちは、はじめまして。
私もversion1.6を使用しようと考えており、現在Serverのインストールまではこぎつけました。
その際、ZABBIXフロントエンドへはログインできました。
ログインが出来ないっていうは、ユーザー名/パスワードを入力してもNGということでしょうか。
kimura - 投稿数: 18
こんにちは。
私がインストールした時には
・Admin、guestでログインできない
・メインメニューが表示されない
以上の状態でした。
先の投稿のように修正しましたら動いたのですが、takehide様の環境では動いたのでしたら当方の設定ミスによるものなのでしょうか。
(同現象が起こった方がいらっしゃいましたらご意見いただければと思います。)
因みにサーバはUbuntuを利用しています。
ZABBIXServer、ZABBIXAgent共に1.6を同サーバにインストールした状態で使用している際に起きた現象でした。
takehide - 投稿数: 2
こんにちは
Adminはパスワードを入力してますよね?
(以前まではいらないようですが、1.6は必要なようでした)
私はCentOS5 でZABBIX Serverのみのインストールでした。
今後同サーバーにAgentも入れてみる予定ですが
その時にどうなるかですね。
参考にならなくてすいません。
kimura - 投稿数: 18
こんにちは、お世話になっています。
Adminのパスワードについても初期パスワードを入力したのですが、やはりログインできませんでした。
先日、改めて入れ直したら上記のエラーは発生しなくなりました。
ひととおり無事に動作するようですので、しばらくこのまま使ってみようと思っていますが、前回の導入時での原因は不明のままです。
また同じようなことが発生しましたら改めてご報告したいと思います。
今回はありがとうございました。
※ZABBIX1.6以降は非ログイン状態ではメインメニューは出ない仕様のようですね。
1.4.xまでは非ログイン時でもメインメニューが出力されていたので、何か不具合があるのではないかと勘違いをしていました。
お騒がせしまして申し訳ないです。