首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Nagios 監控 MySQL 完整實戰:安裝、插件編譯、NRPE 配置、服務發現、Web 界面整合

     編輯:MySQL 資料庫相關知識

前言

Nagios 是成熟的開源 IT 基礎設施監控系統,支援主機/服務狀態監控、異常通知(郵件/短信)、事件處理、Web 可視化。本文記錄雙機環境下(MySQL Master + Nagios Server)的完整部署流程。

環境規劃

  • 192.168.0.201:MySQL Master (RHEL 6.4)
  • 192.168.0.202:Nagios Server (RHEL 6.4)

一、Nagios Server 安裝

1. 依賴包

yum install httpd gcc make perl-ExtUtils-Embed.x86_64 -y
yum localinstall gd-devel-2.0.35-11.el6.x86_64.rpm -y

2. 編譯安裝 Nagios Core

useradd nagios
usermod -G nagios apache  # Apache 需寫入 Nagios 目錄

tar jxf nagios-cn-3.2.3.tar.bz2
cd nagios-cn-3.2.3
./configure --enable-embedded-perl
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf  # 自動整合 Apache

3. 安裝 Nagios Plugins

yum install mysql-devel openssl-devel -y
tar zxf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-extra-opts --enable-libtap --enable-perl-modules
make && make install

二、Nagios 配置

1. 主配置 /usr/local/nagios/etc/nagios.cfg

# 註釋掉 localhost.cfg
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
# 新增服務與主機定義文件
cfg_file=/usr/local/nagios/etc/objects/services.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg

2. 主機定義 hosts.cfg

define host{
  use linux-server
  host_name vm2.example.com
  alias Nagios vm2
  address 127.0.0.1
  icon_image switch.gif
  statusmap_image switch.gd2
  2d_coords 100,200
  3d_coords 100,200,100
}
define hostgroup{
  hostgroup_name linux-servers
  alias Linux Servers
  members *
}

三、MySQL 監控項配置

1. MySQL 建立監控專用庫賬號

CREATE DATABASE nagdb DEFAULT CHARSET utf8;
GRANT SELECT ON nagdb.* TO 'nagios'@'%' IDENTIFIED BY 'nagios';
FLUSH PRIVILEGES;

2. 測試 check_mysql 插件

/usr/local/nagios/libexec/check_mysql -H 192.168.1.152 -u nagios -d nagdb -p nagios
# 輸出:Uptime: 3374 Threads: 1 Questions: 11 ...

若報 libmysqlclient.so.18 not found:

ln -s $MYSQL_HOME/lib/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so.18

3. 客戶端 (MySQL Master) 配置 NRPE

# /usr/local/nagios/etc/nrpe.cfg 末尾新增
command[check_mysql]=/usr/local/nagios/libexec/check_mysql -H 192.168.1.152 -u nagios -d nagdb -p nagios

重啟 NRPE:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

4. 服務端定義服務 services.cfg

define service{
  use local-service
  host_name node2
  service_description mysql
  check_command check_nrpe!check_mysql
  notifications_enabled 1
}

四、驗證與啟動

  1. 重啟客戶端 NRPE
  2. 重啟服務端 Nagios:service nagios restart
  3. 重啟 Apache:service httpd restart
  4. 瀏覽器訪問 https://192.168.0.202/nagios(帳號 nagiosadmin,密碼安裝時設定)

五、擴展建議

  • 監控更多指標:check_mysql_query、check_mysql_slave、check_disk、check_load
  • 配置郵件/短信通知:contacts.cfg、commands.cfg 定義 notify-host-by-email 等
  • 使用 NRPE 監控遠程主機磁碟、內存、CPU、連接數
  • 考慮升級至 Nagios 4.x 或遷移至 Prometheus + Grafana 現代監控棧
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved