一、在線安裝
1、軟體管理中心安裝。(ubuntu)1)更新源sudo apt-get update2)打開軟體中心,搜索你要安裝的軟體,雙擊安裝即可。例如安裝apache,如下圖
2、命令行安裝方式
1)更新,命令:apt-get update
2)查找你要安裝的軟體,apt-cache search 「軟體名」
3)apt-get install 軟體名
以上在線的兩種方式都提到了apt-get 方式,那麼它的工作原理簡單說明一下,apt-get相關的有兩個重要文件:1、是/etc/sources.list,2、是/var/lib/apt/lists/目錄.
當我們執行apt-get update程序分析sources.list看這個文件里是否有對應的Packages/Sources/Release列表文件,如果有更新則下載之,存入/var/lib/apt/lists/目錄(其實就是保持與當前系統版本軟體源表最新);apt-get install 安裝相應的包 ,下載並安裝。
這種方式的好處在於:如果你想要載入的應用需要依賴另一個應用程序才能正常工作,apt-get會幫你找到並載入所需的程序庫或應用代碼,這種方式是比較常用的的。比如我們執行apt-get install mysql-server,可以看到相關的依賴包(如圖)
二、線下安裝
之所以叫線下的安裝方式,也就是說你要把軟體下載到本地去安裝。一般我們下載的文件後綴名都是zip、tar.gz等壓縮包,解壓後會看到rpm、bin、deb、run之類擴展名文件。很多軟體都會提供不同LINUX版本的安裝格式,你可以根據自己的系統下載不同擴展名的軟體。
1、rpm安裝包:這時一款老牌的安裝格式,是紅帽創建的安裝格式,現在已成為一種標准,常用在opensuse/turbo/redhat版本),安裝方法rpm -ivh 軟體名.rpm (如果只是安裝一個i參數就夠了,如果還要看安裝進度和軟體信息就加個vh)
2、deb安裝包:DEB是Debian軟體包格式的文件擴展名,常用在centos/ubuntu,在蘋果系統里也常見此安裝方式。安裝方法:dpkg -i 軟體名.deb
3、run安裝包:以QT(一種編程工具)的安裝文件為例,
1)授權: chmod x qt-unified-linux-x64-2.0.2-2-online.run
2)執行:./qt-unified-linux-x64-2.0.2-2-online.run即可安裝。
4、bin安裝包:bin包是一個自解壓格式的安裝包,要想執行它,需要先賦予它可執行的許可權。
(以安裝jdk為例)# chmod x jdk-6u21-linux-i586.bin# ./jdk-6u21-linux-i586.bin
5、編譯後安裝方式:
舉例安裝nagios插件(nagios是一種開源的監控軟體,需要多種插件支持監控模塊)
1)cd /tmp/nagios-plugins-* //先進入目錄
2)./configure --with-nagios-user=nagios --with-nagios-group=nagios // 配置,即安裝的用戶安裝的路徑都可在此設置,這一步一般用來生成 Makefile,為下一步的編譯做准備
3)make //編譯過程如果 在 make 過程中出現 error ,你就要記下錯誤代碼,缺少什麼包就按照什麼包。
4) make install //如果make無問題就可以直接安裝了。
這種安裝方法的好處是你可以自定義安裝路徑、安裝賬號等參數,常見開源平台下載的源碼安裝方式。
6、其它,還有一些軟體解壓後生成的文件夾內包含很多文件,一般文件夾內有install.sh、setup.py等安裝文件方式,此種方式類似windows的exe安裝方式,你需要先授權該文件的可執行許可權,在執行安裝。以上基本上囊括了所有的Linux環境下的軟體安裝方式,供各位參考。
B. 怎麼用Nagios監測Windows伺服器
監控主機配置:redhat linux as4,nagios3
被監控主機:Windows Server 2008 R2 Enterprise,nsclient++0.4.4.172
Nagios是一款開源的免費網路監視工具,其功能強大,靈活性強。能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網路設置,列印機等。nagios監控windows系統有三種實現方式:SNMP、NSClient++、NRPE。
下面介紹使用NSClient++方式來監控Windows:
首先在windows下安裝nsclient++,運行NSCP-0.4.0.172-x64.msi安裝文件,一步一步往下走,其中需要設置nagios監控主機IP和NSClient密碼(值當使用check_nt時使用),如圖1所示:
Allowed hosts:填寫nagios監控主機IP
NSClient Password:當使用命令check_nt時需要設置密碼,根據自己情況設置
Mole to load:根據自己的需要選擇相應的模塊
安裝完畢以後,打開windows服務管理器,查看nsclient服務是否啟動,如圖2所示:
然後在nagios監控主機上面進行相關的配置,主要涉及兩個配置文件nagios.cfg和windows.cfg
(1) 因為nagios是模塊化調用,先到配置文件打開windows相關模塊,編輯nagios.cfg文件
[root@localhost etc]# ls
cgi.cfg htpasswd nagios.cfg nrpe.cfg objects objects.bak objects.tar resource.cfg
[root@localhost etc]# pwd
/usr/local/nagios/etc
[root@localhost etc]# vi nagios.cfg
將#cfg_file=/usr/local/nagios/etc/objects/windows.cfg該行前面的#注釋去掉即可.
(1) 修改windows.cfg配置文件,需要修改define host和define service兩部分
# Define a host for the Windows machine we'll be monitoring
# Change the host_name, alias, and address to fit your situation
define host{
use windows-server ; Inherit default values from a template
host_name video4-beijing ; The name we're giving to this host 被監控主機的主機名
alias video4-beijing ; A longer name associated with the host
contact_groups sa ;
address 10.12.4.169 ; IP address of the host 被監控主機的IP
}
# Create a service for monitoring CPU load
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name video4-beijing
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
contact_groups sa
}
# Create a service for monitoring
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name video4-beijing
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
contact_groups sa
}
# Create a service for monitoring C:\ disk usage
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name video4-beijing
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
contact_groups sa
}
修改完相關的配置文件以後,執行如下命令檢查配置文件是否正確:
[root@localhost objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
遇到的問題,在檢查配置文件時錯誤信息如下:
Checking services...
Error: Contact group 'admins' specified in service 'C:\ Drive Space' for host 'video4-beijing' is not defined anywhere!
Error: Contact group 'admins' specified in service 'Explorer' for host 'video4-beijing' is not defined anywhere!
Error: Contact group 'admins' specified in service 'Memory Usage' for host 'video4-beijing' is not defined anywhere!
Checked 14 services.
Checking hosts...
Error: Contact group 'admins' specified in host 'video4-beijing' is not defined anywhere!
Checked 7 hosts.
Checking host groups...
Checked 2 host groups.
Checking service groups...
Checked 0 service groups.
Checking contacts...
Checked 1 contacts.
Checking contact groups...
Checked 1 contact groups.
Checking service escalations...
Checked 0 service escalations.
Checking service dependencies...
Checked 0 service dependencies.
Checking host escalations...
Checked 0 host escalations.
Checking host dependencies...
Checked 0 host dependencies.
Checking commands...
Checked 25 commands.
Checking time periods...
Checked 5 time periods.
Checking for circular paths between hosts...
Checking for circular host and service dependencies...
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors: 4
***> One or more problems was encountered while running the pre-flight check...
Check your configuration file(s) to ensure that they contain valid
directives and data defintions. If you are upgrading from a previous
version of Nagios, you should be aware that some variables/definitions
may have been removed or modified in this version. Make sure to read
the HTML documentation regarding the config files, as well as the
'Whats New' section to find out what has changed.
以上問題的原因是因為一開始在windows.cfg文件中定義host和service時沒有增加contact_groups sa這個欄位,host和service默認所在的contact_group為admins,而我的nagios監控主機contacts.cfg文件中配置的contactgroup為sa。
C. linux中安裝了一個插件,這個插件裝完後正常的情況在終端輸入./phpxujh -p pid可查看當前PID的運行情況,
目錄
開始之前
系統環境
監控內容
所需軟體包
CentOS7重要變化
配置開發環境
同步時間
關閉Selinux
使用CRT上傳軟體包
安裝郵件服務
監控主機安裝
常用到的命令
安裝nagios所需要的運行環境
增加用戶
安裝nagios
配置許可權
安裝插件
安裝nrpe
遠程主機安裝
常用到的命令
配置運行環境
安裝nagios-plugin
安裝nrpe
啟動nrpe
監控主機安裝PNP
配置開發環境
安裝pnp4nagios (版本號為0.6)
配置pnp4nagios
圖表展示
問題集合
在首次配置了nagios監控端後,在瀏覽器輸入地址後連接不上
啟動nrpe後卻不能互相通信
安裝pnp4nagios後出現The requested URL /pnp4nagios/graph was not found on this server.
出現「CHECK_NRPE: Error - Could not complete SSL handshake.」的錯誤
執行 ./configure時報錯:configure error cannot find ssl headers
解壓./configure 後,在nagios-4.0.8進行make all報錯
安裝nrpe時執行.configure出錯
錯誤:perfdata directory "/usr/local/pnp4nagios/var/perfdata/" is empty
開始之前
聲明:本文中的命令都經過了測試,但難免有所紕漏,如果你發現命令粘貼後運行有錯,可能是由於符號的格式(尤其是破折號)導致的,此時你應該自己手打一遍命令。對於本文中發現的錯誤和建議,請發送郵件給我:
[email protected],請在郵件主題里註明「關於nagios的問題(建議)」。
--------------------------------------分割線 --------------------------------------
在Ubuntu下配置Mrtg監控Nginx和伺服器系統資源 http://www.linuxidc.com/Linux/2013-08/88417.htm
使用 snmp+Mrtg 監控 Linux 系統 http://www.linuxidc.com/Linux/2012-11/73561.htm
Mrtg伺服器搭建(監控網路流量) http://www.linuxidc.com/Linux/2012-07/64315.htm
網路監控器Nagios全攻略 http://www.linuxidc.com/Linux/2013-07/87067.htm
Nagios搭建與配置詳解 http://www.linuxidc.com/Linux/2013-05/84848.htm
Nginx環境下構建Nagios監控平台 http://www.linuxidc.com/Linux/2011-07/38112.htm
在RHEL5.3上配置基本的Nagios系統(使用Nagios-3.1.2) http://www.linuxidc.com/Linux/2011-07/38129.htm
CentOS 5.5+Nginx+Nagios監控端和被控端安裝配置指南 http://www.linuxidc.com/Linux/2011-09/44018.htm
Ubuntu 13.10 Server 安裝 Nagios Core 網路監控運用 http://www.linuxidc.com/Linux/2013-11/93047.htm
--------------------------------------分割線 --------------------------------------
系統環境
一共3台機器,全都按照CentOS7最小化模式安裝系統
系統版本號
[root@localhost ~]# cat /etc/RedHat-release
CentOS Linux release 7.0.1406 (Core)
監控主機
(一台)
IP地址:192.168.1.204
主機名稱:nagios_server_204
遠程主機
(兩台)
IP地址:192.168.1.112
主機名稱:nagios_slave_112
IP地址:192.168.1.113
主機名稱:nagios_slave_113
分區情況
安裝時使用默認分區(使用 df 命令來查看)
[root@localhost ~]# df -h
監控內容
要監控的服務
監控命令
cpu負載
(check_linux_state.pl -C)
當前用戶登錄數量
(check_users)
磁碟使用情況
(check_disk)
總進程數
(check_procs)
內存使用情況
(check_linux_stats.pl -M)
負載均衡
(check_load)
磁碟IO
(check_linux_stats.pl -I)
網路流量
(check_linux_stats.pl -N)
打開的文件數量
(check_linux_stats.pl -F)
socket連接數
(check_linux_stats.pl -S)
進程使用的內存和CPU
(check_linux_stats.pl -T)
指定的網站是否可連接
(check_http)
系統在線時長
(check_uptime)
所需軟體包
監控主機
軟體包
下載地址
nagios-4.0.8.tar.gz
請到我的github地址里下載:
https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_server
註明:我的github項目install_nagios_automatically是一個一鍵自動化安裝nagios的項目(能運行,但還在完善中)
nagios-plugins-2.0.3.tar.gz
nrpe-2.15.tar.gz
pnp4nagios-0.6.25.tar.gz
Sys-Statistics-Linux-0.66.tar.gz
libxml2-2.7.1.tar.gz
遠程主機
軟體包
下載地址
nagios-plugins-2.0.3.tar.gz
請到我的github地址里下載:
https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_client
nrpe-2.15.tar.gz
Sys-Statistics-Linux-0.66.tar.gz
Centos7重要變化
Centos7相比較以前的Centos有一些涉及到常用命令的變化,如果不事先了解,會在使用命令的時候造成巨大的困擾
Centos7默認沒有ifconfig和netstat兩個命令了,ip addr命令代替了ifconfig,只要安裝上net-tools包就可以繼續使用ifconfig和netstat兩個命令了
systemctl命令的出現(systemctl可以看作是service和chkconfig的組合),雖然仍然可以使用以前的命令,但是會重定向到新的命令中,下面以http服務為例
job
以前的系統
CentOS7
服務開機啟動
chkconfig --level 3 httpd on
systemctl enable httpd.service
服務不開機啟動
chkconfig --level 3 httpd off
systemctl disable httpd
服務狀態
service httpd status
systemctl status httpd
所有服務的啟動狀態
chkconfig --list
systemctl
啟動服務
service httpd start
systemctl start httpd.service
停止服務
service httpd stop
systemctl stop httpd.service
重啟服務
service httpd restart
systemctl restart httpd.service
配置開發環境
同步時間
把監控系統里的所有機器都同步一次網路時間(非常重要)
[root@localhost ~]timedatectl #該命令用來檢查當前時間和時區
如果發現所有機器的時區不一致,此時就要使用命令
[root@localhost ~]timedatectl list-timezones #該命令列出了所有的時區
[root@localhost ~]timedatectl set-timezone Asia/Shanghai #該命令把時區設置為上海
ntpdate time.nist.gov #該命令同步網路當前的時間
如果提示沒有ntpdate命令,則安裝ntp,並且配置系統自動更新時間
[root@localhost ~]# yum install ntp -y
[root@localhost ~]# /usr/sbin/ntpdate time.nist.gov
[root@localhost ~]# echo '#time sync'>>/var/spool/cron/root
[root@localhost ~]# echo '*/10**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'>>/var/spool/cron/root
關閉Selinux
不關閉selinux可能會導致一些難以察覺的錯誤,為了保險起見,首先關閉selinux:
[root@localhost ~]vi /etc/selinux/config
重啟機器
檢查selinux是否關閉:
[root@localhost ~]getenforce #如果顯示enforcing則沒有關閉
使用SecureCRT上傳軟體包
我在這里使用的SSH連接工具是SecureCRT7.2,通過這個工具上傳文件到Linux的步驟如下:
1. 首先在Linux中安裝傳送文件命令:
[root@localhost ~] yum install lrzsz -y
2. 然後在Linux中跳轉到/usr/local/src目錄下
[root@localhost ~] cd /usr/local/src
3. 運行CRT的傳送文件命令
安裝郵件服務
因為郵件報警服務需要安裝mail功能
[root@localhost ~]yum install –y mailx
[root@localhost ~]yum install –y sendmail
[root@localhost ~]systemctl restart sendmail.service
[root@localhost ~]mail –s Test [email protected](你的郵箱地址)
#此時進入輸入模式,輸入完郵件內容後按ctrl + d退出並且發送
監控主機安裝
常用到的命令
命令內容
命令格式
檢查nagios的配置文件是否有錯
/etc/init.d/nagios checkconfig
或者
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
啟動nagios
systemctl start nagios.service
或者
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
修改了nagios的配置文件後重新載入配置文件
/etc/init
安裝nagios所需要的運行環境
[root@localhost ~]# yum install gcc glibc glibc-common -y
[root@localhost ~]# yum install php php-gd perl -y
[root@localhost ~]# yum install httpd gd gd-devel openssl openssl-devel -y
[root@localhost ~]# systemctl enable httpd.service #設置CentOS開機啟動服務
增加用戶
[root@localhost ~]useradd -m nagios
並將nagios以及apache用戶加入到nagcmd組中
[root@localhost ~]groupadd nagcmd
[root@localhost ~]usermod -G nagcmd nagios
[root@localhost ~]usermod -a -G nagcmd apache #把apace用戶添加到與nagios的一個組(apache用戶會在安裝apache時自動創建)
安裝nagios
[root@localhost src]# tar -zxvf nagios-4.0.8.tar.gz
[root@localhost src]# cd nagios-4.0.8
首先初始化和建立編譯的環境
[root@localhost nagios-4.0.8]#./configure --with-command-group=nagcmd
如果能看到下面的基本配置信息則說明初始的環境已經成功配置完成:
之後按照提示執行命令來進行編譯:
[root@localhost nagios-4.0.8]# make all
[root@localhost nagios-4.0.8]# make install
[root@localhost nagios-4.0.8]# make install-init
[root@localhost nagios-4.0.8]# make install-config
[root@localhost nagios-4.0.8]# make install-commandmode
[root@localhost nagios-4.0.8]# make install-webconf
安裝完成之後,在/usr/local/nagios目錄下如果能夠看到這些目錄:
就表示Naigos安裝成功了。
Nagios的樣例配置文件默認安裝在/usr/local/nagios/etc目錄下,配置這些文件就可以使得nagios按要求運行(詳細的配置過程請參考我的另一篇博文:nagios服務配置詳解)
此時應該為email指定您想用來接收nagios警告信息的郵件地址,默認是本機的nagios用戶:
[root@localhost]# vi /usr/local/nagios/etc/objects/contacts.cfg
email nagios@localhost #把描紅的地方修改為你的email地址
創建一個登錄nagios web程序的用戶(用戶名配置為nagiosadmin則不需要配置許可權,設置為其他用戶名就要配置許可權),我在這里把用戶名設置為kylinlin,密碼為123456,這個用戶帳號在以後通過web登錄nagios認證時所用:
[root@localhost ~]# htpasswd -bc /usr/local/nagios/etc/htpasswd.users kylinlin 123456 #把描紅的地方修改為你的用戶名和密碼
配置許可權
如果在上面創建登陸nagios web程序的用戶名不是nagiosadmin(我在上面已經設置為kylinlin),在登陸nagios的web界面後(此時我們還不能登錄,但如果你忽略了這一小節的配置,那麼在後面的登陸中就會看到如下的界面),點擊Hosts或Services會顯示圖片紅色的錯誤提示
是因為nagios默認把全部的許可權給nagiosadmin,所以可以通過修改cgi.cfg文件賦予kylinlin許可權,切換到/usr/local/nagios/etc目錄下
[root@localhost etc]# sed -i 's#nagiosadmin#kylinlin#g' cgi.cfg #這條命令將nagiosadmin用戶名替換為kylinlin
[root@localhost etc]# grep kylinlin cgi.cfg #這條命令檢查是否修改成功
以上過程配置結束以後需要重新啟動httpd:
[root@localhost etc]# systemctl restart httpd.service
檢查其主配置文件的語法是否正確:
[root@localhost etc]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
或者使用下面這個命令來檢查語法
[root@localhost etc]# /etc/init.d/nagios checkconfig
顯示錯誤數為0才正確
配置成功
安裝插件
剛才已經提到Nagios主程序只是一個控制中心,而能夠起到服務監測和系統監測等功能的是眾多Nagios的插件,沒有插件的Nagios系統其實只是一個空殼。因此在安裝了Nagios平台之後我們還需要安裝插件。
Nagios插件同樣是在其官方網站下載,目前版本是1.4.15。我將下載的源碼包放到/usr/local目錄下,按照下面的步驟進行解壓,編譯和安裝:
[root@localhost src]# tar zxf nagios-plugins-2.0.3.tar.gz
[root@localhost src]# cd nagios-plugins-2.0.3
[root@localhost nagios-plugins-2.0.3]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
[root@localhost nagios-plugins-2.0.3]#make
[root@localhost nagios-plugins-2.0.3]#make install
通過下面的命令查看安裝了多少個插件
[root@localhost nagios-plugins-2.0.3]#ls /usr/local/nagios/libexec/|wc -l
然後把Nagios加入到服務列表中以使之在系統啟動時自動啟動:
[root@localhost nagios-plugins-2.0.3]# chkconfig --add nagios
[root@localhost nagios-plugins-2.0.3]# chkconfig nagios on
執行下面的命令來驗證Nagios的樣例配置文件:
[root@localhost ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg