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://www.zabbix.com/cn/download?zabbix=4.0&os_distribution=centos&os_version=7&db=mysql&ws=apache​

阿里云下载:​​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


zabbix1 ---- server_数据库


zabbix1 ---- server_自定义_02


zabbix1 ---- server_mysql_03


zabbix1 ---- server_mysql_04


zabbix1 ---- server_mysql_05


zabbix1 ---- server_自定义_06


zabbix1 ---- server_自定义_07


默认的用户名是 Admin,密码是 zabbix

查看zabbix agent连接是否正常


zabbix1 ---- server_php_08


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默认中文字体,添加本机中文字体,建议常用的字体 

zabbix1 ---- server_数据库_09


zabbix1 ---- server_数据_10


将字体存放在目录下 /usr/share/zabbix/assets/fonts

sed  's/graphfont/simkai/' defines.inc.php  -i


zabbix1 ---- server_自定义_11


添加agent端


zabbix1 ---- server_mysql_12


zabbix1 ---- server_自定义_13


zabbix1 ---- server_mysql_14

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


zabbix1 ---- server_数据_15


小结


zabbix1 ---- server_mysql_16


zabbix1 ---- server_数据_17