zabbix server
开源监控软件:cacti、nagios、zabbix、smokeping、open-falcon等
- Cacti:基于LAMP平台展现的网络流量监测及分析工具,通过SNMP技术或自定义脚本从目标设备/主机获取监控指标信息;其次进行数据存储,调用模板将数据存到数据库,使用rrdtool存储和更新数据,通过rdtool绘制结果图形;最后进行数据展现,通过Web方式将监控结果呈现出来。
- Nagios:用来监视系统和网络的开源应用软件,利用其众多的插件实现对本机和远端服务的监控,当被监控对象Nagios:发生异常时,会及时向管理员告警,提供一批预设好的监控插件,用户可以之间调用,也可以自定义Shell脚本来监控服务,适合各企业的业务监控,可通过Web页面显示对象状态、日志、告警信息,分层告警机制及自定义监控相对薄弱。
- Smokeping:是一款用于网络性能监测的开源监控软件,主要用于对IDC的网络状况,网络质量,稳定性等做检测,通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况。
- Open-falcon:小米公司开源出来的,监控软件,监控能力和性能较强。
- Zabbix:目前使用较多的开源监控软件,可横向扩展、自定义监控项、支持多种监控方式、可监控网络与服务等。
商业监控解决方案:
- 监控宝、听云
报警机制的时间,一般为1,3,5分钟
分层告警机制,在指定时间未解决完会层级上报,如运维人员在10分钟内未解决上报给总监,可能会涉及到跨部门调度,运维解决不了需要开发去协助,跨部门调度,数据库,网络,若人员协调失败,最后上报给CTO
相关解决方案
应用 | 说明 |
网络 | 网卡出入流量,TCP连接状态 |
服务器 | 硬件相关资源利用率,硬件状态健康检查,温度 |
云 | 云应用,组件,微服务 |
应用 | tomcat php |
服务 | 应用在服务之上 |
WEB监控 | URL |
存储设备 | 磁盘空间利用率,健康状态 |
虚拟机 | 虚拟机相关状态 |
JAVA应用程序 | JAVA对内存垃圾回收,线程数 |
数据库 | 主从同步是否正常,延时情况 |
如何实现监控
- 数据采集:周期性时序数据
- 主机/对象:服务器、路由器、交换机、存储、防火墙、IP、PORT、URL、自定义监控对象...
- 采集目标:监控项,指标数据(metrics data)
- 数据存储:
- 存储系统:
- SQL: MySQL/MariaDB(Zabbix)
- NoSQL: Redis(Open-falcon)
- rrd: Round Robin Database(Cacti)
- 数据:
- 历史数据:每个监控项采集到的每个监控值
- 趋势数据:趋势表里主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个小时内所采集到的数据个数。
- 阈值:severity,可按照等级实现层级报警
- 告警:email、短信、微信、语音、故障自愈
监控数据注意规划存储一定的时间,避免资源空间占满
主机数监控项数24小时1小时采集次数30天
核心任务
- 采集: zabbix-server, zabbix-proxy zabbix-agent
- Agentless: SNMP Telnet, ssh, IPMI, JMX
- Agent: zabbix agent
- 存储: zabbix database
- 展示: zabbix web
- graph-> screen-> slideshow(将多个 screen以幻灯片的方式进行轮流展示)
- 告警:
- host(host groups)<-templates
- host-> Items-> triggers-> acton(条件- conditions,操作 operations)
zabbix安装
先了解使用rpm二进制方式进行安装,后面会补充源码包安装过程
阿里云下载:https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/
获取安装包
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all
安装 Zabbix server,Web 前端,agent
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
创建初始数据库
yum install mariadb-server
vim /etc/my.cnf
max_connections=10000 最大连接数,建议修改,默认为1000,连接数过多,会报错,无法处理新的请求或繁忙
systemctl start mariadb
systemctl enable mariadb
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@"192.168.10.%" identified by 'pass123';
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -h 192.168.10.11 -p zabbix
修改zabbix配置文件
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=192.168.10.11
DBName=zabbix
DBUser=zabbix
DBPassword=pass123
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=8M 配置缓存大小,根据监控项和配置项来修改
HistoryCacheSize=16M 历史缓存大小,取值范围128K-2G
HistoryIndexCacheSize=4M 历史索引缓存大小
Timeout=30 监控项超时,建议修改30秒,默认为4秒
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
修改php时区
/etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
启动 Zabbix server 和 agent 进程
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
配置zabbix前端
参考:https://www.zabbix.com/documentation/4.0/manual/installation/install#installing_frontend
http://server_ip_or_name/zabbix
默认的用户名是 Admin,密码是 zabbix
查看zabbix agent连接是否正常
zabbix-get测试命令
添加agent端后,可在server端使用命令测试,是否能获取数据
yum install zabbix-get
zabbix_get -s 127.1 -p 10050 -k agent.ping
zabbix_get -s 127.1 -p 10050 -k system.cpu.load[percpu,avg1]
更改中文字体
修改中文语言后,查看数据图形乱码,修改zabbix默认中文字体,添加本机中文字体,建议常用的字体
将字体存放在目录下 /usr/share/zabbix/assets/fonts
sed 's/graphfont/simkai/' defines.inc.php -i
添加agent端
grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1,192.168.10.2 #允许IP或IP列表仅从此处列出的主机中采集数据
ServerActive=127.0.0.1
Hostname=192.168.10.11 #此配置值与zabbix-web新建主机名称保持一致,推荐修改为当前主机的IP地址
Include=/etc/zabbix/zabbix_agentd.d/*.conf
小结