標籤:方法 follow log mysq 環境 kconfig etc adb 資源
Nagios的功能是監控服務和主機,但其自身並不包括這部分功能,所有的監控、檢測功能都是通過各種外掛程式來完成。啟動Nagios後,它會周期性的調用外掛程式去檢測伺服器狀態,同時Nagios會維持一個隊列,所有外掛程式返回來的狀態資訊都進入隊列,Nagios每次都從隊首讀取資訊,進行處理後,再把狀態通過web展現出來。
這就是所謂的被動模式,經常用於監控主機的系統資源,比如系統負載、磁碟使用率、記憶體使用量率、網路狀態、系統進程數等等。
另一種是主動模式,主要是nagios伺服器主動去擷取資料,常用於探測URL的監控和服務狀態監控。
相比於主動模式中伺服器去被監控主機上輪詢擷取監控資料的方式,這樣的最大優勢是避免除了資料處理工作以外的其他工作都放在了被監控主機上(包括資料轉送),避免了被監控主機量大時,一次輪詢時間過長而導致監控反應延遲,這也是被動模式能夠承擔更大監控量的關鍵。
Nagios提供了許多外掛程式,利用這些外掛程式可以方便的監控很多服務狀態,安裝完成後,在nagios目錄下的/libexec裡放nagios內建的可以使用的所有外掛程式,如check_disk是檢查磁碟空間的外掛程式,check_load是檢查CPU負載的外掛程式。每一個外掛程式都可通過運行./check_xxx -h命令來查看其使用方法和功能。
一、部署環境
主機 |
作業系統 |
IP地址 |
主要軟體 |
Nagios |
centos7.3 x86_64 |
192.168.144.112 |
Nagios4.0.1、nagios-plugins-1.5、LAMP環境 |
被監控主機 |
centos7.3 x86_64 |
192.168.144.111 |
二、Nagios服務主機部署1、首先準備LAMP環境
- 由於被動模式資料進過處理後需要通過web介面呈現出來,因此在nagios服務主機上需要LAMP環境支援。
yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
vim /etc/httpd/conf/httpd.conf
ServerName www.yun.com...AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps...DirectoryIndex index.html index.php
systemctl stop firewalld.service
setenforce 0
systemctl start httpd
systemctl start mariadb.service
2、準備nagios服務軟體相關環境
yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel
useradd -s /sbin/nologin nagios
mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios
ll -d /usr/local/nagios/ 查看許可權
3、解壓軟體包,執行安裝
tar zxvf nagios-4.0.1.tar.gz -C /opt/
cd /opt/nagios-4.0.1/
./configure --prefix=/usr/local/nagios
執行安裝程式後,編譯各模組的五大步驟make all //首先執行全部編譯make installmake install-init //初始化命令位置make install-commandmode //編譯安裝控制模組make install-config //編譯產生相關設定檔
chkconfig --add /etc/rc.d/init.d/nagios
chkconfig --level 35 nagios on
chkconfig --list nagios
- 為驗證編譯是否完整成功,需要檢查/usr/local/nagios/下是否存在etc、bin、sbin、share、var 這五個目錄
4、編譯安裝外掛程式模組
tar xvzf nagios-plugins-1.5.tar.gz -C /opt
cd /opt/nagios-plugins-1.5
./configure --prefix=/usr/local/nagios 安裝外掛程式模組,注意放入nagios安裝目錄中
make && make install
5、修改Apache設定檔,為nagios建立虛擬目錄
vim /etc/httpd/conf/httpd.conf
找到:User apache Group apache 修改為 User nagios Group nagios ...為了安全起見,一般情況下要讓nagios 的web 監控頁面必須經過授權才能訪問,這需要增加驗證配置,即在httpd.conf 檔案最後添加如下資訊:#setting for nagios ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> //監控頁面控制許可權驗證 AuthType Basic Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd //驗證賬戶密碼存放位置 Require valid-user </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> //監控頁面訪問驗證 AuthType Basic Options None AllowOverride None Order allow,deny Allow from all AuthName "nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd //驗證賬戶密碼存放位置 Require valid-user </Directory>
- 設定完訪問驗證設定後,需要設定驗證的賬戶密碼
- 利用htpasswd在/usr/local/nagios/etc/htpasswd產生jack賬戶並設定密碼
htpasswd -c /usr/local/nagios/etc/htpasswd jack
cat /usr/local/nagios/etc/htpasswd
jack:$apr1$DR0SjMa5$trumMzpqj./BA15Iswx2g0
systemctl restart httpd.service
三、配置nagois各功能模組設定檔
1.templates.cfi nagios主要用於監控主機資源以及服務,在nagios配置中稱為對象,為了不必重複定義一些監控對象,Nagios引入了一個模板設定檔,將一些共性的屬性定義成模板,以便於多次引用。 contact_groups 聯絡組屬性改成 ts 將在後面的contacts.cfg檔案中定義2.resource.cfg檔案resource.cfg是nagios的變數定義檔案 一般無需更改$USER1$=/usr/local/nagios/libexec3.commands.cfg檔案此檔案預設是存在的,無需修改即可使用,當然如果有新的命令需要加入時,在此檔案進行添加即可4. hosts.cfg檔案,如果建立位置不在object下,需要注意屬主屬組許可權,並且主設定檔中告知為絕對路徑此檔案預設不存在,需要手動建立,hosts.cfg主要用來指定被監控的主機地址以及相關屬性資訊(不能有任何空格)define host{ use linux-server#引用主機linux-server的屬性資訊,linux-server主機在templates.cfg檔案中進行了定義。 host_name Nagios-Linux#主機名稱 alias Nagios-Linux#主機別名 address 192.168.144.111#被監控的主機地址,這個地址可以是ip,也可以是網域名稱。 } #定義一個主機群組 define hostgroup{ hostgroup_name bsmart-servers#主機群組名稱,可以隨意指定。 alias bsmart servers#主機群組別名 members Nagios-Linux#主機群組成員,其中“Nagios-Linux”就是上面定義的主機。 }5.localhost.cfg檔案 用來監控本機 一般無需更改6.windows.cfg 用來監控windows 這裡無需使用7.services.cfg檔案 此檔案預設也不存在,需要手動建立 主要用於定義監控的服務和主機資源define service{ use local-service#引用local-service服務的屬性值,local-service在templates.cfg檔案中進行了定義。 host_name Nagios-Linux#指定要監控哪個主機上的服務,“Nagios-Server”在hosts.cfg檔案中進行了定義。 service_description check-host-alive#對監控服務內容的描述,以供維護人員參考。 check_command check-host-alive#指定檢查的命令。 } 8.contacts.cfg檔案 contacts.cfg是一個定義連絡人和連絡人群組的設定檔(不能有空格)define contact{ contact_name jack#連絡人的名稱,這個地方不要有空格 use generic-contact#引用generic-contact的屬性資訊,其中“generic-contact”在templates.cfg檔案中進行定義 alias Nagios Admin email [email protected] }define contactgroup{ contactgroup_name ts#連絡人群組的名稱,同樣不能空格 alias Technical Support#連絡人群組描述 members jack#連絡人群組成員,其中“jack”就是上面定義的連絡人,如果有多個連絡人則以逗號相隔 }9.cgi.cfg檔案 此檔案用來控制相關cgi指令碼由於nagios的web監控介面驗證使用者為jack,所以只需在cgi.cfg檔案中添加此使用者的執行許可權在最後加入default_user_name=jackauthorized_for_system_information=nagiosadmin,jack authorized_for_configuration_information=nagiosadmin,jack authorized_for_system_commands=jackauthorized_for_all_services=nagiosadmin,jack authorized_for_all_hosts=nagiosadmin,jackauthorized_for_all_service_commands=nagiosadmin,jack authorized_for_all_host_commands=nagiosadmin,jack10. nagios.cfg檔案將對象設定檔在Nagios.cfg檔案中進行引用cfg_file=/usr/local/nagios/etc/objects/hosts.cfgcfg_file=/usr/local/nagios/etc/objects/services.cfgcommand_check_interval=10s 該變數用於設定nagios對外部命令檢測的時間間隔
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 驗證設定檔
- web介面顯示
http://192.168.144.112/nagios
Nagios監控系統內容部署