言:運維監控對于企業來說是必不可少的,以確保必要的系統啟動并運行。如果沒有使用正確的工具進行正確的監控,反而會增加運維人員的工作。
不管你是小型還是企業級的配置,都不能忽視運維監控工具。即使您擁有個人網站,也需要正常運行時間監控。
有許多軟件從開源到商業級別,可幫助您監控基礎架構運行情況并發送告警通知??紤]到各種因素,要找到一個與您IT環境匹配的運維監控工具是非常難的。
目前國內大部分公司已經采用開源的監控軟件,以下介紹下常見的十款開源監控軟件,看看哪些對您有用。
Nagios
Nagios成立于 1999 年,是提供從小型到企業級基礎設施的監控解決方案的行業領導者之一。
Nagios 能夠監控幾乎所有類型的組件,如網絡協議、操作系統、系統指標、應用程序、服務、Web 服務器、網站、中間件等。
Nagios 在 Core 4 監控引擎上運行,該引擎通過消耗更少的服務器資源來提供高水平的性能。
你可以利用 Nagios 來監控 WebLogic、WebSphere、JBoss、Tomcat、Apache、URL、Nginx 等。
特征
Zabbix
Zabbix是一款出色的企業級軟件,旨在監控從服務器、網絡設備到 Web 應用程序和數據庫的性能和可用性的一切。
Zabbix 被全球數千家公司使用,包括 DELL、Salesforce、ICANN、Orange 等。
Zabbix 是一種服務器-代理系統架構,您必須在服務器(客戶端)上安裝代理,以由 Zabbix 服務器監控。但是,您不需要為 FTP、SSH、HTTP、DNS等服務安裝代理。
您可以在 Linux、AIX、Windows、Solaris、MacOS X、FreeBSD、OpenBSD 等上安裝它。
特征
Checkmk
Checkmk是一個高度可擴展的工具,可監控服務器、網絡、云資產、數據庫、容器、物聯網等。它有兩種模式可用。
特征
Prometheus+Grafana
開源解決方案——Prometheus和Grafana ,使用Prometheus從服務器、操作系統、應用程序中抓取指標,并使用 Grafana 將它們可視化。
有很多 Prometheus 導出器可以從Linux、Windows、數據庫、路由器、消息系統、存儲、API、Web 應用程序、Kubernetes 等獲取指標。
Cacti
Cacti是另一個可以安裝在 Linux 或 Windows 操作系統上的開源網絡監控工具。它連接到RRDTool,它可以生成與相關網絡數據的圖表。
特征
OpeNMS
OpenNMS可以使用 JMX、WMI、SNMP、NRPE、XML HTTP、JDBC、XML、JSON 等收集系統指標。
可以發現網絡中的第二層網絡拓撲。它建立在事件驅動的架構之上,并支持Grafana。
OpenNMS內置了報表,這意味著您可以在漂亮的儀表板和圖表中查看報告??偟膩碚f,OpenNMS 有一個出色的用戶界面。
也可以在 Docker 中安裝它。
特征:
Lcinga
Icinga 始于 2009 年的Nagios Fork ,它更快、更易于配置、更舒適地擴展。
特征:
Netdata
Netdata為系統和應用程序提供實時健康監控和性能故障排除。
Netdata 快速高效,旨在在所有系統上運行而不會中斷。通過數以千計的指標、交互式可視化和富有洞察力的健康警報,即時診斷基礎架構中的異常情況。
Netdata 是免費的開源軟件,目前在物理系統、虛擬機、容器和物聯網/邊緣設備上運行。
特征:
M/Monit
它可以在任何 POSIX 系統上運行,并使用大約 10-15 MB 的 RAM,具體取決于您監控的主機數量。它適用于以下數據庫系統:
如果進程終止,M/Monit 可以執行自動重啟。因此,在有異常的情況下,它可以自動維修和維護。因此,系統將能夠獲得最大的正常運行時間。
特征
LibreNMS
LibreNMS是一個功能齊全的網絡監控系統。它基于 PHP/MySQL/SNMP。LibreMNS 涵蓋了廣泛的操作系統和網絡硬件。
它可以根據接口進行接口分組。使用 SNMP、CDP、ARP、FDP、OSPF、LLDP、BGP 可以自動發現整個網絡。
特征
cacti是一款使用PHP語言開的發性能與流量檢測軟件,檢測對象可以是Linux、Windows服務器,也可以是路由交換機等網絡設備,主要基于SNMP(simple、Network、Management、Protocol,簡單網絡管理協議)來搜集CPU占用、內存使用、運行進程、網卡流量等數據
1、服務器配置
構建cacti監控平臺時要先進行LAMP架構,這邊實驗我直接用yum一鍵安裝、在生產環境中最好使用手工編譯安裝
(1)yum安裝LAMP
yum -y install httpd
yum -y install mariadb mariadb-server
yum -y install php php-mysql
#編寫php首頁進行測試機
cd /var/www/html/
vim index.php
<?php
phpinfo();
?>
#關閉防火墻、SELinux
systemctl stop firewalld
setenforce 0
vi /etc/selinux/config
systemctl start httpd
chkconfig httpd on
(2)安裝工具包,snmp協議,rrdtool
yum -y install zlib freetype libjpeg fontconfig gd libxml2 php-gd libart_lgpl libpng
yum -y install net-snmp net-snmp-utils
yum -y install rrdtool rrdtool-devel
(3)安裝cacti監控源碼包
#用wget下載最新的源碼包
yum install wget
wget https://www.cacti.net/downloads/cacti-1.1.38.tar.gz
#解壓到/var/www/html底下然后用mv重命名為cacti
tar zxvf cacti-1.1.38.tar.gz -C /var/www/html/
mv /var/www/html/cacti-1.1.38/ /var/www/html/cacti
#創建cacti管理用戶
useradd -M -s /sbin/nologin cacti
#修改cacti屬主和數組
chown -R cacti.cacti /var/www/html/cacti/
#修改cacti底下include底下config.php文件
$database_type = "mysql";
$database_default = "cacti"; #修改數據庫名稱
$database_hostname = "localhost";
$database_username = "cacti"; #修改授權用戶
$database_password = "123456"; #修改授權密碼
$database_port = "3306";
$database_ssl = false;
(4)創建數據庫斌授予權限
#首先開啟數據庫并數據庫設置密碼
systemctl start mariadb.service
mysqladmin -uroot password abc@123
#進入數據庫船艦cacti數據庫并授予權限
mysql -u root -p
#創建名為cacti的數據庫并設定字符集utf-8
create database cacti default character set utf8;
#授予cacti用戶權限登陸密碼為
grant all on cacti.* to 'cacti'@'localhost' identified by '123456';
#設置時間
grant select on mysql.time_zone_name to 'cacti'@'localhost' identified by '123456';
quit
#把cacti目錄底下的cacti.sql導入到cacti數據庫里面(這邊使用的用戶時cacti用戶授予的密碼時asd123)
mysql -u root -p cacti < cacti.sql
(5)進入安裝頁面http://192.168.1.84/cacti/install
#打開php.ini配置文件找到date.timezone原本是注釋狀態需要去掉前面的;分號然后在=等于后面空格加上Asia/Shanghai
date.timezone = Asia/Shanghai
重啟HTTP服務
# yum -y install php-ldap php-mbstring php-process
yum install php-snmp
systemctl restart httpd
mysql -uroot -p
Set global collation_server=utf8_general_ci;
Set global character_set_client=utf8;
Set global max_heap_table_size=419430400;
Set global max_allowed_packet=17700000;
Set global tmp_table_size=73400320;
Set global join_buffer_size=73400320;
Set global innodb_file_per_table=ON;
Set global innodb_flush_log_at_trx_commit=2;
wget https://www.cacti.net/downloads/spine/cacti-spine-1.1.38.tar.gz
./configure && make && make install
cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
vi /usr/local/spine/etc/spine.conf
vi cacti.log
chown cacti.cacti cacti.log
chmod 777 cacti.log
chmod a+w /var/www/html/cacti/resource/snmp_queries/
chmod a+w /var/www/html/cacti/resource/script_server/
chmod a+w /var/www/html/cacti/resource/script_queries/
chmod a+w /var/www/html/cacti/scripts/
chmod a+w /var/www/html/cacti/log/
chmod a+w /var/www/html/cacti/cache/boost/
chmod a+w /var/www/html/cacti/cache/mibcache/
chmod a+w /var/www/html/cacti/cache/realtime/
chmod a+w /var/www/html/cacti/cache/spikekill/
yum install perl-devel perl-CPAN perl-YAML
cacti有實時流量圖,但大圖沒流量,而且不能生成rrd文件,可能原因總結:
1.system utilities->Rebuild poller cache
2.系統時間不準確,重新設置時間
3.圖像沒有生成,運行php /var/www/html/poller.php --force
4.權限問題,修改權限chmod 777 -R /var/www/html/rra
5.數據庫表有損壞,修復mysqlcheck -ao cacti --auto-repair -uroot -p
6.重啟snmpd服務service snmpd restart
或者:snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a