ラベル Zabbix の投稿を表示しています。 すべての投稿を表示
ラベル Zabbix の投稿を表示しています。 すべての投稿を表示

2021年10月19日火曜日

OpenWrtにZabbix Agentを入れてZabbix Serverから監視する

ZabbixサーバにOpenWrtを追加したので手順をメモ


Zabbix Serverは5.0 LTS


■Zabbix Agentインストール

OpenWrtにログイン後【システム】>【Software】から【Zabbix-agentd】をダウンロードする

【abbix-extra-mac80211】と【zabbix-extra-network】と【zabbix-extra-wifi】はagentdの追加パッケージの様なのでついでにインストールした

wifiのはいらなかったかな

agentのバージョンは5.0.7-3なのでZabbix Serverのバージョンが違えば使えないかな


■設定ファイル修正

次に OpenWrtにSSHでログインして設定ファイルを編集する

# vim /etc/zabbix_agentd.conf

Server= <Zabbix ServerのIP>

ServerActive=<Zabbix ServerのIP>

Hostname=<Agent側のホスト名>

※OpenWrtの初期ホスト名は【OpenWrt】


■FWルール追加

このままだとPortが空いてないのでiptablesでルールを追加する

# iptables -A INPUT -p tcp --dport 10050 -j ACCEPT -s <Zabbix ServerのIP>



■Zabbix Serverホスト追加

後はZabbix Server側にホストを追加すればいい

グループは【Linux Servers】でインターフェースは【エージェント】としてOpenWrtのIPアドレスを指定

しばらくすればステータスが有効になって各種グラフの数値が取得できる



問題なく稼働しているし、速度もそれなりに出ているものの、XG Firewallに比べれば機能に劣るし、GUIで簡単に管理できる機能も少なく感じる


いっそのことOpenWrtを入れたNanoPi R4Sを予備に回して、Ubuntuマシンに組みまえたLIVA ZにOpensense入れてメインマシンに使って見ようかとも思うが、そうするとUbuntuを入れるマシンが足りなくなるので、別途小型のベアボーンでも欲しくなるな

2020年12月28日月曜日

Zabbix5.0でのVMware ESXi6.7の監視

 以前から設定しようと思いつつ放置していたESXiの監視をZabbixに追加することに


バージョンはそれぞれ以下の通り

Zabbix 5.0.2

VMware ESXi 6.7.0


今回はESXi側のsnmpの設定はせず、Zabbix側の設定で監視を行う


はじめにzabbix_server.confに設定を追記する

$ sudo vim /etc/zabbix/zabbix_server.conf

以下追記(コメントアウトしているものを解除して書き換えるのが面倒だった)

StartVMwareCollectors=1

VMwareFrequency=60

VMwarePerfFrequency=60

VMwareCacheSize=8M

VMwareTimeout=10


StartVMwareCollectorsの値はZabbixの公式ドキュメント上ではESXiもしくはvCenterの1倍以上2倍以下なので、1でも2でもいいか


追記したらzabbixを再起動する

$ sudo systemctl restart zabbix-server.service


次にブラウザでZabbixへログインしてホストの設定を追加していく

【設定】>【ホスト】>【ホストの作成】にて監視したいESXiの情報を入力

【ホスト名】 任意

【グループ名】 Hypevisors

【インターフェース】 <ESXiのIPアドレス> (ポート番号は初期値


【テンプレート】タブへ移動して以下2つを選択する

Template VM VMware

Template VM VMware Hypervisor


【マクロ】タブへ移動して以下3つのマクロを入力して【更新】ボタンでホスト情報を登録する

{$USERNAME}           <ESXiへのユーザ名>

{$PASSWORD}          <ESXIへのログインパスワード>

{$URL}                          https://<ESXiのIPアドレス>/sdk



小一時間ほど経つとホストの一覧に別途ESXiのホスト名を持ったホストが自動作成される

自宅のESXiはホスト名は特に設定していないため、【localhost.localdomain】で表示されている



ひとまずCPUとメモリの使用率のグラフが欲しいので、自動生成されたホストの設定を開いて【グラフ】タブから以下の情報を作成する

・CPU usageグラフ

 localhost.localdomain:CPU usage

・memoryグラフ

  localhost.localdomain: Total memory

 localhost.localdomain: Used Memory



これでCPU使用率とメモリ使用率のグラフが生成できた




VM台数や他のデータも取れるものの、今の状況ではそこまで必要ないのでこれだけで済ましておく

pingによる監視も動いているし、ESXi上のVM(仮想ルータ)はそれぞれsnmpでデータを撮っているので問題はないかな

2020年5月26日火曜日

Zabbix 5.0 へのsnmpホスト登録(標準MIBのみ)

Zabbixが構築できたので自宅のNW機器を登録していく

厳密に管理するわけではないので、MIBは【標準MIB】のみで【Read Only】、community nameは【public】で統一して設定する

設定対象は以下の4機種
NGFW:Sophos XG Firewall Home Edition(ESXi上)
FW: Deciso OPNsense(ESXi上)
L2SW: Netgear GS310TP
無線AP:Netgear WAC505-10000S

ESXiは少しコマンド打つ必要があるのでまた別の機会に回す



■Sophos XG Firewall Home Edition
ログインしたら【システム】>【管理】>【SNMP】から以下の設定を行う
有効化してしまえば後の値は適当でいい
【SNMPエージェントを有効化する】のチェックを入れる
【名前】任意
【位置情報】任意
【連絡担当者】任意
【マネージャポート】162(初期値)


次に画面下の【コミュニティ】を設定するため【追加】を押して設定画面へ移る
【名前】public #community name
【IPアドレス】192.168.1.10 #Zabbixサーバ
【プロトコルバージョン】v2c
【トラップサポート】v2c


■Deciso OPNsense
初期設定ではsnmpが有効ではなくpingも通らないため、その設定も併せて行う
ログインしたら【システム】>【ファームウェア】>【プラグイン】から【os-net-snmp】をインストールする
右側の【+】でインストールしたら再度ログインし直して有効化

次に【サービス】>【Net-SNMP】からsnmpの設定を行う
【Enable SNMP Service】チェックを入れる
【SNMP Community】public #community name
【SNMP Location】任意
【Layer 3 Visibility】チェックを入れる


Zabbixサーバと疎通できるようにFWルールを追加する
【ファイアウォール】>【ルール】>【フローティング】にて
【送信元】LANネット
【送信先】このファイアウォール
としてICMPとUDP161(SNMP)の許可ルールを設定する
最初はLAN側に設定してうまくいかなかったが、フローティング側に設定するんだったのか



■Netgear GS310TP
ログインしたら【システム】>【SNMP】>【SNMPv1/v2】>【コミュニティ設定】から以下の設定を行う
【管理ステーションIP】192.168.1.10 #Zabbixサーバ
【管理ステーションIPマスク】255.255.255.240 #/28
【コミュニティ文字列】public #community name
【アクセスモード】Read Only
【状態】有効


SNMP Trapの設定もついでに追加
【システム】>【SNMP】>【SNMPv1/v2】>【Trap設定】から以下の設定を行う
【受信者IP】192.168.1.10 #Zabbixサーバ
【バージョン】SNMPv2
【コミュニティ文字列】public #community name
【状態】有効



■Netgear WAC505-10000S
ログインしたら【Management】>【Mantenance】>【Remote Management】から以下の設定を行う
【SNMP】Enableのラジオボタンを有効化
【read-Only Community Name】public #初期値
【IP Address (to receive traps)】192.168.1.10 #Zabbixサーバ
【Trap Port】162 #初期値

有効化してIP入れるだけなのでこれが一番設定が簡単だった


■Zabbix 5.0 (raspbian上)
Zabbix側にホストの追加を行う
ログインして【設定】>【ホスト】>【ホストの作成】から以下の設定を行う

・ホストタブ
【ホスト名】任意
【グループ】Templates/Network Devices
【インターフェース】初期値を削除してsnmpを追加して監視対象機器のIPアドレスを指定


・テンプレートタブ
【新規のテンプレートをリンク】Template Net Network Generic Device SNMPv2

・マクロタブ
【マクロ】{$SNMP_COMMUNITY}
【値】public



該当機種分同じ作業を繰り返して登録し、ある程度時間が経過するとSNMPが有効化されて値が取得される
これで死活監視や各機器のインターフェーストラフィック量が見やすくなるので、グラフの表示とかをまた調整しよう

2020年5月18日月曜日

Raspbian Buster LiteへZabbix 5.0 LTSのインストール

Ubuntu18.04へZabbix 4.0 LTSを入れたものの、OPNsenseを導入した影響でESXiのリソースが心も解くなったので、Zabbixのインストール先を変更する必要が出てきた

ちょうど5/12にZabbix 5.0 LTSがリリースされたのでそちらをダウンロードすることにした

Sambaサーバに利用しているRaspberry pi 3 B+であればもう少しソフトウェア動かせそうなのと、公式ドキュメントにインストールマニュアルがあったのでそちらを参考にした
DBはUSBメモリにディレクトリを移して容量を確保する
尚、Raspberry piの日本語化はすでに済ましてある


各ソフトウェアのバージョンは以下の通り
    Raspbian Buster Lite
    PostgreSQL 11.7
    Apache 2.4.38
    PHP 7.3.14-1
    Zabbix 5.0 LTS



まずはApacheとPHPとPostgreSQLのインストール
Raspbian BusterはDebina10ベースなので、以下のサイトのDebian10のページを参考にしてコマンドをコピペしていく


■Apacheのインストール
    $ sudo apt -y install apache2


■PHPのインストール
    $ sudo apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

・タイムゾーンの変更
 $ vim /etc/php/7.3/apache2/php.ini
# 960行目:コメント解除しタイムゾーン設定
    date.timezone = "Asia/Tokyo"


■PostgreSQLのインストール
    $ sudo apt -y install postgresql

■PostgreSQLのデータディレクトリ変更
    ・フォルダ作成と権限変更
    $ sudo mkdir /mnt/usb/pgdata
    $ sudo chmod go-rwx /mnt/usb/pgdata
    $ sudo chown postgres:postgres /mnt/usb/pgdata

    ・DB初期化
     ユーザpostgresにログインして初期化コマンド叩いてユーザpostgresからログアウト
    $ sudo -s -u postgres
    $ /usr/lib/postgresql/11/bin/initdb -D /mnt/usb/pgdata
    $ exit

    ・設定ファイル書き換え
    $ sudo vim /etc/postgresql/10/main/postgresql.conf
     該当箇所を以下の通り書き換え
    data_directory = '/var/lib/postgresql/11/main' # use data in another directory
        
    data_directory = '/mnt/usb/pgdata' # use data in another directory

    ・postgesqlの再起動
    $ sudo /etc/init.d/postgresql stop
    $ sudo /etc/init.d/postgresql start


■Zabbixのインストール
    ・リポジトリ更新
    $ wget https://repo.zabbix.com/zabbix/5.0/raspbian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
    $sudo dpkg -i zabbix-release_5.0-1+buster_all.deb
    $ sudo apt -y update

    ・パッケージインストール
    $ sudo apt -y install zabbix-server-pgsql zabbix-frontend-php php7.3-pgsql zabbix-apache-conf zabbix-agent

    ・DB作成
    $ sudo -u postgres createuser --pwprompt zabbix
        #パスワードは任意で設定
    $ sudo -u postgres createdb -O zabbix zabbix

    ・初期スキーマとデータのインポート
    zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

    ・Zabbixサーバの構成変更
 $ sudo vim /etc/zabbix/zabbix_server.conf
        #以下コメントアウトして追記
    DBPassword=(任意の値、後で使う)

    ・Zabbixサーバーとエージェントプロセスを開始
    $sudo systemctl restart zabbix-server zabbix-agent apache2
    $sudo systemctl enable zabbix-server zabbix-agent apache2



無事インストールが完了したらブラウザでIPアドレス/zabbixにてログイインする
問題なく表示されたら【Next Step】で次へ


インストール情報が出てくるので問題なければ【Next Step】で次へ


PostgreSQLへの接続情報を入れる欄には上で作成したパスワードを入力して【Next Step】で次へ


Zabbixサーバの情報を登録する
空欄でも可能だがとりあえずNameを【Zabbix】として【Next Step】で次へ


登録情報の確認画面
問題なければ【Next Step】で次へ



正常に設定完了された画面が表示されたら【Finish】で初期設定終了


ログイン画面に遷移したら初期のログインIDとパスワードでログイン


ログインした状態
GUIの表示が4.0LTSと変わってメニューが上から左に移っている


このままだと英語表記なので左下の【User setting】から【Language】を日本語に変更する


これで一通りの設定は完了
今度こそ自宅NW機器のsnmp設定を始めていこう

2020年4月30日木曜日

Ubuntu 18.04 LTSにPostgreSQL 10とZabbix 4.0 LTSのインストール

自宅のNW機器などを監視したくてESXiの空いているリソースを利用してZabbixを建てることに

OSはUbuntu 18.04 LTS
20.04 LTSが出たばかりだけどひとまずドキュメントが揃っているこちらで

データベースは個人的に使ってみたかっただけなのでPostgreSQLを採用

とりあえずOSは公式からイメージファイルをダウンロードして1CPU 2GBくらいでESXi上にサーバ作成

事前に以下サイトを参照して必要なものをインストールしておく


※参考サイト
server-world Ubuntu_18.04

■Apache
$ sudo apt -y install apache2

■PHP
$ sudo apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

■タイムゾーン変更
$ sudo vim /etc/php/7.2/apache2/php.ini

#以下修正
date.timezone = "Asia/Tokyo"

■DB PostgreSQL
$ sudo apt -y install postgresql


■OSのタイムゾーン変更
$ sudo timedatectl set-timezone Asia/Tokyo



Zabbixのインストール自体は公式が便利なサイトを作っているので参照
OSや利用するソフトウェアとバージョンを選択すると必要なコマンドが下に表示される

Download and install Zabbix

■Zabbixのリポジトリ追加
$ sudo wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
$ sudo dpkg -i zabbix-release_4.0-3+bionic_all.deb
$ sudo apt -y update

■Zabbix Serverとagentのインストール
$ sudo apt -y install zabbix-server-pgsql zabbix-frontend-php php7.2-pgsql zabbix-agent

■Zabbix用DB作成
$ sudo -u postgres createuser --pwprompt zabbix
$ sudo -u postgres createdb -O zabbix zabbix

■初期スキーマとデータのインポート
$ sudo  zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

■作成したDBへのログインPW設定
$ sudo vim /etc/zabbix/zabbix_server.conf

#以下修正
DBPassword=(任意の値 後で使う)

■Zabbixのタイムゾーン変更 該当箇所コメント解除して追記
$ sudo vim /etc/zabbix/apache.conf

php_value date.timezone Asia/Tokyo

■再読み込みと有効化
$ sudo systemctl restart zabbix-server zabbix-agent apache2

$ sudo systemctl enable zabbix-server zabbix-agent apache2


ここからはWebブラウザで操作
以下作成したサーバIP+ /zabbixでアクセスする
今回は192.168.1.14で作成したので以下
192.168.1.14/zabbix

画面が表示されたら【Next Step】から次へ
zabbix1


インストールされたパッケージのステータス確認なので問題なければ次へ
zabbix2


利用するDB情報
ユーザ名はZabbix、PWは上で作成したものを入力
zabbix3


Host名やポーと設定など
特に不要なら初期値のままで名前は任意に設定
zabbix4


 これで初期設定は終わったので【Finish】で再読み込み
zabbix5


ログイン画面が表示される
初期のユーザ名はadmin
PWはzabbixに設定されている
zabbix6


ログインすると英語表記のままだが、基本的な項目はこれで表示された
zabbix7



日本語化するためにubuntuにsshで繋ぎ直して以下を設定する

$ sudo localedef -f UTF-8 -i ja_JP ja_JP
$ sudo service zabbix-server restart
$ sudo service apache2 reload

再度zabbixにログインして右上の【profile】を開いて【Language】から【Japanese (ja_JP)】を選択して保存する

これで画面表記も日本語化された
後は監視する各エージェントの設定をやっていこう
zabbix8