常见监控方案
开源监控软件:cacti、nagios、zabbix、smokeping、open-falcon等
Cacti:基于LAMP平台展现的网络流量监测及分析工具,通过SNMP技术或自定义脚本从目标设备/主机获取监控指标信息;其次进行数据存储,调用模板将数据存到数据库,使用rrdtool存储和更新数据,通过rrdtool绘制结果图形;最后进行数据展现,通过Web方式将监控结果呈现出来。
官网地址:https://www.cacti.net/
https://github.com/Cacti/cacti
Nagios:用来监视系统和网络的开源应用软件,利用其众多的插件实现对本机和远端服务的监控,当被监控对象发生异常时,会及时向管理员告警,提供一批预设好的监控插件,用户可以之间调用,也可以自定义Shell脚本来监控服务,适合各企业的业务监控,可通过Web页面显示对象状态、日志、告警信息,分层告警机制及自定义监控相对薄弱。
官网地址: https://www.nagios.org/
Smokeping:是一款用于网络性能监测的开源监控软件,主要用于对IDC的网络状况,网络质量,稳定性等做检测,通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况。
官网地址:https://oss.oetiker.ch/smokeping/
Open-falcon:小米公司开源出来的监控软件,监控能力和性能较强。
官网地址:https://www.open-falcon.org/ https://github.com/XiaoMi/open-falcon
Zabbix:目前使用较多的开源监控软件,可横向扩展、自定义监控项、支持多种监控方式、可监控网络与服务等。
官网地址:https://www.zabbix.com/cn/
Zabbix编译安装
这里使用zabbix 5.0.14版本
上传解压源码后开始编译配置
1.创建用户
useradd -r -s /sbin/nologin zabbix
注:如果 Zabbix server 和 agent 运行在相同的机器上,建议使用不同的用户运行来 Zabbix server 和 agent。 否则,如果两者都作为同一用户运行,则 Zabbix agent 可以访问 Zabbix server 配置文件,并且可以轻松检索到 Zabbix 中的任何管理员级别的用户,例如,数据库密码。
2.在MYSQL中创建数据库和用户
注:使用utf8mb4会导致后续导入sql时索引超长的问题,故使用utf8。
CREATE DATABASE `zabbix` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
3.导入数据
按顺序导入
mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql
mysql -uzabbix -p123456 zabbix < database/mysql/images.sql
mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
4.编译安装
./configure --prefix=/app/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
如果只装server端把--enable-agent去掉
编译时由于之前编译nginx php redis已经安装了部分包,现在还缺的如下
yum install -y net-snmp net-snmp-devel libevent-devel java-1.8.0-openjdk-devel curl-devel
然后
make && make install
5.配置启动脚本
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
vim /etc/init.d/zabbix_server
vim /etc/init.d/zabbix_agent
修改启动目录
BASEDIR=/app/zabbix
systemd脚本
vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/app/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/app/zabbix/zabbix_server.pid
KillMode=control-group
ExecStart=/app/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
vim /usr