溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LNMP+Cacti+Nagios+ndo2+Npc

發(fā)布時(shí)間:2020-07-21 00:22:18 來(lái)源:網(wǎng)絡(luò) 閱讀:1781 作者:wangshuai1987 欄目:移動(dòng)開(kāi)發(fā)

Cacti 多用于圖形監(jiān)測(cè)系統(tǒng)性能 負(fù)載等      
Nagios 多用于報(bào)警

Cacti: 是一套基于PHP,MySQL,SNMP及RRDTool開(kāi)發(fā)的網(wǎng)絡(luò)流量監(jiān)測(cè)圖形分析工具.        
Nagios:是一款開(kāi)源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),在系統(tǒng)或服務(wù)狀態(tài)異常時(shí)發(fā)出郵件或短信報(bào)警第一時(shí)間通知網(wǎng)站運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知.        
Npc: 是一個(gè)cacti的插件.用于講 Cacti和Nagios整合.

注意如下幾點(diǎn)      
1.Cacti 需要 LNMP 或者 LAMP 作為平臺(tái)        
2.Nagios 需要web服務(wù)器支持cgi        
3.Cacti 是通過(guò) net-snmp 來(lái)采集數(shù)據(jù)的. 客戶機(jī)需要安裝net-snmp

4.本文不過(guò)多的介紹配置文件和軟件使用方法 只標(biāo)注管簡(jiǎn)單 多去學(xué)習(xí)才能更好的掌握各種知識(shí)

本文以 Centos 5.4 作為平臺(tái)來(lái)搭建      
   LNMP 環(huán)境如下        
   mysql 5.5.27        
   php 5.4.6        
   nginx1.2.3

Lnmp 安裝方法:      
http://wangshuai1987.blog.51cto.com/3080273/1294909

讓nginx支持cgi 的方法      
http://wangshuai1987.blog.51cto.com/3080273/1341415

##############################################################################

注意,此處只標(biāo)記. 不要使用該部分命令. 是為了整理看著清爽.具體安裝步驟,著重參考安裝正文

Cacti版本:cacti-0.8.8a.tar.gz

Nagios版本:nagios-3.4.1.tar.gz      
      nagios-plugins-1.4.16.tar.gz

需要安裝的軟件包        
Nagios:        
yum install -y gd gd-devel xinetd libart_lgpl

Cacti:      
yum -y install libart_lgpl-devel libpng-devel freetype-devel libart_lgpl-devel fonts-chinese cairo-devel pango-devel


先來(lái)幾張圖,把關(guān)鍵位置標(biāo)注出來(lái). 從正文開(kāi)始 大篇幅安裝步驟 不單獨(dú)出圖

下面的幾個(gè)圖 只是關(guān)鍵點(diǎn)

LNMP+Cacti+Nagios+ndo2+Npc

New Graphs:新建圖形      
Graph Management:圖形管理        
Data Sources:數(shù)據(jù)源        
Devices:添加主機(jī)活設(shè)備在這        
Plugin Management:插件管理        
System Utilities: 如果不出圖 點(diǎn)這個(gè)菜單 把 view xxxx cache 都點(diǎn)一次 清理下緩存

LNMP+Cacti+Nagios+ndo2+Npc



幾個(gè)設(shè)置的時(shí)候要注意的地方

LNMP+Cacti+Nagios+ndo2+Npc



cacti 優(yōu)化參考

所有參數(shù) 不可全抄 要根據(jù)實(shí)際情況修改

LNMP+Cacti+Nagios+ndo2+Npc

npc 插件設(shè)置
LNMP+Cacti+Nagios+ndo2+Npc

##################################################      
#################  安裝正文  #####################        
##################################################        
# 安裝cacti需要的包        
yum install -y gd gd-devel xinetd libart_lgpl

# 建立nagios用戶 用于維護(hù)nagios      
/usr/sbin/useradd nagios        
#passwd nagios

# 建立nagioscmd組 用于執(zhí)行cgi程序 和其他nagios程序      
/usr/sbin/groupadd nagcmd

# 將nagios用戶加到nagcmd組      
/usr/sbin/usermod -a -G nagcmd nagios

# 將web用戶加到nagcmd組      
/usr/sbin/usermod -a -G nagcmd web

# 將www用戶加到nagcmd組      
/usr/sbin/usermod -a -G nagcmd www

# 將nagios用戶加到www組      
/usr/sbin/usermod -a -G www nagios

# 下載需要的軟件包

# 官方下載頁(yè)面 軟件 和 插件      
# http://www.nagios.org/download/core/thanks/
# http://www.nagios.org/download/plugins/

# 下載軟件和插件包      
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.1.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz

# 解壓      
tar zxf nagios-3.4.1.tar.gz        
tar zxf nagios-plugins-1.4.16.tar.gz

# 開(kāi)始進(jìn)行便已安裝      
cd nagios        
./configure --prefix=/soft/nagios-3.4.1 --with-command-group=nagcmd        
make all && make install && make install-init && make install-config && make install-commandmode        
cd ../

/usr/bin/install -c -m 775 -o nagios -g nagcmd -d /soft/nagios-3.4.1/var/rw      
chmod g+s /soft/nagios-3.4.1/var/rw

cd nagios-plugins-1.4.16      
./configure --prefix=/soft/nagios-3.4.1 --with-nagios-user=nagios --with-nagios-group=nagios        
make && make install        
cd ../

###########      
如果報(bào)錯(cuò):        
make: *** No rule to make target `/usr/lib64/perl5/CORE/config.h', needed by `Makefile'.  Stop.        
yum install -y perl-devel.x86_64

# nagios 是由perl編寫(xiě)的.所以 需要如下perl模塊      
# 提供兩種安裝方式. 推薦手動(dòng)安裝        
A)通過(guò)CPAN 來(lái)安裝        
#perl -MCPAN -e shell        
cpan> install Net::SNMP        
###########        
B) 手工安裝        
# 首先去官方網(wǎng)站 http://www.cpan.org 下載以下幾個(gè)模塊        
Crypt::DES        
Digest::MD5        
Digest::SHA1        
Digest::HMAC        
Net::SNMP

wget http://search.cpan.org/CPAN/authors/id/D/DP/DPARIS/Crypt-DES-2.05.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-MD5-2.52.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-SHA1-2.13.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-HMAC-1.03.tar.gz
wget http://search.cpan.org/CPAN/authors/id/D/DT/DTOWN/Net-SNMP-v6.0.1.tar.gz

tar zxf Crypt-DES-2.05.tar.gz      
tar zxf Digest-MD5-2.52.tar.gz        
tar zxf Digest-SHA1-2.13.tar.gz        
tar zxf Digest-HMAC-1.03.tar.gz        
tar zxf Net-SNMP-v6.0.1.tar.gz

cd Crypt-DES-2.05      
perl Makefile.PL        
make install        
cd ../

cd Digest-MD5-2.52      
perl Makefile.PL        
make install        
cd ../

cd Digest-SHA1-2.13      
perl Makefile.PL        
make install        
cd ../

cd Digest-HMAC-1.03      
perl Makefile.PL        
make install        
cd ../

cd Net-SNMP-v6.0.1      
perl Makefile.PL        
make install        
cd ../

# 插件位置      
/soft/nagios-3.4.1/libexec

--------------------------------------      
vi /soft/nagios-3.4.1/etc/cgi.cfg

#找到這幾行,后面添加 erbin用戶,可以自己定義用戶,使用“,”隔開(kāi)      
#authorized_for_system_information=nagiosadmin,test        
#authorized_for_configuration_information=nagiosadmin,test        
#authorized_for_system_commands=nagiosadmin,test        
#authorized_for_all_services=nagiosadmin,test        
#authorized_for_all_hosts=nagiosadmin,test        
#authorized_for_all_service_commands=nagiosadmin,test        
#authorized_for_all_host_commands=nagiosadmin,test        
use_authentication=0

vi /soft/nagios-3.4.1/etc/objects/contacts.cfg

vi /soft/nagios-3.4.1/etc/cgi.cfg      
url_html_path=/nagios

vi /soft/nagios-3.4.1/etc/nagios.cfg        
cfg_dir=/soft/nagios-3.4.1/etc/servers        
cfg_file=/soft/nagios-3.4.1/etc/objects/hostgroups.cfg

mkdir -p /soft/nagios-3.4.1/etc/servers      
cd /soft/nagios-3.4.1/etc/servers

vi /soft/nagios-3.4.1/etc/objects/hostgroups.cfg      
define hostgroup {        
    hostgroup_name sa-servers        
    alias      sa servers        
    members     localhost,192.168.2.215    #用逗號(hào)間隔多個(gè)主機(jī)        
    }

修改nagiosadmin 這行其中的郵件地址為你的email 地址,以將報(bào)警郵件發(fā)到你的郵箱

設(shè)置登陸web 界面時(shí)HTTP 驗(yàn)證的賬號(hào)密碼      
http://www.4webhelp.net/us/password.php
test:44ofpQvlFOgvs        
vi /soft/nagios-3.4.1/etc/nagiospasswd

---------------------------------------

# 檢測(cè)配置文件是否有錯(cuò)      
/soft/nagios-3.4.1/bin/nagios -v /soft/nagios-3.4.1/etc/nagios.cfg

# 開(kāi)啟 nagios      
/soft/nagios-3.4.1/bin/nagios -d /soft/nagios-3.4.1/etc/nagios.cfg

mkdir -p /wwwroot/web/

cp -r /soft/nagios-3.4.1/share/ /wwwroot/web/nagios

########## nginx 配置文件關(guān)鍵部位代碼      
server_name  192.168.2.215;        
index index.html index.htm index.php;        
root  /wwwroot/web;        
auth_basic "Nagios Access";        
auth_basic_user_file /soft/nagios-3.2.1/etc/nagiospasswd;

location ~ .*\.(cgi|pl|perl)?$      
{        
gzip off;        
root   /soft/nagios-3.2.1/sbin;        
rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;        
fastcgi_pass 127.0.0.1:8999;        
fastcgi_param SCRIPT_FILENAME /soft/nagios-3.2.1/sbin$fastcgi_script_name;        
fastcgi_index index.cgi;        
fastcgi_read_timeout   60;        
fastcgi_param  REMOTE_USER        $remote_user;        
include fcgi.conf;        
auth_basic "Nagios Access";        
auth_basic_user_file /soft/nagios-3.2.1/etc/nagiospasswd;        
}

########################### 開(kāi)始安裝cacti      
cacti        
yum -y install libart_lgpl-devel libpng-devel freetype-devel libart_lgpl-devel fonts-chinese cairo-devel pango-devel

wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.3.tar.gz

tar zxf rrdtool-1.4.3.tar.gz      
cd rrdtool-1.4.3

# 讓rrdtool 支持中文      
sed -i 's/setlocale(LC_NUMERIC, "C")/setlocale(LC_ALL, "zh_CN.UTF-8")/g' src/rrd_graph.c        
sed -i 's/setlocale(LC_NUMERIC, old_locale)/setlocale(LC_ALL, old_locale)/g' src/rrd_graph.c

./configure --prefix=/soft/rrdtool-1.4.3

make && make install

cd ../

# 將 /soft/rrdtool-1.4.3/lib 加入到 /etc/ld.so.conf      
ldconfig

wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
tar zxf cacti-0.8.8a.tar.gz        
cp -r cacti-0.8.8a /wwwroot/web/cacti        
cd /wwwroot/web/cacti

mysql -uroot -p      
mysql>drop database cacti;        
mysql>create database cacti;        
mysql>use cacti;        
mysql>source cacti.sql;        
mysql>grant all privileges on cacti.* to cacti@localhost identified by "cacti";        
mysql>grant all privileges on cacti.* to cactiuser@localhost identified by "cactiuser";        
mysql>flush privileges;        
mysql>exit

# 修改數(shù)據(jù)庫(kù)信息      
vi include/config.php

# 修改php配置文件,修改時(shí)區(qū)      
vi /soft/php-5.4.6/etc/php.ini        
safe_mode = Off        
date.timezone = "PRC"

# 保存退出 并重啟

wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6.1.1/net-snmp-5.6.1.1.tar.gz/download
tar zxf net-snmp-5.6.1.1.tar.gz        
cd net-snmp-5.6.1.1        
# 編譯第一步 版本是2        
./configure --prefix=/soft/net-snmp-5.6.1.1 --enable-developer        
make && make install

echo /soft/net-snmp-5.6.1.1/lib > /etc/ld.so.conf      
ldconfig

cd ../

crontab -e      
# 沒(méi)分鐘采集一次數(shù)據(jù) 使用root采集. 一個(gè)比較操蛋的問(wèn)題. 就是東西太多 多環(huán)境生成會(huì)出問(wèn)題 權(quán)限設(shè)置又很麻煩 不如這么來(lái)最實(shí)惠了.        
*/1 * * * * root /soft/php-5.4.6/bin/php /wwwroot/web/cacti/poller.php > /dev/null 2>&1 && /bin/chown www:www * /wwwroot/web/cacti/rra/*

# 使用二進(jìn)制文件來(lái)進(jìn)行數(shù)據(jù)采集 效率較高      
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz
tar zxf cacti-spine-0.8.8a.tar.gz        
cd cacti-spine-0.8.8a        
./configure --prefix=/soft/cacti-spine-0.8.8a --with-mysql=/soft/mysql-5.5.27/ --with-snmp=/soft/net-snmp-5.6.1.1/        
make && make install        
cd /soft/cacti-spine-0.8.8a/etc/        
mv spine.conf.dist spine.conf        
vi /soft/cacti-spine-0.8.8a/etc/spine.conf

# 安裝完成 之后      
http://ip/cacti/install

/soft/rrdtool-1.4.3/bin/rrdtool      
/soft/php-5.4.6/bin/php        
/soft/net-snmp-5.6.1.1/binsnmpwalk        
/soft/net-snmp-5.6.1.1/binsnmpget        
/soft/net-snmp-5.6.1.1/bin/snmpbulkwalk        
/soft/net-snmp-5.6.1.1/bin/snmpgetnext        
/soft/cacti-spine-0.8.8a/bin/spine

用戶名  密碼  均為admin


# 如果繪圖出現(xiàn)亂碼 上傳一個(gè)中文字體即可      
cp simsun.ttc /usr/share/fonts        
fc-cache -f -v

# 整合cacit和nagios      
wget http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.5.2/ndoutils-1.5.2.tar.gz/download
tar zxf ndoutils-1.5.2.tar.gz        
cd ndoutils-1.5.2        
ldconfig

./configure --prefix=/soft/ndoutils-1.5.2 --with-mysql=/soft/mysql-5.5.27/ --with-ndo2db-user=nagios --with-ndo2db-group=nagios

# include/config.h 修改261 262行      
#include </soft/mysql-5.5.27/include/mysql.h>        
#include </soft/mysql-5.5.27/include/errmsg.h>

make      
make install

需要安裝dbi 和 dbd      
-----------------------------------------        
wget http://search.cpan.org/CPAN/authors/id/M/MS/MSCHWERN/Test-Simple-0.98.tar.gz
wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.622.tar.gz
wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.022.tar.gz

tar zxf Test-Simple-0.98.tar.gz      
tar zxf DBI-1.622.tar.gz        
tar zxf DBD-mysql-4.022.tar.gz

cd Test-Simple-0.98      
perl Makefile.PL        
make        
make install        
cd ../

cd DBI-1.622      
perl Makefile.PL        
make        
make install        
cd ../

cd DBD-mysql-4.022      
perl Makefile.PL        
make        
make install        
cd ../        
----------------------------------------------

cd db      
./installdb -ucactiuser -pcactiuser -hlocalhost -d cacti

-------      
cp ../config/ndomod.cfg-sample /soft/nagios-3.4.1/etc/ndomod.cfg

vi /soft/nagios-3.4.1/etc/nagios.cfg        
check_external_commands=1        
command_check_interval=-1        
event_broker_options=-1        
broker_module=/soft/nagios-3.4.1/bin/ndomod-3x.o config_file=/soft/nagios-3.4.1/etc/ndomod.cfg        
process_performance_data=1        
--------

cd /root/ndoutils-1.5.2/src      
cp ndomod-3x.o ndo2db-3x log2ndo file2sock /soft/nagios-3.4.1/bin/        
cd ../config        
cp ndo2db.cfg-sample /soft/nagios-3.4.1/etc/ndo2db.cfg        
/soft/ndoutils-1.5.2/bin/ndo2db -c /soft/nagios-3.4.1/etc/ndo2db.cfg

mkdir -p /soft/ndoutils-1.5.2/var/

# selinux      
# http://wiki.centos.org/TipsAndTricks/SelinuxBooleans
# http://selinuxproject.org/page/NB_AL
chcon -R -t httpd_sys_content_t /soft/nagios-3.4.1/sbin/        
chcon -R -t httpd_sys_content_t /soft/nagios-3.4.1/share/

# 安裝npc 讓nagios在cacti顯示      
tar zxf npc-2.0.4.tar.gz        
cp -r npc /wwwroot/web/cacti/plugins/        
chown www:www -R /wwwroot/web/

# 解決npc不出圖的問(wèn)題 進(jìn)mysql cacti 數(shù)據(jù)庫(kù)進(jìn)行刷庫(kù)      
ALTER TABLE npc_eventhandlers ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;        
ALTER TABLE npc_hostchecks ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;        
ALTER TABLE npc_hoststatus ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;        
ALTER TABLE npc_notifications ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;        
ALTER TABLE npc_servicechecks ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;        
ALTER TABLE npc_servicestatus ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;        
ALTER TABLE npc_statehistory ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;        
ALTER TABLE npc_systemcommands ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;

# 進(jìn)入到軟件目錄      
chown nagios:nagios -R nagios-3.4.1/ ndoutils-1.5.2/

# 進(jìn)入web進(jìn)行插件設(shè)置

ndo2db 內(nèi)核錯(cuò)誤解釋      
# cat /proc/sys/kernel/msgmnb        
65536        
# cat /proc/sys/kernel/msgmax        
65536        
# cat /proc/sys/kernel/msgmni        
1985

# echo 131072 > /proc/sys/kernel/msgmnb      
and        
# vi /etc/sysctl.conf        
and adjust the appropriate value(s).        
Why did I do it:

Because of repeating error messages in /var/log/messages:      
360viewpoint ndo2db: Warning: Retrying message send. This can occur because you have too few messages allowed or too few total bytes allowed in message queues. You are currently using 64 of 1985 messages and 65536 of 65536 bytes in the queue. See README for kernel tuning options.        
How did I know how to do this

Read the NDO-Utils README file:

************************      
TUNING KERNEL PARAMETERS        
************************

NDOUTILS uses a single message queue to communicate between the broker      
module and the NDO2DB daemon. Depending on the operating system, there        
may be parameters that need to be tuned in order for this communication        
to work correctly. The discussion below applies specifically to Linux,        
but may apply generally to other Unices as well.

There are three Linux kernel parameters that determine the resources      
provided to the messaging subsystem:        
       * kernel.msgmax is the maximum size of a single message in a        
               message queue        
       * kernel.msgmni is the maximum number of messages allowed in any        
               one message queue        
       * kernel.msgmnb is the total number of bytes allow in all messages        
               in any one message queue

To see the current values for any of these parameters, cat      
/proc/sys/kernel/msg{max|mni|mnb}.

In order for NDOUTILS to work at all, kernel.msgmax must be greater than      
the size of the queue_msg struct (currently 1026 bytes). Most Linux        
distributions set kernel.msgmax to a default of 65536.

If there are insufficient resources for sending messages between the      
broker and the daemon, you will see an entry similar to the following        
in your logs. (This is logged via the syslog facility, using the level        
LOG_ERR and the default facility.)

       ndo2db: Warning: Retrying message send. This can occur because      
       you have too few messages allowed or too few total bytes        
       allowed in message queues. You are currently using 16 of 16        
       mesages and 65536 of 65536 bytes in the queue.  See README for        
       kernel tuning options.

If you see this entry, the message will likely eventually be sent,      
but retrying uses system resources, and there is the possibility that        
more messages will queued than can be handled, causing the broker        
module to stall.

If you are close to or have exceeded the number of messages, you may      
need to increase kernel.msgmni. If you are close to or have exceeded        
the number of bytes in the queue, you may need to increase        
kernel.msgmnb. In some cases you may need to increase both.

A conservative approach would be to double the necessary value, stop      
and restart both the NDO2DB daemon and Nagios Core, and watch for any        
further messages. Note that if NDO2DB is started after Nagios Core,        
you may see the warning above as the broker module first attempts to        
flush its backlog of messages.

To increase a value, echo the value to /proc/sys/kernel/msgmni or      
/proc/sys/kernel/msgmnb as appropriate.

For example, to increase the number of messages allowed in the queue      
to 32, use the command 'echo 32 > /proc/sys/kernel/msgmni' (without        
the quotes).

Once you have determine the correct parameters, you can make them      
permanent by editing /etc/sysctl.conf. Add or update the line of        
the form 'kernel.msg{mni|mnb} = <value>' with the value(s) determined        
above. The next time the system is booted, the values of the        
parameters in /etc/sysctl.conf will be loaded.

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI