Cài đặt Nagios trên Remote Host (CentOS 6)

Cài đặt Nagios trên Remote Host (CentOS 6)

Cài đặt 1 website WordPress cơ bản trên hệ thống Linux (CentOS 6)
AWS Reserved Instance: tiết kiệm 3/4 chi phí cho AWS EC2/RDS
AWS Spot Instances: tiết kiệm lên đến 90% chi phí

Nagios là gì

Nagios là phần mềm mã nguồn mở, một công cụ mạnh mẽ cung cấp cho bạn những thay đổi tức thời về cơ sở hạ tầng IT quan trọng của bạn. Nagios cho phép bạn giám sát, phát hiện và sửa chữa, giảm thiểu các vấn đề trong tương lai trước khi chúng ảnh hưởng đến người dùng cuối và khách hàng.

Với Nagios ta có thể :

  • Giám sát tài nguyên máy chủ (Memory usage , CPU load , Disk usage, Logged in users, Running processes, etc.)
  • Giám sát các dịch vụ mạng (HTTP, FTP, SSH, SMTP, etc.)
  • Phát hiện vấn đề trước khi chúng xảy ra
  • Được thông báo ngay khi sảy ra vấn đề
  • Phát hiện các lỗ hổng bảo mật
  • Lên kế hoạch nâng cấp hệ thống trước khi hệ thống cũ sập
  • Plugin thiết kế đơn giản cho phép người dùng phát triển dịch vụ kiểm tra riêng tùy họ lựa chọn ( kịch bản Shell, C++, Perl, Ruby, Python, PHP, C#… )

Nagios hoạt động như thế nào

Có nhiều cách để theo dõi máy chủ từ xa (Remote Host), một số gây ra việc tải cao trên máy chủ theo dõi (Monitoring Host) nếu bạn theo dõi hàng trăm hoặc hàng nghìn dịch vụ do tài nguyên của việc đóng mở kết nối SSH (check_by_ssh) là nguyên nhân. Có cách để tránh việc đó là sử dụng addon NRPE. NRPE cho phép bạn thực thi các plugin (ex : check_memory, check_cpu, check_disk, etc.) ngay trên các remote host.

Các addon NRPE gồm 2 phần :

  1. Check_nrpe plugin nằm trên monitoring host.
  2. Các daemon NRPE chạy trên remote host.

Nagios khi theo dõi tài nguyên của remote host:

  1. Nagios sẽ thực thi check_nrpe plugin và nói cho nó biết dịch vụ nào cần được kiểm tra.
  2. Check_nrpe plugin liên lạc với NRPE daemon trên remote host qua một SSL (tùy chọn).
  3. NRPE daemon sẽ thực thi các Nagios plugin (được cài đặt trên remote host) cho dịch vụ cần kiểm tra.
  4. Các kết quả sẽ thông qua từ NRPE daemon tới với check_nrpe plugin trả về cho Monitoring host.

Cài đặt trên Remote Host (CentOS 6)

Bước 1 :Điều kiện cần để cài đặt

  1. SSL headers và libraries :
    yum install gcc glibc glibc-common openssl*
  2. Tạo user nagios :
    useradd -m nagios && passwd nagios

Bước 2: Cài đặt Nagios plugin

  1. Download Nagios plugin:
    wget http://www.nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
  2. Install Nagios plugin :
    tar xzf nagios-plugins-2.1.1.tar.gz
    cd nagios-plugins-2.1.1
    ./configure
    make
    make install
  3. Cấp quyền cho Nagios user:
    chown nagios.nagios /usr/local/nagios
    chown -R nagios.nagios /usr/local/nagios/libexec

Bước 3 :Cài đặt xinetd

yum install xinetd

Bước 4: Cài đặt NRPE daemon

  1. Download NRPE :
    wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
  2. Install NRPE :
    tar xzf nrpe-3.2.1.tar.gz
    cd nrpe-nrpe-3.2.1
    ./configure --with-nrpe-user=nagios --with-nrpe-group=nagios
    make all
    make install
    make install-config
    make install-inetd
    make install-init

Bước 5 : Cấu hình NRPE

vi /etc/xinetd.d/nrpe

Cấu hình như bên dưới:

# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
    disable = no
    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
    only_from = 127.0.0.1 <ip of Nagios server>
    log_on_success =
}

Thêm NRPE port vào /etc/services

echo "nrpe 5666/tcp">>/etc/services

Một số plugin cần dùng, tải về trong thư mục /usr/local/nagios/libexec

  • Check disk I/O :
    https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=2778&cf_id=24
  • Check network I/O :
    wget https://raw.githubusercontent.com/itlabvn/share/master/check_bandwidth.sh
  • Check memory :
    wget https://raw.githubusercontent.com/itlabvn/share/master/check_mem.pl

Cấp quyền thực thi cho các plugin vừa tải

chmod +x check_bandwidth.sh check_mem.pl check_linux_stats.pl
chown nagios:nagios check_bandwidth.sh check_mem.pl check_linux_stats.pl

Thêm command vào  /usr/local/Nagios/etc/nrpe.cfg

vim /usr/local/Nagios/etc/nrpe.cfg
command[check_bandwith_eth0]=/usr/local/nagios/libexec/check_bandwidth.sh localhost linux eth0 5 80 90 100
command[check_memory]=/usr/local/nagios/libexec/check_mem.pl -w 10 -c 5 -f
command[check_service_http]=/usr/local/nagios/libexec/check_http -H 127.0.0.1 -p 80 -w 10 -c 15
command[check_linux_io]=/usr/local/nagios/libexec/check_linux_stats.pl -I -w 2000,600 -c 3000,800 -p sda1,sda3,sda4 -s

Bước 6 : Và cuối cùng là restart xinetd service

service xinetd restart

Kiểm tra xem NRPE daemon đã được cài đặt và cấu hình thành công hay chưa, nếu trả về version NRPE thì đã thành công

/usr/local/nagios/libexec/check_nrpe -H localhost

Nếu timeout hoặc connection refused thì kiểm tra lại firewall, cho phép  truy cập tới NRPE port(5666)

iptables -I RH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
service iptables save

COMMENTS