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
- ....
Để 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
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ố kernelChú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.3Download:
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 NagiosSau 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.