一、概念和特点
概念
Zabbix是一款开源、免费的监控软件 主要用于7*24*365实时监控网络设置,操作系统,应用程序,网络带宽等资源的运行状态,并且一旦发生异常能够第一时间个SA管理员发送报警信息
特点
- Zabbix是c/s结构,有client客户端和server服务端
- 支持web界面管理通过web轻松管理Zabbix监控
- 可以监控Windows、Linux服务器,网络设置(防火墙、路由器)
- 可以批量监控机器,监控100~1000台机器
- 能够进行二次开发,提供API,供运维平台进行整合
- 具有Zabbix-proxy代理节点,可以代替server去监控客户端
二、核心组件
Zabbix监控主要由五大组件组成:Zabbix_server、Zabbix_agent、Zabbix_web、Zabbix_proxy、Zabbix-database
Zabbix_server
作为整个监控平台的核心组件,主要用于汇总、收集客户端的监控数据,并且将监控数据持久化转移至后端数据库中
Zabbix_agent
Zabbix_agent被称为客户端插件,主要用于采集客户端监控指标,CPU,MEM,I/O,进程数,打开文件数,文件是否被修改等
Zabbix_web
Zabbix_Web是基于php语言开发的网站部署,SA管理员可以更加快捷,高效的去管理zabbix监控平台(查看监控、添加监控、删除数据)
Zabbix_proxy
作为Zabbix_server的分布式代理,可以代替Zabbix_server实现客户端监控数据的汇总、收集并将监控的数据转至Zabbix_server端
Zabbix-databse
Zabbix-databse是一个关系型数据库(MySQL),主要存储Zabbix整个监控平台的数量,监控指标、历史数据、趋势数据、用户名、密码权限等
三、Zabbix实战
实战步骤
bash
## 环境准备
server端:10.0.0.6
agent端: 10.0.0.7
## 准备Zabbix源码包(可以去官网下载)
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.32.tar.gz
tar -zxvf zabbix-6.0.32.tar.gz
## 预编译(可能会遇到很多错误,具体报错解决方案如下)
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql
## 编译
make -j4 install
## 切换至zabbix目录,拷贝脚本
cd /root/zabbix-6.0.32
cp misc/init.d/tru64/zabbix_* /etc/init.d/
## 启动脚本(可能遇到权限用户问题)
/etc/init.d/zabbix_agentd start
/etc/init.d/zabbix_server start
## 安装zabbix-database、web
yum -y install mysql-server mysql
yum -y install nginx
yum -y install php-fpm php-devel php-mysqlnd
## 修改nginx配置文件(添加PHP配置)
vim /etc/nginx/nginx.conf.default
grep -vE "#|^$" /etc/nginx/nginx.conf.default >/etc/nginx/nginx.conf
vim /etc/php-fpm.d/www.conf (修改listen)
listen = 0.0.0.0:9000
## 切换到zabbix目录,移动ui界面到nginx下
cd zabbix-6.0.3
\cp * /usr/share/nginx/html/ -a
## 重启数据库
systemctl start mysqld
zabbix安装遇到问题
安装gcc编译器:yum -y install gcc

安装mysql库文件:yum -y install mysql-devel;find / -name 'libmysql*.so'

安装事件库文件:yum -y install libevent-devel

安装pcre库文件:yum -y install pcre-devel

出现以下界面说明预编译过程完成

出现以下界面文件说明编译过程完成

启动服务出现报错:chmod +x /etc/init.d/zabbix_*

需要制作软连接:ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/

zabbix用户不存在需要手动创建
useradd -s /sbin/nologin zabbix -M

已经正常启动了

nginx需要加入的配置

网页出现500错误由于php缺少依赖
yum install php php-cli php-common php-devel php-embedded php-fpm php-gd php-mbstring php-mysqlnd php-opcache php-pdo php-xml -y

修改/etc/php.ini 文件,之后重启php-fpm

缺乏依赖包:yum -y install php-bcmath php-ldap

数据库缺少用户:建库新建用户
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'aaaAAA111.';
grant all privileges on zabbix.* to zabbix@localhost;
alter user 'zabbix'@'localhost' identified with mysql_native_password by 'aaaAAA111.';
flush privileges;

数据库不含库表文件需要自行导入
cd zabbix-6.0.32/database/mysql/
mysql -uzabbix -paaaAAA111. zabbix < schema.sql
mysql -uzabbix -paaaAAA111. zabbix < images.sql
mysql -uzabbix -paaaAAA111. zabbix < data.sql

无权限创建配置文件------>后端php-fpm管理后台
chown -R apache /usr/share/nginx/html/conf/

后台出现如下界面,即可正常登陆了

zabbix服务没有正常启动10051
寻找日志------>查找/zabbix/etc/zabbix.conf配置文件


查找日志/tmp/zabbix_server.log
数据库文件未在zabbix配置文件中正常配置

解决方案:修改数据库服务之后,重启zabbix_server服务:/etc/init.d/zabbix_server restart
修改DB_HOST和DB_PASSWORD


返回网页再次进行检查

将英文切换成中文

zebbix_server仪表盘报警问题


bash
/etc/init.d/zabbix_agentd start

字体出现了乱码

使用windows打开字体目录C:\Windows\Fonts====>上传字体到以下目录
切换进入此目录cd /usr/share/nginx/html/assets/fonts/
拷贝并覆盖原字体:
cp DejaVuSans.ttf DejaVuSans.ttf.bak
cp MSYH.TTC DejaVuSans.ttf

zabbix如何监控另一台客户机
bash
## 上传zabbix安装包(zabbix-6.0.32.tar.gz)
ls -ld zabbix-6.0.32
## 解压zabbi安装包
tar -zxvf zabbix-6.0.32.tar.gz
## 预编译命令
./configure --prefix=/usr/local/zabbix --enable-agent
## 编译命令
make -j4 install
## 拷贝启动脚本
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
## 创建执行权限
chmod o+x /etc/init.d/zabbix_agentd
部署后发现监控主机还无法启动=====>找到web界面监控主机进行添加

在zabbix_web里面添加新主机

修改zabbix的etc配置内容
vim /usr/local/zabbix/conf/zabbix_agentd.conf
grep -vE '^#|^$' zabbix-6.0.32/conf/zabbix_agentd.conf

如何监控nginx服务
方法思路:使用zabbix自定义key
vim /usr/local/zabbix/etc/zabbix_agentd.conf
UserParameter=check_nginx_process,ps -ef|grep nginx|grep -v grep| wc -l

配置监控项

添加配置信息

配置图表


最好校验变化数据
