真剣 は、Pythonで記述され、Nagiosと互換性のあるオープンソースのコンピューターおよびネットワーク監視フレームワークです。 Shinkenは、Linux、Unix、WindowsなどのPythonアプリケーションを実行できるすべてのオペレーティングシステムで使用できます。真剣はJeanGabesによって書かれました 新しいNagiosアーキテクチャの概念実証として使用されましたが、Nagiosの作成者によって却下され、Nagiosとの互換性を維持する独立したネットワークおよびシステム監視ツールになりました。
このチュートリアルでは、Shinkenをソースからインストールし、Linuxホストを監視システムに追加する方法を説明します。真剣サーバーと監視対象ホストのオペレーティングシステムとしてUbuntu16.04XenialXerusを使用します。
真剣はPythonフレームワークであり、pipを使用してインストールすることも、ソースからインストールすることもできます。このステップでは、Shinkenをソースからインストールします。
真剣のインストールを開始する前に完了する必要のあるタスクがいくつかあります。
新しいPythonパッケージをいくつかインストールし、「shinken」という名前のLinuxユーザーを作成します。
sudo apt-get install python-setuptools python-pip python-pycurl
useradd -m -s /bin/bash shinken
GitHubリポジトリからShinkenソースをダウンロードします:
git clone https://github.com/naparuba/shinken.git
cd shinken/
次に、以下のコマンドを使用してShinkenをインストールします。
git checkout 2.4.3
python setup.py install
次に、より良い結果を得るには、ubuntuリポジトリから「python-cherrypy3」をインストールする必要があります:
sudo apt-get install python-cherrypy3
これでShinkenがインストールされました。次に、Shinkenを追加して、起動時に開始し、開始します。
update-rc.d shinken defaults
systemctl start shinken
Webui2は、shinken.ioから入手できるShinkenWebインターフェイスです。 Sshinken webui2をインストールする最も簡単な方法は、 shinkenを使用することです。 CLIコマンド(真剣ユーザーとして実行する必要があります)。
真剣ユーザーにログインします:
su - shinken
真剣構成ファイルを初期化する-このコマンドは、新しい構成.shinken.iniを作成します:
shinken --init
そして、次の真剣CLIコマンドを使用してwebui2をインストールします。
shinken install webui2
Webui2がインストールされていますが、MongoDBとpipを含む別のpythonパッケージをインストールする必要があります。ルートとして以下のコマンドを実行します:
sudo apt-get install mongodb
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8
次に、shinkenディレクトリに移動し、「broker-master.cfg」ファイルを編集して新しいwebui2モジュールを追加します。
cd /etc/shinken/brokers/
vim broker-master.cfg
40行目のモジュール内に新しいオプションを追加します:
modules webui2
ファイルを保存してエディタを終了します。
次に、contactsディレクトリに移動し、管理者設定のファイル「admin.cfg」を編集します。
cd /etc/shinken/contacts/
vim admin.cfg
以下に示す値を変更します:
contact_name admin # Username 'admin'
password yourpass # Pass 'mypass'
保存して終了します。
このステップでは、NagiosプラグインといくつかのPerlモジュールをインストールします。次に、shinken.ioから追加のshinkenパッケージをインストールして、監視を実行します。
Perlモジュールのビルドとインストールに必要なNagios-pluginsとcpanminusをインストールします:
sudo apt-get install nagios-plugins* cpanminus
cpanmコマンドを使用してこれらのPerlモジュールをインストールします:
cpanm Net::SNMP
cpanm Time::HiRes
cpanm DBI
次に、utils.pmファイルの新しいリンクを作成してディレクトリを変更し、Log_File_Healthの新しいディレクトリを作成します。
chmod u+s /usr/lib/nagios/plugins/check_icmp
ln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/
mkdir -p /var/log/rhosts/
touch /var/log/rhosts/remote-hosts.log
次に、真剣パッケージをインストールします ssh およびlinux-snmp shinken.ioからSSHおよびSNMPソースを監視する場合:
su - shinken
shinken install ssh
shinken install linux-snmp
IPアドレス192.168.1.121とホスト名「host-one」のUbuntu16.04サーバーを使用して監視される新しいLinuxホストを追加します。
Linuxホストに接続します-1つ:
ssh [email protected]
Ubuntuリポジトリからsnmpおよびsnmpdパッケージをインストールします:
sudo apt-get install snmp snmpd
次に、設定ファイル「snmpd.conf」をvimで編集します:
vim /etc/snmp/snmpd.conf
15行目のコメントと17行目のコメント解除:
#agentAddress udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:161
行51と53にコメントを付けてから、以下に新しい行構成を追加します。
#rocommunity mypass default -V systemonly
#rocommunity6 mypass default -V systemonly
rocommunity mypass
保存して終了します。
次に、 snmpdを開始します systemctlコマンドを使用したサービス:
systemctl start snmpd
真剣サーバーに移動し、「hosts」ディレクトリに新しいファイルを作成して新しいホストを定義します。
cd /etc/shinken/hosts/
vim host-one.cfg
以下に構成を貼り付けます:
ホスト{使用する一般的なホスト、LinuxベースのSNMP、SSH
contact_groups管理者
HOST_NAMEホストオン
アドレス192.168.1.121
_SNMPCOMMUNITY MYPASS#SNMPを定義する
define host{
use generic-host,linux-snmp,ssh
contact_groups admins
host_name host-one
address 192.168.1.121
_SNMPCOMMUNITY mypass # SNMP Pass Config on snmpd.conf
}
保存して終了します。
真剣サーバーのSNMP構成を編集します:
vim /etc/shinken/resource.d/snmp.cfg
'public'を'mypass'に変更します-クライアントホストのsnmpd構成ファイルで使用したものと同じパスワードである必要があります-1つ。
$SNMPCOMMUNITYREAD$=mypass
保存して終了します。
次に、両方のサーバーを再起動します-Shinkenサーバーと監視対象のLinuxホスト:
reboot
新しいLinuxホストがShinkenサーバーに正常に追加されました。
ポート7677でShinkenwebui2にアクセスします(URLのIPをIPに置き換えます):
http://192.168.1.120:7767
ユーザーadminでログインします およびパスワード(admin.cfg構成ファイルで設定したもの)。
Webui2の真剣ダッシュボード。
2台のサーバーはShinkenで監視されています。
linux-snmpで監視されているすべてのサービスを一覧表示します。
すべてのホストとサービスのステータス。
-NTPサーバーの問題
NTPでこのエラーが発生した場合。
TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server)
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )
この問題を解決するには、すべてのLinuxホストにntpをインストールします。
sudo apt-get install ntp ntpdate
NTP構成を編集します:
vim /etc/ntp.conf
すべてのプールにコメントを付けて、次のように置き換えます:
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
pool 0.id.pool.ntp.org
pool 1.asia.pool.ntp.org
pool 0.asia.pool.ntp.org
次に、restrict内に新しい行を追加します:
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict 192.168.1.120 #shinken server IP address
restrict ::1
注 :192.168.1.120はShinkenサーバーのIPアドレスです。
保存して終了します。
ntpを起動し、Shinkenダッシュボードを確認します:
ntpd
-問題check_netint.plが見つかりません
ソースをgithubリポジトリからshinkenlibディレクトリにダウンロードします:
cd /var/lib/shinken/libexec/
wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.pl
chmod +x check_netint.pl
chown shinken:shinken check_netint.pl
-NetworkUsageの問題
エラーメッセージがあります:
ERROR : Unknown interface eth\d+
ネットワークインターフェースを確認し、linux-snmpテンプレートを編集します。
私のUbuntuサーバーでは、ネットワークインターフェイスは「enp0s8」であり、eth0ではないため、このエラーが発生しました。
linux-snmpテンプレートパックをvimで編集します:
vim /etc/shinken/packs/linux-snmp/templates.cfg
ネットワークインターフェイスを24行目に追加します:
_NET_IFACES eth\d+|em\d+|enp0s8
保存して終了します。
- http://shinken.readthedocs.io/en/latest/
- http://www.roblayton.com/search/label/monitoring