Zabbix安装与应用
Zabbix是一种开源的网络监控软件,用于监视网络设备、服务器和应用程序的运行状态。它可以收集各种指标数据,如CPU利用率、内存使用情况、网络流量等,并通过图形化界面展示这些数据。Zabbix还支持警报功能,可以在系统出现问题或达到预设阈值时发送通知。
Zabbix是一个功能强大的监控系统,可以帮助管理员实时监控和管理其网络设备。
一、zabbix相关知识
- 主站:https://www.zabbix.com
- 文档:https://www.zabbix.com/documentation/current/manual
- 共享资源:https://share.zabbix.com
- 监控范围:硬件设备,网络设备,操作系统,虚拟平台,oracle,mongodb,emc,redis,docker,交换机,防火墙,存储,cpu,硬盘,内存,网络状况,vmware
- 使用方式:snmp agent,zabbix agent,ipmi,ssh, jmx,http,odbc,trapper
- 核心思路:
(1) docker配置https://github.com/zabbix/zabbix-docker
(2) 使用spnmv2监控所有启动 spnmv2的主机,此时可以监控硬盘,cpu,内存,网络,有snmp的模板使用,因为模板中启用了lld,所以需要进行微调监控项,如果要添加自定义的oids,需要查询相应的mib设置,这个需要查的比较多.
(3) 对docker,数据库,虚拟机如果想要更深入的监控,到share.zabbix.com中导入相应模板,研究相应的监控指标
(4) 可以使用主机发现,但是要设置对应的发现后操作,比如说链接模板
(5) 如果要监控spnmv2提供不了的项目,应该安装 agent,agent可以执行本地shell,可扩展采集的项目就很多了
(6) 如果要监控温度等更加底层的,可能需要ipmi
(7) 对监控指标的使用分两种一种是告警及操作,另一种是图形显示
(8) 告警有告警策略,操作可以执行特别的语句,需要针对不同的情况具体分析
(9) 图形显示默认会提供简单的图形,综合图形比较难用,可以把数据转移到grafana显示
(10) jmx监控及web监控当前应该都用不到,可以暂时忽略
(11) 如果规模大了,可以使用proxy.
(12) 可以尝试使用elasticsearch保存数据,速度应该要比关系数据库快.
(13) 可以使用log监控,但是感觉效果和filebeat比起来,差不少.
(14) 服务监控感觉还是比较有用的,用于更上层的观点使用
(15) 如何形成一个完整的监控视图,可以对后台服务到底在做什么有一个清晰的表达,可以在发生问题时进行及时处理,以及在发生问题之前就可以提出及时预警,还是比较有挑战的.同时通过指标的统计分析找到各个服务的薄弱点并提出告警,应该也是监控服务的一个重要点.
二. zabbix安装配置
1. 配置docker-compose文件
- 从项目https://github.com/zabbix/zabbix-docker下载docker-compose_v3_centos_pgsql_latest.yaml文件修改,仅保留zabbix-server,zabbix-web-apache-pgsql,zabbix-agent,postgres-server,db_data_pgsql以及networks,secrets
- 拷贝相关环境文件.env*及密码文件
- 删除无关的依赖容器及文件
- 全部拷贝到目标机器上用docker-compose启动即可
2. 解决中文图标不显示中文问题
- 修改web配置增加字体,及修改定义文件
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./simkai.ttf:/usr/share/zabbix/assets/fonts/simkai.ttf:ro
- ./defines.inc.php:/usr/share/zabbix/include/defines.inc.php:ro
- ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro
- defines.inc.php从镜像中拷贝或者镜像生成源拷贝,修改字体为simkai 宋体
- 从windows中拷贝字体simkai
3. 解决web页时区不对问题
修改 .env_web,增加PHP_TZ=Asia/Shanghai,默认是东三区,重新up -d即可
4. 去掉主机的agent
主机的agent没有用,而且当前好像通讯有问题,可以直接使用snmp监控,不用agent.但是在zabbix-server中会有agent的监控项及报警器,进入web后,点击配置->主机->Zabbix server->模板,在Template OS Linux by Zabbix agent后点击取消链接并清理,然后点击更新
5. 修改环境变量-调优
https://serverfault.com/questions/558671/zabbix-icmp-pinger-processes-more-than-75-busy
https://blog.51cto.com/allmrys/2286220
6. 重新初始化
docker-compose -f docker-compose_v3_centos_pgsql_latest.yam down
rm -fr zbx_env
docker-compose -f docker-compose_v3_centos_pgsql_latest.yam up -d
7. 登录web
http://xxx
默认Admin Admin
8. 配置主机监控
所有主机开放spnm服务 v2c ,团体名:xxx,主机ip使用自动发现,当所有主机完成后,停止自动发现.
- 编辑监控模板
web登录后,复制模板Template OS Linux SNMPv2 模板为Template OS Linux SNMPv2,编辑模板编辑宏{$SNMP_COMMUNITY}=xxx - 编辑自动发现
打开自动发现,复制Local network为xxx-Local network,编辑ip范围,更新间隔为10m,清除以前的检查,增加检查snmpv2客户端,端口:161,SNMP community为xxx,SNMP OID为SNMPv2-MIB::sysName.0,设备唯一性准则,主机名称,可见的名称,都选ip,暂时不启用,更新即可