Nagiosは、柔軟で強力な、無料のオープンソースITインフラストラクチャの監視システムで効果的には、Windows、Linux、VMwareおよびUnixのホスト状態、スイッチ、ルータ、およびその他のネットワーク設定を監視することができます。例外が発生したときにホストやサービスの状態たら、アラームが復旧した後、通常のメールやテキストメッセージによって発行され、電子メールやテキストメッセージIT運用スタッフを通知する最初の時間を送信します。Nagiosのシンプルな構造、強力な保守性は、容易な管理とシステムの状態、ネットワークの状態を表示するには、操作担当者、サービスのステータス、ログ、およびその他の異常のためのオプションのWebブラウザベースのインタフェースを提供します。
操作の利点、Nagiosのモード
1、動作モード:データ収集は、C / Sモードであり、ユーザは、監視情報を表示すると、B / Sモードであります
2、利点:
1:ネットワーク監視サービスのステータス(HTTPD、FTP、SSH、MySQLの......)
2:ホストリソースの監視(プロセッサアコード、ディスク使用率......)
3:検出の拡大を達成するために、自分のニーズに応じて、拡張(プラグイン開発)
4:自動ログロール
5:ネットワークホストは、親ホストが開始から検査が下向きで、段階的な検査を可能にする、階層を定義することができます。
6:警戒の状態に基づいて、警告:OK、警告(警告)、クリティカル(キー)、不明(不明)
7:あなたは冗長監視ホストをサポートして実装することができます
8:などのWeb現在のネットワークのステータスを表示するためのインタフェース、通知、問題の歴史、ログファイルを、
二、Nagiosの動作原理
Nagiosが監視サービス機能とホストが、自分の機能のこの部分を含まない、モニタリングの全ては、検出は、プラグインのさまざまによって達成されます。
開始 Nagiosがキューを維持しながら、Nagiosの後、それが自動的にキューにバック状態情報にすべてのプラグイン、サーバーの状態を検出するために、定期的にプラグインを呼び出します、毎回Nagiosは最初のチームから情報を読み取るために開始し、かつ処理しますその結果ウェブで示す状態の後。
Nagiosはサービスの多くは、簡単に状態を監視することができます使用するプラグインの数を提供します。インストールが完了したら、ホームディレクトリのnagiosの下に/ libexecの中でそこに置か Nagiosは、このような、check_diskはプラグインのディスク容量をチェックするためであるとして使用することができ、すべてのプラグインが付属して、check_loadは、CPUの負荷をチェックして、することです。各プラグインは./check_xxx -hを実行することにより、その使用法や機能を表示することができます
三、Nagiosの必要なソフトウェア
LAP環境、ないのmysql
nagios-3.5.1.tar.gz #Nagiosコアファイルは、Nagiosのサービス・ファイルは、プラグインの多くをしなかった、最新のを使用することは推奨されません
nagios-プラグイン-2.1.1.tar.gz #Nagiosは、プラグインを保存するスクリプトやコマンドの
NSCP-0.5.0#は、64ビット、32ビット版に分割した画面を、監視するために使用Nsclient ++、あります
非Nagiosのサーバー、プロキシサーバーのローカルの個人情報を監視するためのNRPE-2.15.tar.gz#プロキシサービス
vautour_style.zip#テーマパック
Nagiosの監視サーバの展開、第四
展開する前に、(あなたは、私たちはLNMPをコンパイル行うために私たちの環境を使用する必要がある場合ZABBIXんできる場所yumを直接インストール)を構築するためにラップ環境を含めて、最も基本的な環境を実行する必要があります
1、依存関係を解決し、ラップ環境をインストールします
[ルート@ localhostの〜]#回転数-ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
[ルートlocalhostの@〜]#yumはすべてをきれい&& yumのリスト
[ルート@ localhostの〜]#yumをインストール-y GCCのglibcのglibc-共通PHP GD GD-develのlibpngのlibmngのlibjpegのzlib
[ルート@ localhostの〜]#yumをインストール-yのhttpd。HTTPDを起動systemctl
2、実行するためにNagiosのユーザーを追加
シェルを使用することはできませんNOLOGIN [ルート@ localhostの〜]#useraddのNagiosは、Nagiosのユーザーがこれを使用します
[ルート@ localhostの〜]#groupaddのnagcmdグループを設立
[ルート@ localhostの〜]#usermodの-G nagcmdのnagiosのnagiosとサブユーザーは、Apacheグループのnagcmdを追加します
[ルート@ localhostの〜]#usermodの-G nagcmdアパッチ
3、Nagiosのコアインストール
[ルート@ localhostの〜]#1は、mkdir Nagiosはこのディレクトリに、すべてのnagios関連のソフトウェアをフォルダを作成します
[ルート@ localhostののnagios]#LSは
nagios-3.5.1.tar.gzのnagios-プラグイン-2.1.1.tar.gz
nagios-4.2.4.tar.gz NRPE-2.15.tar.gz
[ルート@ localhostのののnagios]#タールあるxvのnagios-3.5.1.tar.gz -Cは/ usr / local / srcに/
[ルート@ localhostのののnagios]#のCDは/ usr / local / srcに/のnagios /
[ルート@ localhostのののnagios]#のCDは/ usr / local / srcに/のnagios / nagiosに指定したユーザグループの操作、後に以下の情報が表示されますコンパイル
一般的なオプション:
-------------------------
Nagiosの実行可能ファイル:Nagiosは
Nagiosのユーザー/グループ:Nagiosの、ユーザーに実行するNagiosの#
コマンドのユーザー/グループを:Nagiosは、 nagcmd#の実行ユーザグループ
NO:Perlの組み込み
イベント・ブローカー:はい
$ {接頭辞}をインストールします:は/ usr / local /#Nagiosは、デフォルトでインストールは/ usr / local / Nagiosのに
ロックファイル:$ {接頭辞} /var/nagios.lock
の検索結果をチェックディレクトリ:$ {接頭辞}の/ var /スプール/ checkresults
初期ディレクトリを:/etc/rc.d/init.dの
Apacheのconf.dディレクトリを:設定ファイルディレクトリconf.dの#apache /etc/httpd/conf.d
メールプログラムを:/ binに/メール
ホストをOS:Linuxの-GNU
Webインターフェイスのオプション:
------------------------
HTMLのURLます。http:// localhost /のnagios /#登录地址
CGIのURLます。http:// localhost /のnagios / CGI-binに/
(WAPで使用)トレースルート:
精度のために上記のオプションを確認します。彼らは大丈夫見れば、
種類のメインプログラムやCGIをコンパイルするには「すべてが作ります」。
[ルート@ localhostののnagios]#それは上場廃止ここにそれらのものをインストールしますが、エラーがない場合、実行が完了し、すべての後に作ります
#インストール・初期化します&&インストール-commandmodeを作る&&-config設定をインストール&&インストール-のwebconfを作る作る&& make installを[Nagiosのルート@ localhostの]は、
パラメータのインストール:
//#はビルドは/ usr / local / nagiosには/ usr / local / nagiosに/シェアすなわちnagioswebアクセス復号化されたサイトのインストールディレクトリにインストールします
//インストール-INIT#はビルド/etc/rc.d/init.d/nagios起動スクリプトをインストールします
//インストール-config設定は/ usr / local / nagiosに/ etcにあるインストール設定ファイルを生成する#1のnagiosを作ります
//インストール-commandmode#のNagiosの作業は適切なディレクトリのパーミッションを設定してください
//インストール-のwebconf#Apacheのconf.dディレクトリにNagiosのWeb設定ファイルをインストールします
この時点で、インストールプロセスは終わりました
4、生成されたプレゼンテーションファイル
インストールすると、 makeがインストール世代の共有ディレクトリにアクセスするためのインタフェースであるこのディレクトリを、:
[ルート@ localhostののnagios]#のLSは/ usr / local / nagiosに/共有/
config.inc.phpを画像JS robots.txtのside.php
文脈ヘルプはmain.php RSS-corefeed.phpのSSIを含み
ドキュメントのindex.phpメディアRSS-newsfeed.phpスタイルシート
でメイクインストール・初期化起動スクリプトを生成するとき
[ルート@ localhostのNagiosの]#件のls /etc/init.d/nagios
/etc/init.d/nagios#は事実である/etc/rc.d/init.d/nagios
でメイクインストール、設定、生成Nagiosの関連の設定ファイルを
[ルート@ localhostのNagiosの]#lsのは/ usr / local / nagiosには/ etc /
resource.cfgオブジェクトnagios.cfgにcgi.cfg
#は、インストール後に含めるプラグインソフトウェアを、コンフィギュレーション・ファイルはこのディレクトリに置かれます
resource.cfg:リソースを起動した多くの変数の定義
でメイクインストール-のwebconf 時、それは入れているのwebconf に設定ファイルを/etc/httpd/conf.d/ 以下
[ルート@ localhostのNagiosの]#LSを/etc/httpd/conf.d/nagios.conf
/etc/httpd/conf.d/nagios.conf#のエイリアス内部構成への直接参照
/ usr / local / nagiosに/共有ディレクトリ
5、Nagiosのメインカタログ説明
[ルート@のローカルホストのNagios]#のLLは/ usr / local / Nagiosの/
総容積4
drwxrwxr-X 2のNagios Nagiosの38日付である。8 9 10:24ビン#nagios実行プログラムディレクトリ
drwxrwxr-X 3のNagios Nagiosの130 8月9日10:25など#nagios設定ファイルのディレクトリ、わずか数初期インストール* .cfgファイルの
drwxrwxr-X。2つのNagiosのnagios 6 8 9 10:17のlibexec#越すべてのコマンドを監視し、あなたは、Nagios-プラグインはプラグインのインストールが必要があります必要ですコマンドを確認し、空にインストールされていない
drwxrwxr-Xを2つのNagiosのNagiosのCGIファイルのディレクトリ#nagios 4096 8月9日10時24 sbinに、格納ディレクトリに必要なファイルを外部コマンド
drwxrwxr-Xを10件のnagiosのnagios 257 8月9 10:24株#Nagiosフロントページ
drwxrwxr-X。5つのNagiosのnagios 45. 8日付9つの10:17のvar#ログファイル、PIDファイル
6、Nagiosの設定ファイルを知っています
[ルート@ localhostのののnagios]#のVimの例:/usr/local/nagios/etc/nagios.cfg
og_file =は/ var / log /のnagios / nagios.log#のログの場所
CFG_FILE =の/ etc / Nagiosの/オブジェクト / commands.cfg# このファイルは、コマンドの数を定義します
CFG_FILE =の/ etc / nagiosに/オブジェクト / contacts.cfgの#のカスタム連絡先、連絡方法
CFG_FILE =の/ etc / Nagiosの/オブジェクト / timeperiods.cfg位期間を定義します
CFG_FILE =の/ etc / nagiosに/オブジェクト / templates.cfg番号のテンプレート(連絡先、ホスト、時間)
CFG_FILE =の/ etc / nagiosに/オブジェクト/ localhost.cfg#モニタのネイティブ設定ファイル
CFG_FILE =#の/ etc / Nagiosの/オブジェクト/ windows.cfg #windows 、デフォルトでは監視しません
#CFG_FILE =の/ etc / nagiosに/オブジェクト/ switch.cfg# スイッチルータの監視、デフォルトでは監視しません
#CFG_FILE =の/ etc / nagiosに/オブジェクト/ printer.cfg#のプリンタモニタ、デフォルトでは監視しません
#cfg_dir =の/ etc /のnagios /サーバ#は、 サービスのコレクション(複数回使用)を定義
#1 cfg_dir =の/ etc / Nagiosの/プリンタ位プリンタコレクション(複数回使用)を定義します
#cfg_dir =の/ etc /のnagios / #スイッチ定義交換コレクション(複数回使用)
#cfg_dir =の/ etc / Nagiosの/ルータ#は、 ルートコレクション(複数回使用)を定義
resource_fileに=の/ etc / nagiosに/民間 resource.cfg / リソースプロファイルを含む変数、USER1のの$ $ 変数(パス)など
status_update_interval = 10#1 で更新時間S
log_rotation_method = D#のログローリング、デフォルトの日
service_check_timeout = 60#サービスチェックのタイムアウト
host_check_timeout = 30の#のホストチェックのタイムアウト
event_handler_timeout = 30
notification_timeout = 30
ocsp_timeout = 5
perfdata_timeout = 5
[ルート@ローカルホストのNagios]#1 VIM /usr/local/nagios/etc/cgi.cfg#あるnagios.cfgの優先順位より高い優先順位このプロファイル
main_config_file =例:/usr/local/nagios/etc/nagios.cfg#マスター設定ファイル
physical_html_path =は/ usr / local / nagiosに /株式# 物理パス
url_html_path = / Nagiosの#でURL に続い/ Nagiosのアクセスに
use_authentication = 1つの#の使用認定
use_ssl_authentication = 0#使用されていないSSL
authorized_for_system_information = nagiosadmin#認証されたユーザー
6、テストアクセスは、Apacheを再起動し、IP / Nagiosのアクセス
[ローカルホストのnagios @ルート]#systemctl再起動httpdの
オープンは、ユーザー名とパスワードのポップアップを入力するように求めるメッセージが表示されます
それは見るためにユーザー名とパスワードが必要です Vimの/etc/httpd/conf.d/nagios.confのプロファイルを
[ルート@ localhostのののnagios]#のVimの/etc/httpd/conf.d/nagios.conf
でディレクトリ内のフィールドを持っている認証これらの3つのフィールドが、あなたが使用することができますhtpasswdは、ユーザー名とパスワードを生成します
[ルート@ localhostのののnagios]#htpasswdの -c /usr/local/nagios/etc/htpasswd.users nagiosadmin#-c 作成し、第2のユーザが-cパラメータを使用することはできません追加
新しいパスワードを:
再のタイプの新しい新しいパスワード:
パスワードを追加しますユーザーnagiosadminについて
注意:Nagiosのデフォルトnagiosadminを管理するために、別のユーザー名を使用している場合、対応するプロファイルも改正されなければなりません
[ルート@ localhostのののnagios]#systemctl再起動httpdのApacheの重启
コンフィギュレーション・ファイルをチェックしてください
在nagios的目录下,bin目录下有一个nagios命令,这个命令可以帮助我们对配置文件的检查工作以及指定相关配置文件
[root@localhost Nagios]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
-v=--verify-config 验证配置文件是否有误,着重看到下图亮点就没问题
Total Warnings:0
Total Errors: 0
指定配置文件,以守护进程方式启动
[root@localhost Nagios]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
但是现在还没有做任何深入配置,所以现在只是可以登录而已!
五、安装nagios-plugins插件
为了后面的实验要求,我们点吧mysql客户端安装了
[root@localhost nagios]# yum -y install mysql mysql-devel
Nagios-plugins含有丰富的检测命令插件,安装完成之后放在了/usr/local/Nagios/libexec下面
[root@localhost nagios]# tar -zxvf nagios-plugins-2.1.1.tar.gz -C /usr/local/src/
[root@localhost nagios]# cd /usr/local/src/nagios-plugins-2.1.1/
[root@localhost nagios-plugins-2.1.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
[root@localhost nagios-plugins-2.1.1]# make && make install
[root@localhost nagios-plugins-2.1.1]# ls /usr/local/nagios/libexec/ #可以看到该目录下一句有很多check的命令了
check_apt check_flexlm check_load check_nt check_real check_time
check_breeze check_ftp check_log check_ntp check_rpc check_udp
check_by_ssh check_http check_mailq check_ntp_peer check_sensors check_ups
check_clamd check_icmp check_mrtg check_ntp_time check_simap check_uptime
check_cluster check_ide_smart check_mrtgtraf check_nwstat check_smtp check_users
check_dhcp check_ifoperstatus check_mysql check_oracle check_spop check_wave
check_disk check_ifstatus check_mysql_query check_overcr check_ssh negate
check_disk_smb check_imap check_nagios check_ping check_ssmtp urlize
check_dummy check_ircd check_nntp check_pop check_swap utils.pm
check_file_age check_jabber check_nntps check_procs check_tcp utils.sh
重启nagios服务,检查环境
[root@localhost nagios-plugins-2.1.1]# systemctl restart httpd; /etc/init.d/nagios restart
浏览器测试:登陆之后,点击hosts,可以看到,默认监控的是本机,说明环境没有什么问题
六nagios监控本服务器
配置监控之前,我们需要做一系列的准备工作(指定主配置文件需要加载的配置文件—定义主机—定义服务 –定义监控命令—检查配置文件—启动Nagios)
1、监控本地NFS状态
首先安装nfs
[root@localhost objects]# yum -y install nfs-utils
[root@localhost nagios-plugins-2.1.1]# cd /usr/local/nagios/etc/objects/
[root@localhost objects]# cp localhost.cfg localhost.cfg.bak #备份配置文件
[root@localhost objects]# vim localhost.cfg #在配置文件最后按照模板添加如下内容
define service{
use local-service ; Name of service template to use
host_name localhost
service_description NFS
check_command check_tcp!2049
}
#在使用check命令之前,要确保下/usr/local/nagios/libexec/ 目录下有没有你需要的check命令,如果有,直接调用,如果没有,检测端口来代替,检测格式: check_tcp!端口号
[root@localhost objects]# vim /etc/exports //创建一个共享
/tmp *(rw)
[root@localhost objects]# systemctl restart nfs
[root@localhost objects]# showmount -e 192.168.0.63 //检测NFS目前是否正常
Export list for 192.168.0.63:
/tmp *
检测localhost是否正常启用
[root@localhost objects]# grep cfg_file /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg #localhost默认已经启用了
检测配置文件是否有误
[root@localhost objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings:0
Total Errors: 0
[root@localhost objects]# /etc/init.d/nagios restart #重启nagios服务
网页测试
以及有NFS的监控项了,稍等一会儿他正在检测
NFS以及监控成功,我们测试停到nfs看监控会不会随之变化
[root@localhost libexec]# systemctl stop nfs //再观察这里注意,一般没回立马又显示出来状态,需要一段时间,最好最快的方法就是手动强制刷新,否则你需要等待,强制刷新,点击NFS后有一个Reschedule the next check of this service,强制刷新
七、配置nagios监控远程MySQL数据库状态
【监控任何一台服务器,工作流程是定义主机,定义服务,定义命令】
首先准备一台服务器,ip地址为192.168.204.136 在此服务器上安装msyql 蓝色为在此服务器上操作,黑色为在nagios服务器上操作
[root@localhost ~]# yum -y install mariadb-server mariadb
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# mysql #登录创建一个测试数据库,并授权nagios服务器可以登录
MariaDB [(none)]> create database nagios;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant select on nagios.* to nagios@'192.168.204.128' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
在nagios服务器上配置
现在主配置文件中添加一下两行,用来导入新增的配置文件
[root@localhost ~]# vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg #此文件用来增加远程主机的
cfg_file=/usr/local/nagios/etc/objects/service.cfg #此文件用来定义远程主机监控服务的
[root@localhost ~]# vim /usr/local/nagios/etc/objects/hosts.cfg 创建配置文件
define host{
use linux-server #使用的模板名字
host_name mysql.cn #主机名
address 192.168.204.136 #IP 地址
}
[root@localhost ~]# vim /usr/local/nagios/etc/objects/service.cfg
define service{
use local-service
host_name mysql.cn
service_description MySqlSev
check_commadn check_mysql
}
[root@localhost ~]# vim /usr/local/nagios/etc/objects/commands.cfg #编辑定义命令的配置文件
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagios -p 123456 -d nagios
}
在重启服务之前可以先通过检查命令来看下check_mysql是否可用,也检测下配置的检测命令是否正确
[root@localhost ~]# /usr/local/nagios/libexec/check_mysql -H192.168.204.136 -unagios -p123456 -d nagios
Uptime: 914 Threads: 1 Questions: 6 Slow queries: 0 Opens: 0 Flush tables: 2 Open tables: 26 Queries per second avg: 0.006|Connections=4c;;; Open_files=21;;; Open_tables=26;;; Qcache_free_memory=0;;; Qcache_hits=0c;;; Qcache_inserts=0c;;; Qcache_lowmem_prunes=0c;;; Qcache_not_cached=0c;;; Qcache_queries_in_cache=0;;; Queries=7c;;; Questions=6c;;; Table_locks_waited=0c;;; Threads_connected=1;;; Threads_running=1;;; Uptime=914c;;;
注意:所有的check_command字段中的所使用的命令,必须在command.cfg中定义好才能使用,而command.cfg中的command_line中使用的命令,必须在/usr/local/Nagios/libexec/目录下存在,安装plugins会生成
手动检测command.cfg的命令有效性
注意:服务器要安装了mysql客户端软件,然后再重新编译安装下plugins 才会生成check_mysql yum install mysql mysql-devel
现在重启nagios服务,然后网页上看下是否添加成功
定义监控web服务:
先手动测试下:/usr/local/nagios/libexec/check_tcp -H192.168.0.64 -p 80
[root@localhost objects]# vim hosts.cfg
define host{
use linux-server
host_name xuegod64.cn
address 192.168.0.64
}
##上面已经定义过mysql的主机,此处无需再定义
[root@localhost objects]# vim service.cfg
define service{
use local-service
host_name xuegod64.cn
service_description Nginx
check_command check_nginx
}
[root@localhost objects]# vim commands.cfg
define command{
command_name check_nginx
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 80
}
[root@localhost objects]#/etc/init.d/nagios restart #重启测试监控nginx
八、nrpe插件
8.1nagios监控外部主机私有信息
私有信息,包饭默认的硬盘使用,进程数目,SWAP分区等等
私有信息,就是我需要再本机登录操作登录的
非私有,就可以通过远程的方式
只有监控私有信息的时候,才调用NRPE这个插件来通信
8.2nrpe插件
通过nrpe服务可以添加本地信息的监控,将数据发送到我们nagios服务器
nrpe分两部分组成,一部分是监控机check_nrpr,一部分是被监控机的nrpe守护进程
nagios服务器执行check_nrpe插件并告诉他检查哪个服务,check_nrpe插件通过SSL连接方式联系远程服务器上的NRPE守护进程,NRPE守护进程执行相应的插件完成指定的检测,并返回结果。
8.3nrpe工作原理
nrpe是基于SSL的机制,那么我们需要做的时间就是构建SSL环境,所以需要使用NRPE工作的时候,都需要安装ssl,而且服务端和客户端都需要安装NRPE软件,而我们客户端不需要装nagios服务端
客户端的NRPE安装
1)安装nagios-plugins插件
2)安装nrpe
3)配置我们xinted服务,允许谁来拿数据
4)启动xinetd
5)查看端口是否正常启动
解决依赖,客户端和服务端都需要安装
yum install -y openssl openssl-devel
服务端安装
[root@localhost nagios]# tar xvf nrpe-2.15.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/nrpe-2.15/
[root@localhost nrpe-2.15]# ./configure
[root@localhost nrpe-2.15]# make && make install
[root@localhost nrpe-2.15]# make install-plugin
[root@localhost nrpe-2.15]# make install-daemon
前者安装插件,后者以守护进程来允许
[root@localhost nrpe-2.15]# ls /usr/local/nagios/libexec/check_nrpe
/usr/local/nagios/libexec/check_nrpe #这个命令需要安装nrpe之后才有
客户端安装
[root@localhost src]# useradd -s /sbin/nologin nagios
[root@localhost src]# groupadd nagcmd
[root@localhost src]# usermod -G nagcmd nagios
[root@localhost src]# yum -y install xinetd
[root@localhost src]# tar xvf nagios-plugins-2.1.1.tar.gz
[root@localhost src]# cd nagios-plugins-2.1.1
[root@localhost nagios-plugins-2.1.1]# ./configure
[root@localhost nagios-plugins-2.1.1]# make && make install
[root@localhost src]# tar -zxvf nrpe-2.15.tar.gz
[root@localhost src]# cd nrpe-2.15
[root@localhost nrpe-2.15]# make && make install
[root@localhost nrpe-2.15]# make install-daemon-config #这里是客户端,不用make-install-plugin
[root@localhost nrpe-2.15]# make install-xinetd
[root@localhost nrpe-2.15]# vim /etc/xinetd.d/nrpe
# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 192.168.204.128 #添加nagios服务器地址,徐云63这台机器来连接自己的nrpe服务,多个地址IP地址空格分开
}
[root@localhost nrpe-2.15]# echo "nrpe 5666/tcp #NRPE">>/etc/services #注册端口,向服务器说明我要用5666这个端口,不要把这个端口分配给别人了
注:
nrpe 5666/tcp # NRPE
#/etc/services文件的作用:
#作用1:xinet.d来启动服务时他就会在/etc/services找相应服务对应的端口来启动服务。找不到对应端口,将不启动服务。
#作用2: 显示对应端口对应的协议名。
#例如 iptables -L 不加-n参数, 查看时,把 80转 -> www http
#作用3:查看常用端口
[root@localhost nrpe-2.15]# systemctl restart xinetd #启动服务
[root@localhost nrpe-2.15]# netstat -antup | grep 5666
tcp6 0 0 :::5666 :::* LISTEN 42666/xinetd
配置客户端nrpe命令
[root@localhost nrpe-2.15]# vim /usr/local/nagios/etc/nrpe.cfg
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 38% -c 35% -p /dev/sda1
command[check_sda2]=/usr/local/nagios/libexec/check_disk -w 42% -c 43% -p /dev/sda2
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
#-w为警告 -C为告急 sda2中,我们是指剩余42%
[root@localhost nrpe-2.15]# systemctl restart xinetd
在服务端手动测试下命令是否可用
[root@localhost libexec]# ./check_nrpe -H192.168.204.136
NRPE v2.15
[root@localhost libexec]# /usr/local/nagios/libexec/check_nrpe -H192.168.204.136 -c check_sda1
DISK OK - free space: / 15797 MB (90% inode=99%); /dev 474 MB (100% inode=99%); /dev/shm 486 MB (100% inode=99%); /run 478 MB (98% inode=99%); /sys/fs/cgroup 486 MB (100% inode=99%); /boot 881 MB (86% inode=99%); /run/user/0 97 MB (100% inode=99%);| /=1596MB;17394;;0;17394 /dev=0MB;474;;0;474 /dev/shm=0MB;486;;0;486 /run=7MB;486;;0;486 /sys/fs/cgroup=0MB;486;;0;486 /boot=132MB;1014;;0;1014 /run/user/0=0MB;97;;0;97
然后定义监控主机
[root@localhost libexec]# vim /usr/local/nagios/etc/objects/hosts.cfg
define host{
use linux-server
host_name mysql.cn
address 192.168.204.136
}
我们现在还是监控的是136的这个机器,所以这里信息不用改,如果定义新的机器,则需要重新定义
定义需要监控的服务
[root@localhost libexec]# vim /usr/local/nagios/etc/objects/service.cfg
define service{
use local-service
host_name mysql.cn
service_description sda2_Partition
check_command check_nrpe!check_sda2
}
define service{
use local-service
host_name mysql.cn
service_description Total Processes
check_command check_nrpe!check_total_procs
}
define service{
use local-service
host_name mysql.cn
service_description Current Load
check_command check_nrpe!check_load
}
#分别是监测分区,进程总数,负载
定义NRPE监控命令
[root@localhost libexec]# vim /usr/local/nagios/etc/objects/commands.cfg
define command{
command_name check_nrpe
command_name $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
#$ARG1$ 表示调用后面的参数。