監控三劍客之Nagios

來源:互聯網
上載者:User

標籤:cli   des   orm   template   hosts   電腦   包括   ftp   監控系統   

Nagios是一個流行的電腦系統和網路監控程式,它檢測主機和服務,當異常發生和解除時能提醒使用者。它是基於GPLv2開發的開源軟體,可免費獲得及使用。

nagios工作原理

nagios的功能是監控服務和主機,但是其自身並不包括這些功能,所有的監控、檢測功能都是通過各種外掛程式來完成的。啟動nagios後,它會周期性的自動調用外掛程式去檢測伺服器狀態,同時nagios會維持一個隊列,所有外掛程式返回的狀態資訊都進入隊列,nagios每次都從隊首讀取資訊,進行處理後,再把狀態結果通過web顯示出來。這就是被動模式,經常用於監控主機的系統資源,比如系統負載、磁碟使用率、記憶體使用量率、網路狀態、系統進程數等等。另一種是主動模式,主要是nagios伺服器主動去擷取資料,常用於探測URL的監控和服務的狀態監控。相比於主動模式中伺服器主動去被監控機上輪詢擷取監控資料的方式,這樣做的一個很大優勢就是將除去資料處理的其他工作都放在了被監控機上面(包括資料的傳輸),就避免了被監控機數量大時一次輪詢時間過長而導致監控反應延遲,這也是被動模式能承擔更大監控量的關鍵。nagios提供了許多外掛程式,利用這些外掛程式可以方便的監控很多服務狀態。安裝完成後,在nagios主目錄下的/libxec裡放有nagios內建的可以使用的所有外掛程式。

nagios主要功能
  • 網路服務監控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
  • 主機資源監控(CPU load、disk usage、system logs),也包括Windows主機(使用NSClient++ plugin)
  • 指定自己編寫的Plugin通過網路收集資料來監控任何情況(溫度、警告……)
  • 通過配置Nagios遠程執行外掛程式遠程執行指令碼
  • 遠程監控支援SSH或SSL加通道方式進行監控
  • 簡單的plugin設計允許使用者很容易的開發自己需要的檢查服務,支援很多開發語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
  • 包含很多圖形化資料Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
  • 可並行服務檢查
  • 能夠定義網路主機的層次, 允許逐級檢查, 就是從父主機開始向下檢查
  • 當服務或主機出現問題時發出通告,可通過email, pager, sms 或任意使用者自訂的plugin進行通知
  • 能夠自訂事件處理機制重新啟用出問題的服務或主機
  • 自動日誌迴圈
  • 支援冗餘監控
  • Web介面可以查看當前網路狀態,通知,問題曆史,記錄檔等

本次項目主要介紹如何部署nagios,如何對nagios進行配置,使其能夠對指定的主機進行監控操作

項目環境準備關閉防火牆及selinux系統版本:centos 7.4虛擬機器分配
本次項目只對被監控端做簡單測試,所以被監控端不需安裝nagios外掛程式。
角色
IP地址 所用軟體
監控端 172.16.10.34 nagios-4.4.2、nagios-plugins-2.2.1
被監控端 172.16.10.20
被監控端 172.16.10.23
部署nagios監控系統

因為nagios監控系統的網頁需要動態網頁支援,所以需要安裝httpd和php軟體,或者直接在lamp環境下安裝,所以實驗前要準備好虛擬機器環境,對於lamp架構的搭建,在這裡就不多贅述。

安裝環境包
yum install -y -- gcc -- glibc -- glibc-common -- gd -- gd-devel -- xinetd -- openssl-devel
建立系統管理使用者
useradd -s /sbin/nologin nagios
建立安裝目錄,指定屬主屬組
mkdir /usr/local/nagioschown -R nagios.nagios /usr/local/nagios
編譯安裝nagios
tar -zxvf nagios-4.4.2.tar.gz -C /optcd /opt/nagios-4.4.2./configure --prefix=/usr/local/nagiosmake allmake installmake install-initmake install-commandmodemake install-config
驗證安裝結果
ls /usr/local/nagios

安裝nagios-plugins
tar xvzf nagios-plugins-2.2.1.tar.gz -C /optcd /opt/nagios-plugins-2.2.1./configure --prefix=/usr/local/nagiosmake && make install
配置nagios監控系統修改httpd.conf
vim /etc/httpd/conf/httpd.conf User nagios Group nagios  //修改原使用者名稱apache為nagios<IfModule dir_module>   DirectoryIndex index.html index.php    //增加index.php</IfModule>AddType application/x-httpd-php .php   //插入該句
增加安全驗證配置

為了安全起見,一般情況下要讓nagios 的web 監控頁面必須經過授權才能訪問,這需要增加驗證配置,即在httpd.conf 檔案最後插入如下資訊:

vim /etc/httpd/conf/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 -c /usr/local/nagios/etc/htpasswd chen
配置nagios

配置nagois 一般在目錄/usr/local/nagios/etc/下

templates.cfg

主要用於監控主機資源以及服務,在nagios配置中稱為對象,為了不必重複定義一些監控對象,Nagios引入了一個模板設定檔,將一些共性的屬性定義成模板,以便於多次引用。contact_groups 聯絡組屬性改成 np 將在後面的contacts.cfg檔案中定義

vim /usr/local/nagios/etc/object/templates.cfgcontact_groups                  np   //文中有五處都需修改
resource.cfg檔案

resource.cfg是nagios的變數定義檔案 一般無需更改

commands.cfg檔案

此檔案預設是存在的,無需修改即可使用,當然如果有新的命令需要加入時,在此檔案進行添加即可

hosts.cfg檔案

此檔案預設不存在,需要手動建立,hosts.cfg主要用來指定被監控的主機地址以及相關屬性資訊,注意書寫格式,不要有多餘的空格

vim /usr/local/nagios/etc/objects/hosts.cfgdefine host{           use                     linux-server            //引用主機linux-server的屬性資訊,linux-server主機在templates.cfg檔案中進行了定義。        host_name               Nagios-Linux     //主機名稱,自訂        alias                   Nagios-Linux     //主機別名        address                 172.16.10.20     //被監控的主機地址,這個地址可以是ip,也可以是網域名稱。        }   define hostgroup{                                 //定義一個主機群組        hostgroup_name          bsmart-servers    //主機群組名稱,可以隨意指定。        alias                   bsmart servers    //主機群組別名        members                 Nagios-Linux      //主機群組成員,其中“Nagios-Linux”就是上面定義的主機。             }
localhost.cfg

用來監控本機 一般無需更改

services.cfg

此檔案預設也不存在,需要手動建立,主要用於定義監控的服務和主機資源

vim /usr/local/nagios/etc/objects/services.cfgdefine 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   //指定檢查的命令。        }  
contacts.cfg

contacts.cfg是一個定義連絡人和連絡人群組的設定檔,注意書寫格式。

vim /usr/local/nagios/etc/objects/contacts.cfgdefine contact{        contact_name                    chen            //連絡人的名稱,這個地方不要有空格        use                             generic-contact //引用generic-contact的屬性資訊,其中“generic-contact”在templates.cfg檔案中進行定義        alias                           Nagios Admin        email                           46****[email protected] //填入真實可用郵箱,也可不寫        }define contactgroup{        contactgroup_name       np                      //連絡人群組的名稱,同樣不能空格        alias                   Technical Support       //連絡人群組描述,言簡意賅,能懂什麼意思就行        members                 chen                    //連絡人群組成員,其中“chen”就是上面定義的連絡人,如果有多個連絡人則以逗號相隔        }
cgi.cfg

此檔案用來控制相關cgi指令碼,由於nagios的web監控介面驗證使用者為chen,所以只需在cgi.cfg檔案中添加此使用者的執行許可權

default_user_name=chenauthorized_for_system_information=nagiosadmin,chen  authorized_for_configuration_information=nagiosadmin,chen  authorized_for_system_commands=chenauthorized_for_all_services=nagiosadmin,chen  authorized_for_all_hosts=nagiosadmin,chenauthorized_for_all_service_commands=nagiosadmin,chen  authorized_for_all_host_commands=nagiosadmin,chen             //設定檔末尾插入
nagios.cfg

將對象設定檔在Nagios.cfg檔案中進行引用

vim /usr/local/nagios/etc/nagios.cfgcfg_file=/usr/local/nagios/etc/objects/hosts.cfgcfg_file=/usr/local/nagios/etc/objects/services.cfg    //合適的位置插入command_check_interval=10s  //該變數用於設定nagios對外部命令檢測的時間間隔,插入即可。
驗證設定檔準確性
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

重啟服務
systemctl restart httpd。servicesystemctl restart nagios.service
訪問nagios網站

該網站設定了登陸驗證,所以在訪問網站是輸入之前設定的使用者名稱和密碼即可登陸網站。

http://172.16.10.34/nagios/


增加主機數修改hosts.cfg檔案

此檔案預設不存在,需要手動建立,hosts.cfg主要用來指定被監控的主機地址以及相關屬性資訊,注意書寫格式,不要有多餘的空格

vim /usr/local/nagios/etc/objects/hosts.cfgdefine host{           use                     linux-server            //引用主機linux-server的屬性資訊,linux-server主機在templates.cfg檔案中進行了定義。        host_name               Nagios-Linux     //主機名稱,自訂        alias                   Nagios-Linux     //主機別名        address                 172.16.10.20     //被監控的主機地址,這個地址可以是ip,也可以是網域名稱。        }  define host{        use                     linux-server        host_name               Nagios-Linu        alias                   Nagios-Linu        address                 172.16.10.23        }define hostgroup{                                 //定義一個主機群組        hostgroup_name          bsmart-servers    //主機群組名稱,可以隨意指定。        alias                   bsmart servers    //主機群組別名        members                 Nagios-Linux,Nagios-Linu      //主機群組成員,其中“Nagios-Linux”就是上面定義的主機。             }
重啟服務
systemctl restart httpd。servicesystemctl restart nagios.service

監控三劍客之Nagios

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.