Giải pháp giám sát hạ tầng mạng miễn phí

Chào các bạn,

Tiếp theo loại bài về GIẢI PHÁP GIÁM SÁT HẠ TẦNG MẠNG MIỄN PHÍ với:

  • Nagios
  • PNP4nagios
  • Check_mk
  • ....
Trong bài viết này, tôi sẽ giới thiệu về việc Tích hợp các dữ liệu monitoring vào database.

Để thực hiện việc này, chúng ta sử dụng một addon có tên là NDOUtils
Sau đây là các bước tích hợp:

  • Cài đặt & cấu hình MySQL
  • Thay đổi các thông số kernel
  • Cài đặt và cấu hình ndoutils-2.1.3
  • Khai báo Ndoutils vào Nagios
  • Kiểm tra
1/ Cài đặt & cấu hình MySQL

Installing MySQL

===== CentOS 5.x / 6.x | RHEL 5.x / 6.x | Oracle Linux 5.x / 6.x =====


yum install -y mysql mysql-server mysql-devel
 Install MariaDB
===== CentOS 7.x | RHEL 7.x =====

yum install -y mariadb mariadb-server mariadb-devel

Start And Configure MySQL / MariaDB

service mysqld start

systemctl start mariadb.service
Configure it to start when the system boots:

chkconfig --add mysqld
chkconfig mysqld on

systemctl start mariadb.service
systemctl enable mariadb.service
Set root password for MySQL / MariaDB


/usr/bin/mysqladmin -u root password 'mypassword'

Create Database

Tôi sẽ tạo tạo database với các thông tin như sau:

  • Database name: nagios
  • User: ndoutils
  • Password: 'ndoutils_password

Kết nối vào db:

mysql -u root -p'mypassword'
 Thực hiện các lệnh sau:


CREATE DATABASE nagios DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER 'ndoutils'@'localhost' IDENTIFIED BY 'ndoutils_password';

GRANT USAGE ON *.* TO 'ndoutils'@'localhost' IDENTIFIED BY 'ndoutils_password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; 

GRANT ALL PRIVILEGES ON nagios.* TO 'ndoutils'@'localhost' WITH GRANT OPTION ; 

\q

Test thử kết nối:

echo 'show databases;' | mysql -u ndoutils -p'ndoutils_password' -h localhost


Kết quả kiểu vầy là ok:

Database
information_schema
nagios
test
2/ Thay đổi các thông số kernel

Chúng ta cần thay đổi một vài thông số kernel để Ndoutils có thể hoạt động tốt.

Backup file cũ:

cp /etc/sysctl.conf /etc/sysctl.conf_backup
Tiến hành sửa một vài thông số, gõ lần lượt các lệnh sau:


sed -i '/msgmnb/d' /etc/sysctl.conf
sed -i '/msgmax/d' /etc/sysctl.conf
sed -i '/shmmax/d' /etc/sysctl.conf
sed -i '/shmall/d' /etc/sysctl.conf
printf "\n\nkernel.msgmnb = 131072000\n" >> /etc/sysctl.conf
printf "kernel.msgmax = 131072000\n" >> /etc/sysctl.conf
printf "kernel.shmmax = 4294967295\n" >> /etc/sysctl.conf
printf "kernel.shmall = 268435456\n" >> /etc/sysctl.conf
 Kiểm tra lại thông số:

sysctl -e -p /etc/sysctl.conf
Kết quả kiểu như vầy:

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 131072000
kernel.msgmax = 131072000
kernel.shmmax = 4294967295
kernel.shmall = 268435456
 3/ Cài đặt và cấu hình ndoutils-2.1.3

Download:


cd /tmp
wget -O ndoutils.tar.gz https://github.com/NagiosEnterprises/ndoutils/releases/download/ndoutils-2.1.3/ndoutils-2.1.3.tar.gz
tar xzf ndoutils.tar.gz

Compile NDOUtils:

cd /tmp/ndoutils-2.1.3/
./configure
make all
make install

Tích hợp vào database


cd db/
./installdb -u 'ndoutils' -p 'ndoutils_password' -h 'localhost' -d nagios
cd .. 

Cấu hình ndoutils:

Có 2 file lưu trữ cấu hình của ndoutils:

  • /usr/local/nagios/etc/ndomod.cfg
  • /usr/local/nagios/etc/ndo2db.cfg

Chúng ta cần khai báo các thông số kết nối database:

  • db_user=ndoutils
  • db_pass=ndoutils_password

Sử dụng các lệnh sau:

make install-config
mv /usr/local/nagios/etc/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
sed -i 's/^db_user=.*/db_user=ndoutils/g' /usr/local/nagios/etc/ndo2db.cfg
sed -i 's/^db_pass=.*/db_pass=ndoutils_password/g' /usr/local/nagios/etc/ndo2db.cfg
mv /usr/local/nagios/etc/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg

Cấu hình startup

make install-init
Start dịch vụ

===== CentOS 6.x | RHEL 6.x

service ndo2db start
===== CentOS 7.x | RHEL 7.x

systemctl enable ndo2db.service
4/ Khai báo Ndoutils vào Nagios

Sau khi cấu hình xong ndoutils thì cần phải thông báo cho Nagios biết về sự có mặt của em í ^^!
Sử dụng đoạn lệnh sau:

printf "\n\n# NDOUtils Broker Module\n" >> /usr/local/nagios/etc/nagios.cfg
printf "broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg\n" >> /usr/local/nagios/etc/nagios.cfg 
Khởi động lại Nagios:

service nagios restart

systemctl restart nagios.service

service ndo2db restart

systemctl restart ndo2db.service
5/ Kiểm tra:

Kiểm tra thử NDO module có tích hợp thành công vào Nagios hay không?

grep ndo /usr/local/nagios/var/nagios.log

Query thử dữ liệu trên database:


echo 'select * from nagios.nagios_logentries;' | mysql -u ndoutils -p'ndoutils_password'

THE END.



Viết nhận xét

Các bạn có thể viết lời nhận xét cho bài viết, nhưng cần tuân thủ một số quy tắc sau:

» Các nhận xét/bình luận phải nghiêm túc, không dung tục, không spam.
» Nội dung phải liên quan tới chủ đề bài viết.
» Viết bằng tiếng việt có dấu hoặc tiếng Anh. Nội dung viết không dấu sẽ bị xóa.
» Hãy để lại tên của bạn khi nhận xét/bình luận, để tôi có thể dễ dàng trả lời bạn khi cần.