1.常见的监控软件有哪些,各自有什么特点
Cacti
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
简单的说Cacti就是一个PHP程序。它通过使用SNMP协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP 软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL工具绘图,通过PHP程序展现出来。我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图。
Cacti是很老的一款监控工具了,其实说它是一款流量监控工具更合适,对流量监控比较精准,但缺点很多,出图不好看,不支持分布式,也没有告警功能,所以使用的人会越来越少。
Nagios
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios主要的特征是监控告警,最强大的就是告警功能,可支持多种告警方式,但缺点是没有强大的数据收集机制,并且数据出图也很简陋,当监控的主机越来越多时,添加主机也非常麻烦,配置文件都是基于文本配置的,不支持web方式管理和配置,这样很容易出错,不宜维护。
Zabbix
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供强大的通知机制以让系统运维人员快速定位/解决存在的各种问题。
Zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
Zabbix解决了cacti没有告警的不足,也解决了nagios不能通过web配置的缺点,同时还支持分布式部署,这使得它迅速流行起来,zabbix也成为目前中小企业监控最流行的运维监控平台。
当然,Zabbix也有不足之处,它消耗的资源比较多,如果监控的主机非常多时,可能会出现监控超时、告警超时等现象,不过也有很多解决办法,比如提高硬件性能、改变zabbix监控模式等。
Ganglia
Ganglia是一款为HPC(高性能计算)集群而设计的可扩展的分布式监控系统,它可以监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的gmond守护进程来采集CPU 、内存、硬盘利用率、I/O负载、网络流量情况等方面的数据,然后汇总到gmetad守护进程下,使用rrdtool存储数据,最后将历史数据以曲线方式通过PHP页面呈现。
Ganglia监控系统有三部分组成,分别是gmond、gmetad、webfrontend。gmond安装在需要收集数据的客户端,gmetad是服务端,webfrontend是一个php的web ui界面,ganglia通过gmond收集数据,然后在webfrontend进行展示。
Ganglia的主要特征是收集数据,并集中展示数据,这是ganglia的优势和特色,ganglia可以将所有数据汇总到一个界面集中展示,并且支持多种数据接口,可以很方面的扩展监控,同时,最为重要的是,ganglia收集数据非常轻量级,客户端的gmond程序基本不耗费系统资源,而这个特点刚好弥补了zabbix消耗性能的不足。
最后,Ganglia在对大数据平台的监控更为智能,只需要一个配置文件,即可开通Ganglia对hadoop、spark的监控,监控指标有近千个,完全满足了对大数据平台的监控需求。
Centreon
Centreon是一款功能强大的分布式IT监控系统,它通过第三方组件可以实现对网络、操作系统和应用程序的监控:首先,它是开源的,我们可以免费使用它;其次,它的底层采用类似nagios的监控引擎作为监控软件,同时监控引擎通过ndoutil模块将监控到的数据定时写入数据库中,而Centreon实时从数据库读取该数据并通过Web界面展现监控数据;最后,我们可以通过Centreon web一键管理和配置主机,或者说Centreon就是nagios的一个管理配置工具,通过Centreon提供的Web配置界面,可以轻松完成nagios需要手工配置主机和服务的不足。
Centreon的强项是一键配置和管理,并支持分布式监控,nagios能够完成的功能,通过centreon都能实现,同时,centreon还可以和ganglia进行集成,centreon将ganglia收集到的数据进行整合,可以实现主机自动加入监控以及自动告警的功能。
Prometheus
Prometheus是一套开源的系统监控报警框架,它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。Prometheus是为服务的可靠性而设计的,当服务出现故障时,它可以使你快速定位和诊断问题。
Grafana
Grafana是一个开源的度量分析与可视化套件,通俗的说,Grafana就是一个图形可视化展示平台,它通过各种炫酷的界面效果展示我们的监控数据,
如果你觉得zabbix的出图界面不够好看,逼格不够高,就可以使用Grafana的可视化展示,同时,Grafana支持许多不同的数据源,Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB都可以完美支持。
对比图
常用的监控软件:
nagios 擅长报警,配置比较麻烦 cacti 擅长绘画,流量图
zabbix 结合nagios和cacti的优点,还要结合grafana绘图
prometheus 普罗米修斯 监控容器
agent 代理 奸细
监控指标:
硬件:
电源
温度
软件:
系统:
内存使用率
CPU使用率
磁盘使用率
网络:
网卡流量
业务:
进程
日志
2.zabbix监控部署
部署zabbix先应该部署lamp架构
部署zabbix的mysql应该用8.0以上版本,mariadb应该用10.5以上版本
mariadb10.5.9版本的安装:
yum -y install http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-common-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-errmsg-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
yum -y install mysql-selinux psmisc
yum -y install http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
yum -y install http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-server-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
部署zabbix监控
创建zabbix用户
[root@localhost ~]# useradd -r -M -s /sbin/nologin zabbix
[root@localhost ~]# id zabbix
uid=992(zabbix) gid=991(zabbix) groups=991(zabbix)
下载zabbix压缩包及依赖包
下载zabbix压缩包
[root@localhost ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.6.tar.gz
解压zabbix压缩包
[root@localhost ~]# tar -zxvf zabbix-6.4.6.tar.gz
下载依赖包
[root@localhost ~]# yum -y install net-snmp-devel libevent-devel mysql-devel
[root@localhost ~]# yum -y install http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/OpenIPMI-devel-2.0.31-3.el8.x86_64.rpm
[root@localhost ~]# ls
anaconda-ks.cfg zabbix-6.4.6.tar.gz zabbix-6.4.6
创建zabbix数据库和表
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.018 sec)MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'zabbix123';
Query OK, 0 rows affected (0.025 sec)MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.002 sec)MariaDB [(none)]> SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.014 sec)
还原数据库和表
[root@localhost ~]# cd zabbix-6.4.6
[root@localhost zabbix-6.4.6]# ls
aclocal.m4 ChangeLog config.sub database install-sh man README
AUTHORS compile configure depcomp m4 misc sass
bin conf configure.ac include Makefile.am missing src
build config.guess COPYING INSTALL Makefile.in NEWS ui
[root@localhost zabbix-6.4.6]# cd database/
[root@localhost database]# ls
elasticsearch Makefile.am Makefile.in mysql oracle postgresql sqlite3
[root@localhost database]# cd mysql/
[root@localhost mysql]# ls
data.sql history_pk_prepare.sql Makefile.am schema.sql
double.sql images.sql Makefile.in[root@localhost mysql]# mysql -uzabbix -pzabbix123 zabbix < schema.sql
[root@localhost mysql]# mysql -uzabbix -pzabbix123 zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -pzabbix123 --default-character-set=utf8mb4 zabbix < data.sql
MariaDB [(none)]> SET GLOBAL log_bin_trust_function_creators = 0;
Query OK, 0 rows affected (0.000 sec)
编译安装zabbix
设置一个环境变量
[root@localhost ~]# export CFLAGS="-std=gnu99"
编译安装
[root@localhost ~]# cd zabbix-6.4.6
[root@localhost zabbix-6.4.6]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi需要make,直接make install
[root@localhost zabbix-6.4.6]# make install查看配置文件
[root@localhost zabbix-6.4.6]# cd /usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d
修改配置文件
[root@localhost etc]# pwd
/usr/local/etc
[root@localhost etc]# vim zabbix_server.conf# DBPassword=
DBPassword=zabbix123
启动服务
[root@zabbix mysql]# zabbix_server
[root@zabbix mysql]# zabbix_agentd
[root@zabbix mysql]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
安装和配置zabbix的web页面
[root@zabbix ~]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@zabbix ~]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@zabbix ~]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@zabbix ~]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@zabbix ~]# systemctl restart php-fpm.service/service php-fpm restart[root@zabbix ~]# mkdir /usr/local/apache/htdocs/zabbix
[root@zabbix zabbix-6.4.6]# \cp -a ui/* /usr/local/apache/htdocs/zabbix/
[root@zabbix zabbix-6.4.6]# ls /usr/local/apache/htdocs/zabbix/
......
[root@zabbix zabbix-6.4.6]# chown -R apache.apache /usr/local/apache/
[root@zabbix ~]# vim /etc/httpd24/httpd.conf
(省略)
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/zabbix"
ServerName zabbix.cl.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/
<Directory "/usr/local/apache/htdocs/zabbix.cl.com">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
[root@zabbix ~]# chmod 777 /usr/local/apache/htdocs/zabbix/conf/[root@zabbix ~]# systemctl restart httpd.service
在浏览器访问安装页面进行安装
可以用ip地址访问,有可以用域名来访问
部署完成后还需要把文件权限改回755
[root@zabbix apache]# chmod 755 /usr/local/apache/htdocs/zabbix/conf