Leave me alone.

Zabbix

Posted on By gtahub

监控

监控系统特点

  • 监控系统能够自定义监控的内容,自己通过脚本采集所需的数据
  • 数据需要存入到数据库,日后对该数据进行分析计算
  • 监控系统可以简易,快速的部署到服务器
  • 数据可视化直观清晰

异常告警通知

  • 可以定义复杂度告警逻辑,做到监控项之间的关联告警,例如程序之间的依赖检测,而不是只单独检测某一个指标
  • 告警可以确认响应,让运维组内的人知道已经有人在处理告警问题
  • 告警方式可以自定义,如短信,邮件,以及微信,钉钉等
  • 告警内容可以自定义,能够写入一些简单的分析,便于运维人员直观了解数据,否则还得去服务器查看
  • 告警后,可以预处理一些任务,如自我修复,重启,采集数据等

协同工作

  • 监控系统有强大等API,提供给开发调用,其他系统调用
  • 监控数据是开放性,数据结构主流,便于解析
  • 监控可视化可以简易的插件使用,而非复杂的js文件

zabbix

官方文档:https://www.zabbix.com/documentation/current/zh/manual

介绍

zabbix是由Alexei Vladished 开发的一种网络监视、管理系统,基于Server-Client架构。可用于监视各种网络服务、服务器和网路机器等状态。

使用各种Database-end如MySQL,PostgreSQL,SQLite,Oracle储存资料。Server端基于C语言,Web管理端基于PHP所开发。

zabbix可以使用多种方式监视,可以只使用Simple Check不需要安装Client端,亦可基于SMTP或HTTP各种协议定制监视。

在客户端如UNIX,Windows中安装zabbix agent之后,可监视CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装Agent在监视对象中,zabbix也可以经由SNMP、TCP、ICMP、利用IPMI、SSH、telnet对目标进行监视。

zabbix自带的item足够满足普通小公司的监视需求,对于大公司也可以设定自定义的Item,自动生成报表,也有API可以和其他系统集成。

特点

  • 支持自定义监控脚本,提供需要输出的值即可
  • zabbix存在模板的概念,可以方便的将一组监控项进行部署
  • zabbix每一个item也就是监控项,都可以看到历史记录,且web界面友好
  • zabbix有强大的Trigger(触发器)定义规则,可以定义复杂的报警逻辑
  • zabbix提供了ack报警确认机制
  • zabbix支持邮件,短信,微信等告警
  • zabbix在触发告警后,可以远程执行系统命令
  • zabbix有原生的PHP绘图模块

名词

  • zabbix server:服务端,收集数据,写入数据
  • zabbix agent:部署在被监控的机器上,是一个进程,和zabbix server进行交互,以及负责执行命令
  • Host:服务器的概念,指zabbix监控的实体,服务器,交换机等
  • Hosts:主机组
  • Applications:应用
  • Events:事件
  • Media:发送通知的通道
  • Remote command:远程命令
  • Template:模板
  • Item:对于某一个指标的监控,称之为Items,如某台服务器的内存使用状况,就是一个Item监控项
  • Trigger:触发器,定义报警的逻辑,有正常,异常,未知三个状态
  • Action:当Trigger符合设定值后,zabbix指定的动作,如发送邮件

程序组件

  • zabbix_server:服务端守护进程
  • zabbix_agentd:agent守护进程
  • zabbix_proxy:代理服务器
  • zabbix_database:存储系统,mysql,pgsql
  • zabbix_web:web GUI图形化界面
  • zabbix_get:命令行工具,测试向agent发起数据采集请求
  • zabbix_sender:命令行工具,测试向server发送数据
  • zabbix_java_gateway:java网关

安装

安装要求

https://www.zabbix.com/documentation/current/zh/manual/installation/requirements

关闭防火墙

systemctl disable firewalld.service --now

配置yum源

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm

#查看目录
ls /etc/yum.repos.d

#替换为aliyun的镜像仓库
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

#修改zabbix-front前端源
enabled=1

#清空缓存
yum clean all
yum makecache

服务端下载

yum install zabbix-server-mysql zabbix-agent -y

安装Software Collections

便于后续安装高版本的php,默认yum安装的php版本为5.4过低

SCL(Software Collections)可以在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包

yum install centos-release-scl -y

安装zabbix前端环境

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

安装zabbix所需的数据库,mariadb

yum install mariadb-server -y

启动并设置开机自启

systemctl enable mariadb --now

初始化数据库,设置密码

mysql_secure_installation

#登录数据库
mysql -uroot -proot

#添加数据库用户,以及zabbix所需的数据库信息
create databse zabbix character set utf8 collate utf8_bin;

#创建用户,只允许本机登录
create user zabbix@localhost itentified by 'zabbix';

#用户授权,将zabbix数据库所有权限授予zabbix用户
grant all privileges on zabbix.* to zabbix@localhost;

#刷新授权表
flush privileges;
exit;

导入数据库信息

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix zabbix -pzabbix
#查看zabbix数据库所有表
show tables;

修改zabbix配置文件

修改数据库密码

vi /etc/zabbix/zabbix_server.conf

#修改数据库密码
DBPassword=zabbix

修改zabbix的php配置文件

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

#修改时区
php_value[date.timezone] = Asia/Shanghai

启动zabbix相关服务

systemctl restart zabbix-server zabbix-agent httpd rh-php72-fpm && systemctl enable zabbix-server zabbix-agent httpd rh-php72-fpm

访问zabbix

  • http://192.168.10.133/zabbix
  • 账号密码:Admin zabbix

修改语言

  • 登录后在界面点击User settings
  • 点击Lanaguage的下拉框选择Chinese(zh_CN)

部署客户端

机器环境

  • 192.168.10.134 zabbix-agent2
  • 192.168.10.135 zabbix-agent2
#工作节点执行
#同步服务器时间
yum install ntpdate -y
ntpdate -u ntp.aliyun.com

#统一时区配置
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

安装zabbix-agent2

#工作节点执行
#配置yum源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

yum clean all
yum makecache

#安装
yum install zabbix-agent2 -y

#查看配置文件
cat /etc/zabbix/zabbix_agent2.conf
#启动命令
ls -l /usr/sbin/zabbix_agent2

#启动客户端
systemctl enable zabbix-agent2 --now

#查看进程端口
netstat -tnlp | grep zabbix

#修改配置文件
vi /etc/zabbix/zabbix_agent2.conf
#修改为服务端ip
Server=192.168.10.133
ServerActive=192.168.10.133
#修改为当前主机名
Hostname=agent-01

#重启服务
systemctl restart zabbix-agent2

验证连通性

#调度节点执行
#安装zabbix-get
yum install zabbix-get -y

#测试向agent发起数据采集请求
zabbix_get -s '192.168.10.134' -p 10050 -k 'agent.ping'

解决zabbix-server查看的乱码问题

#安装字体
yum install wqy-microhei-fonts -y

#复制并覆盖字体文件
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

添加zabbix-agent主机

  • 点击左侧菜单栏配置 -> 主机
  • 点击右上角创建主机
    • 创建主机
      • 主机名称:和工作节点hostname一致
      • 可见的名称:hostname-ip
      • 群组:选择Linux servers
      • Interfaces:IP地址(192.168.10.134),连接到IP,端口(10050)
      • 描述:…
      • 最后点击添加
    • 关联模板:点击模版,在Link new templates中搜索Template OS Linux by Zabbix agent,选择并添加

查看监测主机

  • 点击左侧菜单栏配置 -> 监测
    • 点击主机
      • 名称:创建主机时指定的可见名称
      • 接口:ip:port
      • 可用性:ZBX为绿色时表示正常收集信息
      • 最新数据:点击即可查看服务器负载信息
      • 图形:点击可查看可视化负载信息

参考教程