サーバー監視 · 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 shinkenGitHubリポジトリから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 - shinkenshinken設定ファイルを初期化します - このコマンドは新しい設定.shinken.iniを作成します:
shinken --initそして、このshinken CLIコマンドでwebui2をインストールします:
shinken install webui2Webui2がインストールされましたが、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.conf15行目をコメントアウトし、17行目のコメントを解除します:
#agentAddress udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:16151行目と53行目をコメントアウトし、以下に新しい行の設定を追加します:
#rocommunity mypass default -V systemonly
#rocommunity6 mypass default -V systemonly
rocommunity mypass保存して終了します。
次に、systemctlコマンドでsnmpdサービスを起動します:
systemctl start snmpdShinkenサーバーに移動し、’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に置き換えます):
ユーザーadminとあなたのパスワード(admin.cfg設定ファイルで設定したもの)でログインします。

Webui2のShinkenダッシュボード。

私たちの2つのサーバーが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 ntpdatentp設定を編集します:
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.cfg24行目にネットワークインターフェースを追加します:
_NET_IFACES eth\d+|em\d+|enp0s8保存して終了します。
参考文献
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。