サーバー監視 · 2 min read · Oct 20, 2025

Ubuntu 16.04でのShinkenによるサーバー監視

Shinkenは、Pythonで書かれたオープンソースのコンピュータおよびネットワーク監視フレームワークで、Nagiosと互換性があります。Shinkenは、Linux、Unix、Windowsなど、Pythonアプリケーションを実行できるすべてのオペレーティングシステムで使用できます。Shinkenは、Jean Gabesによって新しいNagiosアーキテクチャの概念実証として書かれましたが、Nagiosの作者によって却下され、Nagiosと互換性を保ちながら独立したネットワークおよびシステム監視ツールとなりました。

このチュートリアルでは、ソースからShinkenをインストールし、監視システムにLinuxホストを追加する方法を示します。Shinkenサーバーと監視対象ホストのオペレーティングシステムとしてUbuntu 16.04 Xenial Xerusを使用します。

ステップ1 - Shinkenサーバーのインストール

ShinkenはPythonフレームワークであり、pipを使用してインストールするか、ソースからインストールできます。このステップでは、ソースからShinkenをインストールします。

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

ステップ2 - Shinken Webui2のインストール

Webui2は、shinken.ioから入手できるShinkenのWebインターフェースです。Shinken Webui2をインストールする最も簡単な方法は、shinken CLIコマンドを使用することです(shinkenユーザーとして実行する必要があります)。

shinkenユーザーにログインします:

su - shinken

shinken設定ファイルを初期化します - このコマンドは新しい設定.shinken.iniを作成します:

shinken --init

そして、このshinken CLIコマンドでwebui2をインストールします:

shinken install webui2

Webui2がインストールされましたが、MongoDBと別のPythonパッケージをpipでインストールする必要があります。以下のコマンドをrootとして実行します:

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設定のために’admin.cfg’ファイルを編集します。

cd /etc/shinken/contacts/  
vim admin.cfg

以下に示す値を変更します:

contact_name    admin       # ユーザー名 'admin'  
password        yourpass    # パス 'mypass'

保存して終了します。

ステップ3 - NagiosプラグインとShinkenパッケージのインストール

このステップでは、NagiosプラグインといくつかのPerlモジュールをインストールします。次に、監視を実行するためにshinken.ioから追加のshinkenパッケージをインストールします。

NagiosプラグインとPerlモジュールのビルドとインストールに必要なcpanminusをインストールします:

sudo apt-get install nagios-plugins* cpanminus

以下のPerlモジュールをcpanmコマンドでインストールします:

cpanm Net::SNMP  
cpanm Time::HiRes  
cpanm DBI

次に、utils.pmファイルの新しいリンクをshinkenディレクトリに作成し、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

次に、shinken.ioからSSHおよびLinux-SNMPの監視用のshinkenパッケージをインストールします:

su - shinken  
shinken install ssh  
shinken install linux-snmp

ステップ4 - 新しいLinuxホスト/host-oneの追加

監視される新しいLinuxホストを追加します。Ubuntu 16.04サーバーでIPアドレス192.168.1.121、ホスト名’host-one’を使用します。

Linuxホスト-oneに接続します:

ssh [email protected]

Ubuntuリポジトリからsnmpおよびsnmpdパッケージをインストールします:

sudo apt-get install snmp snmpd

次に、vimで設定ファイル’snmpd.conf’を編集します:

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

保存して終了します。

次に、systemctlコマンドでsnmpdサービスを起動します:

systemctl start snmpd

Shinkenサーバーに移動し、’hosts’ディレクトリに新しいファイルを作成して新しいホストを定義します。

cd /etc/shinken/hosts/  
vim host-one.cfg

以下の設定を貼り付けます:

define host{  
        use                 generic-host,linux-snmp,ssh  
        contact_groups      admins  
        host_name           host-one  
        address             192.168.1.121  
        _SNMPCOMMUNITY      mypass        # snmpd.confのSNMPパス設定  
    }

保存して終了します。

ShinkenサーバーのSNMP設定を編集します:

vim /etc/shinken/resource.d/snmp.cfg

‘public’を’mypass’に変更します - クライアントホスト-oneのsnmpd設定ファイルで使用したのと同じパスワードでなければなりません。

$SNMPCOMMUNITYREAD$=mypass

保存して終了します。

両方のサーバー - Shinkenサーバーと監視対象のLinuxホストを再起動します:

reboot

新しいLinuxホストがShinkenサーバーに正常に追加されました。

ステップ5 - Shinken Webui2へのアクセス

ポート7677でShinken webui2にアクセスします(URL内のIPを自分のIPに置き換えます):

http://192.168.1.120:7767

ユーザーadminとあなたのパスワード(admin.cfg設定ファイルで設定したもの)でログインします。

Shinkenのログインページ

Webui2のShinkenダッシュボード。

Shinkenの監視ダッシュボード

私たちの2つのサーバーがShinkenで監視されています。

両方のサーバーがShinkenで監視されています

linux-snmpで監視されているすべてのサービスのリスト。

監視されているサービス

すべてのホストとサービスのステータス。

すべてのホストのステータス

ステップ6 - Shinkenに関する一般的な問題

- 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内に新しい行を追加します:

# ローカルユーザーはntpサーバーをより詳細に照会できます。  
restrict 127.0.0.1  
restrict 192.168.1.120 #shinkenサーバーのIPアドレス  
restrict ::1

注意:192.168.1.120はShinkenサーバーのIPアドレスです。

保存して終了します。

ntpを起動し、Shinkenダッシュボードを確認します:

tnpd

- check_netint.plが見つからない問題

shinken libディレクトリにgithubリポジトリからソースをダウンロードします:

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ではないため、このエラーが発生しました。

vimでlinux-snmpテンプレートパックを編集します:

vim /etc/shinken/packs/linux-snmp/templates.cfg

24行目にネットワークインターフェースを追加します:

_NET_IFACES         eth\d+|em\d+|enp0s8

保存して終了します。

参考文献

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。