您好,登錄后才能下訂單哦!
監控系統(nagios[報警]+cacti[監控]) | zabbix (zabbix-proxy)
1> 監控系統資源(私有資源 cpu|內存|磁盤)
(公共資源 服務 ssh|ftp|httpd)
(網絡資源 交換機|路由器)
2> 報警(商業短信|郵件|微信API)
本章目錄:
1、Nagios的概述
2、Nagios的部署
3、講解Nagios配置文件之間的關系(重點)
4、配置Nagios監控本機的私有服務和公共服務
5、使用NRPE配置Nagios監控遠程主機的私有服務和公共服務
6、為Nagios增加短信報警功能
1、Nagios的概述
Nagios是一款用于系統和網絡監控的應用程序。它可以在你設定的條件下對主機和服務進行監控,在狀態變差和變好的時候給出告警信息。
Nagios最初被設計為在Linux系統之上運行,然而它同樣可以在類Unix的系統之上運行。
Nagios更進一步的特征包括:
監控網絡服務(SMTP、POP3、HTTP、NNTP、PING等); --公共服務
監控主機資源(處理器負荷、磁盤利用率等); --私有服務
簡單地插件設計使得用戶可以方便地擴展自己服務的檢測方法;
并行服務檢查機制;
當服務或主機問題產生與解決時將告警發送給聯系人(通過EMail、短信、用戶定義方式);
具備定義事件句柄功能,它可以在主機或服務的事件發生時獲取更多問題定位;
可選的WEB界面用于查看當前的網絡狀態、通知和故障歷史、日志文件等;
nagios的組成:
1、nagios的核心組件
2、nagios監控插件
3、nagios web頁面(html/cgi/php)
4、nrpe遠程主機私有服務的監控組件
---------------------------------------------------------------------
nagios部署
參看官方安裝手冊
ftp://192.168.0.254/notes/weekend/project/software/nagios/docs_INSTALL/toc.html
1) 下載軟件
[root@nagios ~]# lftp 192.168.0.254
lftp 192.168.0.254:~> cd notes/weekend/project/software/
lftp 192.168.0.254:/notes/weekend/project/software> mirror nagios/
lftp 192.168.0.254:/notes/weekend/project/software> exit
2) 軟件依賴包
Apache
PHP
GCC compiler
GD development libraries
[root@nagios ~]# yum install httpd php
[root@nagios ~]# yum install gcc glibc glibc-common
[root@nagios ~]# yum install gd
--iso 沒有gd-devle包
[root@nagios ~]# yum -y localinstall /root/nagios/gd-devel-2.0.35-10.el6.x86_64.rpm
3) 新建用戶與組
[root@nagios ~]# /usr/sbin/useradd -m nagios
[root@nagios ~]# echo 123 | passwd --stdin nagios
[root@nagios ~]# /usr/sbin/groupadd nagcmd
[root@nagios ~]# /usr/sbin/usermod -a -G nagcmd nagios
[root@nagios ~]# /usr/sbin/usermod -a -G nagcmd apache
4) 解壓與編譯nagios核心軟件
(1) 解壓
[root@nagios ~]# tar xf /root/nagios/nagios-cn-3.2.0.tar.bz2 -C/usr/local/src/
(2) 編譯
[root@nagios ~]# cd /usr/local/src/nagios-cn-3.2.0/
[root@nagios nagios-cn-3.2.0]# ./configure --with-command-group=nagcmd
[root@nagios nagios-cn-3.2.0]# make all
make install --安裝軟件
make install-init --安裝啟動腳本
make install-config --安裝配置文件
make install-commandmode --安裝命令模式
(3)安裝與配置
[root@nagios nagios-cn-3.2.0]# make install
[root@nagios nagios-cn-3.2.0]# make install-init
[root@nagios nagios-cn-3.2.0]# make install-config
[root@nagios nagios-cn-3.2.0]# make install-commandmode
(4) 定義web配置文件
[root@nagios nagios-cn-3.2.0]# make install-webconf
/usr/bin/install -c -m 644 sample-config/httpd.conf/etc/httpd/conf.d/nagios.conf
--設置登錄密碼 帳號nagiosadmin密碼123
[root@nagios nagios-cn-3.2.0]# htpasswd -c/usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin
[root@nagios nagios-cn-3.2.0]# service httpd restart
5) 安裝nagios的插件
(1) 解壓
[root@nagios ~]# tar xf /root/nagios/nagios-plugins-1.4.14.tar.gz -C/usr/local/src/
(2) 編譯
[root@nagios ~]# cd /usr/local/src/nagios-plugins-1.4.14/
[root@nagios nagios-plugins-1.4.14]# ./configure --with-nagios-user=nagios--with-nagios-group=nagios
[root@nagios nagios-plugins-1.4.14]# make && make install
6) 啟動nagios
--定義啟動腳本
[root@nagios ~]# chkconfig --add nagios
[root@nagios ~]# chkconfig nagios on
--檢測配置文件語法
[root@nagios ~]# /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg |grepTotal
Total Warnings: 0
Total Errors: 0
--啟動
[root@nagios ~]# service nagios start
--關閉selinux
[root@nagios ~]# getenforce
Permissive
7) 訪問nagios
http://localhost/nagios
+++++++++++++++++講解Nagios配置文件之間的關系(重點)+++++++++++++
監控一臺主機包括的內容:主機是否活著/公共服務/私有服務
配置文件的組成: --全局變量(變量的調用使用use命令)
/usr/local/nagios/etc/nagios.cfg --主配置文件,實現配置文件總調度
/usr/local/nagios/etc/resource.cfg --資源
/usr/local/nagios/etc/objects/commands.cfg --監控使用的命令(通知的命令|監控私有服務的命令|監控公共服務的命令)
/usr/local/nagios/etc/objects/contacts.cfg --聯系人(nagiosadmin-->nagios@localhost)
/usr/local/nagios/etc/objects/timeperiods.cfg --監控周期(7x24 5x8(1-5))
/usr/local/nagios/etc/objects/templates.cfg --模板(通知|genric-host| linux-server| local-server)
**********監控命令 commands.cfg*************** 24個命令模板
# 'notify-host-by-email' command definition ---使用郵件通知主機(私有服務)
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "*****Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState:$HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time:$LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert:$HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}
郵件內容(通知宏|主機宏|日期/時間宏|...)
***** Nagios *****
Notification Type: $NOTIFICATIONTYPE$ (PROBLEM)
Host: $HOSTNAME$ (nagios.uplooking.com)
State: $HOSTSTATE$ (宕機)
Address: $HOSTADDRESS$ (192.168.0.1)
Info: $HOSTOUTPUT$ (TTP WARNING: HTTP/1.1 403 Forbidden)
Date/Time: $LONGDATETIME$ (Tue Apr26 15:22:03 CST 2016)
郵件主題
/bin/mail -s "** PROBLEM Host Alert: nagios.uplooking.com is 宕機"
# 'notify-service-by-email' command definition ---使用郵件通知服務 (公共服務)
# 'check-host-alive' command definition --檢測主機是否存活
# 'check_local_disk' command definition --磁盤使用率
# 'check_local_load' command definition --cpu負載
# 'check_local_users' command definition --用戶登錄數
# 'check_local_swap' command definition --swap分區
....
####################################################################################
**********聯系人 contacts.cfg*************** 1個聯系人 1個聯系組
define contact {
contact_name HugoBoss ---聯系人的名稱
use generic-contact --使用那個模板
alias 康康 --別名
email hugoboss@hugo.cc --郵件地址
}
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin, HugoBoss --組的成員
}
####################################################################################
****************監控周期 timeperiods.cfg********************************* 5個模板
[root@nagios ~]# grep timeperiod_name/usr/local/nagios/etc/objects/timeperiods.cfg
timeperiod_name 24x7 --全年
timeperiod_name workhours ---工作日
timeperiod_name none ---全年不通知
timeperiod_nameus-holidays ---美國節假日
timeperiod_name24x7_sans_holidays --除了美國節假日以外的全年
####################################################################################
****************監控模板 templates.cfg********************************* 8個模板
# CONTACT TEMPLATES --聯系人模板
define contact{
name generic-contact --模板名稱
service_notification_period 24x7 ---服務的通知周期
host_notification_period 24x7 ---主機的通知周期
service_notification_options w,u,c,r,f,s --通知服務的類型
host_notification_options d,u,r,f,s --通知主機的類型
service_notification_commands notify-service-by-email ---通知服務的郵件方式
host_notification_commands notify-host-by-email ---通知主機的郵件方式
register 0 ---只是一個模板 不能當成監控對象使用
}
# HOST TEMPLATES --主機模板
define host{
name generic-host
define host{
name linux-server 模板名稱
use generic-host 調用那個模板
check_period 24x7 監控周期
check_interval 5 檢測時間 5分鐘
retry_interval 1 失敗重試 1分鐘
max_check_attempts 10 最大嘗試次數 10次
check_command check-host-alive 檢測主機命令
notification_period workhours 通知周期
notification_interval 120 通知間隔 120分鐘
notification_options d,u,r 通知類型 d:宕機 u:主機不能到達 r:恢復
contact_groups admins 通知組
register 0
}
name windows-server
name generic-printer
name generic-switch
# SERVICE TEMPLATES
define service{
name generic-service
define service{
name local-service
use generic-service
[root@nagios ~]# grep name /usr/local/nagios/etc/objects/templates.cfg
name generic-contact ; The name of this contact template
name generic-host ; The name of this host template
name linux-server ;The name of this host template
name windows-server ;The name of this host template
name generic-printer ;The name of this host template
name generic-switch ;The name of this host template
name generic-service ; The 'name' of this service template
name local-service ;The name of this service template
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。