OS: CentOS 7
IP: 192.168.100.198
Hostname: node1
Service: RabbitMQ
Đầu tiên, chúng ta phải tạo một user có chức năng monitoring
trên RabbitMQ.
rabbitmqctl add_user mon 1
rabbitmqctl set_user_tags mon monitoring
rabbitmqctl set_permissions -p / mon ".*" ".*" ".*"
Cài đặt perl và gói Monitoring::Plugins
trên Nagios server
- Trên Nagios sử dụng OS Ubuntu
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
perl -MCPAN -e 'install Monitoring::Plugin'
perl -MCPAN -e 'install Config::Tiny'
perl -MCPAN -e 'install JSON'
perl -MCPAN -e 'install Math::Calc::Units'
Lưu ý: Khi lần đầu chạy lệnh trên, CPAN sẽ yêu cầu một số thiết lập, bấm Enter để nhập mặc định.
- Trên Nagios sử dụng OS CentOS
yum install -y epel-release
yum install -y perl-Monitoring-Plugin perl-Config-Tiny perl-JSON* perl-Math-Calc-Units
git clone https://github.com/nagios-plugins-rabbitmq/nagios-plugins-rabbitmq.git
mkdir /usr/local/nagios/libexec/rabbitmq/
cp nagios-plugins-rabbitmq/scripts/* /usr/local/nagios/libexec/rabbitmq/
chown -R nagios. /usr/local/nagios/libexec/rabbitmq/
- Bước 1: Thêm thông tin vào file host
Quay trở lại Nagios server, chúng ta sẽ thêm phần thông tin của RabbitMQ vào /etc/hosts
vi /etc/hosts
...
192.168.100.198 node1
- Bước 2: Kiểm tra plugin
Kiểm tra plugin, bằng lệnh sau:
cd /usr/local/nagios/libexec/rabbitmq/
./check_rabbitmq_server -H "node1" -u mon -p 1
- Bước 3: Thêm câu lệnh vào Nagios
vi /usr/local/nagios/etc/objects/commands.cfg
...
# Check RabbitMQ
define command {
command_name check_rabbitmq_aliveness
command_line $USER1$/rabbitmq/check_rabbitmq_aliveness -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_cluster
command_line $USER1$/rabbitmq/check_rabbitmq_cluster -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_connections
command_line $USER1$/rabbitmq/check_rabbitmq_connections -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_exchange
command_line $USER1$/rabbitmq/check_rabbitmq_exchange -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_objects
command_line $USER1$/rabbitmq/check_rabbitmq_objects -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_overview
command_line $USER1$/rabbitmq/check_rabbitmq_overview -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_partition
command_line $USER1$/rabbitmq/check_rabbitmq_partition -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_queue
command_line $USER1$/rabbitmq/check_rabbitmq_queue -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_server
command_line $USER1$/rabbitmq/check_rabbitmq_server -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_shovels
command_line $USER1$/rabbitmq/check_rabbitmq_shovels -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
define command {
command_name check_rabbitmq_watermark
command_line $USER1$/rabbitmq/check_rabbitmq_watermark -H $ARG1$ --port=$ARG2$ -u $ARG3$ -p $ARG4$
}
...
Lưu ý: các lệnh trên chưa đặt ngưỡng cảnh báo.
- Bước 4: Tạo file cấu hình cho host RabbitMQ
Tiếp theo, chúng ta tạo một host
mới
vi /usr/local/nagios/etc/servers/rabbitmq01.cfg
define host{
use linux-server
host_name rabbitmq01
alias RabbitMQ Server
address node1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ aliveness
check_command check_rabbitmq_aliveness!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ cluster
check_command check_rabbitmq_cluster!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ connections
check_command check_rabbitmq_connections!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ exchange
check_command check_rabbitmq_exchange!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ objects
check_command check_rabbitmq_objects!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ overview
check_command check_rabbitmq_overview!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ partition
check_command check_rabbitmq_partition!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ queue
check_command check_rabbitmq_queue!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ server
check_command check_rabbitmq_server!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ shovels
check_command check_rabbitmq_shovels!node1!15672!mon!1
}
define service {
use generic-service
host_name rabbitmq01
service_description RabbitMQ watermark
check_command check_rabbitmq_watermark!node1!15672!mon!1
}
Lưu lại file.
- Bước 5: Khởi động lại nagios
systemctl restart nagios
- Bước 6: Kiểm tra trên Web UI: