Zabbix分布式监控系统

基础环境准备

主机名 IP地址 配置 系统
server 192.168.100.30 2vCPU、4G内存、40G硬盘 centos7.8
agent 192.168.100.40 2vCPU、4G内存、40G硬盘 centos7.8

修改主机名

关闭防火墙、se

yum:

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

添加host映射

# vi /etc/hosts
192.168.100.30 zabbix-server
192.168.100.40 zabbix-agent

LNMP环境部署(Zabbix服务端)

(1)上传LNMP环境部署包

[root@server opt]# ls
lnmp1.6-full.tar
[root@server opt]# tar -zxf lnmp1.6-full.tar.gz 
[root@server opt]# cd lnmp1.6-full
[root@server opt]# vi lnmp.conf 
MySQL_Data_Dir='/data/mysql'
[root@server opt]# mkdir -p /data/mysql
[root@server opt]# ./install.sh lnmp
选择安装MySQL5.7  PHP7.0以上 
4 Mysql
Mysql 密码:.....
选择InnoDB引擎是否开启:y
选择PHP版本:6
选择不安装内存分配器:1

Enter键开始安装
部署成功显示:

(2)测试访问网页:

Zabbix服务端部署及配置

(1)安装依赖包

[root@server ]# yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel

(2)创建zabbix用户

[root@server ]# useradd -s /sbin/nologin zabbix

(3)zabbix-4.0.3.tar.gz传到/usr/local/src目录下解压编译安装

[root@server ]# tar zxvf zabbix-4.0.3.tar.gz
[root@server ]# mkdir /usr/local/zabbix
[root@server ]# mv /usr/local/src/zabbix-4.0.3/* /usr/local/zabbix
[root@server ]# cd /usr/local/zabbix/
[root@server zabbix]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
选项说明:
● --prefix指定安装目录
● --enable-server安装Zabbix server
● --enable-agent安装Zabbix agent
● --with-mysql用MySQL来存储
编译完成结果:


#编译安装
[root@server zabbix]# make  && make install

(4)环境变量设置

#添加上去
[root@server zabbix]# vi /etc/profile export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/ #刷新环境
[root@server zabbix]# source /etc/profile [root@server zabbix]# echo $PATH
#查看版本
[root@server zabbix]# zabbix_server --version

(5)配置启动脚本

[root@server ]# cp /usr/local/zabbix/misc/init.d/fedora/core/zabbix_server /etc/init.d/
[root@server ]# cp /usr/local/zabbix/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@server ]# vi /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix  #zabbix安装目录

[root@server ]# vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix  #zabbix安装目录
#添加权限
[root@server ]#chmod 755 /etc/init.d/zabbix_*
#启动Zabbix服务及启动状态(如果开启不了则需要关机虚拟机重启才可以开启成功)
[root@server ]# systemctl start zabbix_server

[root@server ]# systemctl start zabbix_agentd

[root@server ]# systemctl status zabbix_server

[root@server ]# systemctl status zabbix_agentd

(6)登录数据库创建Zabbix用户和导入Zabbix库

[root@server ]# systemctl restart mysql
[root@server ]# mysql -h 127.0.0.1 -uroot -p上面设置的密码
mysql> create database zabbix character set utf8 collate utf8_bin;    ##创建Zabbix库和设置格式
mysql> grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix';            ##创建Zabbix用户并分配权限
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
mysql> flush privileges;       ##刷新权限
mysql> set names utf8;       ##设置字符集
mysql> use zabbix       ##切换到Zabbix库中

把源码/usr/local/zabbix/database/mysql/安装路径下的3个sql文件导入数据库:

mysql> source /usr/local/zabbix/database/mysql/schema.sql
mysql> source /usr/local/zabbix/database/mysql/data.sql
mysql> source /usr/local/zabbix/database/mysql/images.sql
mysql> show tables;        ##查看导入的表格

(7)编辑Zabbix server的配置(记得先备份配置文件)

[root@server ]# cp /usr/local/zabbix/etc/zabbix_server.conf{,.bak}
# 查找到修改
[root@server ]# vi /usr/local/zabbix/etc/zabbix_server.conf LogFile=/tmp/zabbix_server.log DBHost=127.0.0.1 ##指定数据库信息(需配合参数 DBSocket 使用) DBName=zabbix ##服务端连接数据库的库名 DBUser=zabbix ##连接数据库的用户 DBPassword=zabbix ##连接数据库的密码 DBPort=3306 ##指定连接数据库的端口 Timeout=30 ##与AGNET和其它外部设备通信超时设置,单位为秒 LogSlowQueries=3000 ##用于服务端数据库慢查询功能,单位是毫秒 DBSocket=/tmp/mysql.sock ##指定MYSQL的SOCK连接路径 #修改Zabbix目录的权限 [root@server ]# chown zabbix:zabbix -R /usr/local/zabbix/ #重启服务生效 [root@server ]# systemctl restart zabbix_server

 Zabbix Web界面部署

(1)配置Nginx虚拟主机

# 输入进去
[root@server ]# vi /usr/local/nginx/conf/vhost/zabbix.com.conf server
{ listen 81; server_name zabbix.com www.zabbix.com; index index.html index.htm index.php; root /data/nginx/zabbix; ##Zabbix Web界面数据目录 location ~ [^/]\.php(/|$) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/nginx/zabbix$fastcgi_script_name; include fastcgi_params; } }

 

源码安装包路径下的文件cp到Zabbix Web文件目录当中:

[root@server ]#  mkdir -p /data/nginx/zabbix
#生效服务 [root@server ]# /etc/init.d/nginx reload [root@server ]# cp -rf /usr/local/zabbix/frontends/php
/*
/data/nginx/zabbix

(2)修改PHP文件

# 查找修改
[root@server ]# vi /usr/local/php/etc/php.ini post_max_size = 32M max_execution_time = 350 max_input_time = 350 date.timezone = Asia/Shanghai

(3)修改php-fpm.conf的配置文件

# 删除第一个 listen
[root@server ]# vi /usr/local/php/etc/php-fpm.conf [www] listen = 127.0.0.1:9000

重启php-fpm服务:

[root@server ]# /etc/init.d/php-fpm restart

检查端口是否启动:

[root@server ]# netstat -lntp | grep php
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      2141/php-fpm: maste

Web界面部署安装

初始页面:IP地址:81:setup.php

检查安装条件:(根据提示解决不满足条件的问题!)

配置数据库连接信息:

 配置Zabbix服务端详细信息:

 安装前确认信息:

安装报错:

点击蓝色的那个链接下载

根据提示下载,并把它放到指定路径/data/nginx/zabbix/conf/zabbix.conf.php

 重新刷新界面:

登录界面:(账号:Admin 密码:zabbix)

 登录后的界面:

Zabbix 客户端部署

任务描述

完成Zabbix Web界面的部署安装之后,了解Zabbix客户端部署安装,了解配置主动模式与被动模式的区别,检测是否安装成功。

(1)下载Zabbix客户端安装包

[root@agent ]# yum -y install wget
[root@agent ]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.3-1.el7.x86_64.rpm

(2)安装Zabbix客户端

[root@agent ]# rpm -ivh zabbix-agent-4.0.3-1.el7.x86_64.rpm

安装完后我们后面经常使用的文件如路径如下:

/etc/zabbix/zabbix_agentd.conf     ##zabbix_agentd配置文件
/etc/zabbix/zabbix_agentd.d         ##zabbix_agentd进程文件
/var/run/zabbix/zabbix_agentd.pid         ##zabbix_agentd pid文件路径
/var/log/zabbix/zabbix_agentd.log         ##zabbix_agentd日志文件路径

备份配置文件:

[root@agent ]# cp /etc/zabbix/zabbix_agentd.conf{,.bak}
[root@agent ]# egrep -v '^$|#' /etc/zabbix/zabbix_agentd.conf.bak > /etc/zabbix/zabbix_agentd.conf

修改配置文件:


[root@agent ]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0        ##指定日志文件的大小,单位MB。0表示禁用日志轮转
ListenPort=10050    ##指定监听端口
StartAgents=3        ##Zabbix启动之后开启被动监控的进程数量,如果设置    为0,那么Zabbix被动监控被禁用
ListenIP=0.0.0.0        ##监听IP地址,默认为所有接口
Server=192.168.100.30        ##允许哪个Zabbix server的IP地址监控本机
#ServerActive=192.168.100.30        ##Zabbix 主动监控server的ip地址
Hostname=zabbix agent        
Include=/etc/zabbix/zabbix_agentd.d/*.conf    ##自定义配置文件

主动模式和被动模式的区别:

● 主动模式:Zabbix的agent端,也就是客户端,主动把自己监测到的数据,上报给Zabbix服务器,Zabbix服务器不需要向agent发起请求。

注意:ServerActive是主动模式开关,注释掉主动模式关闭;与Server不能同时配置。

●被动模式:Zabbix服务器向agent发送请求,告诉agnet我需要哪些数据,然后agnet执行相关操作,把执行结果返回给服务端。

注意:StartAgents=0表示被动模式关闭。

重启生效配置:

#重启生效
[root@server ]# systemctl restart zabbix-agent
#查看日志
[root@server ]# tail -f /var/log/zabbix/zabbix_agentd.log 
#查看端口10050是否启动
[root@server ]# netstat -lntp | grep zabbix

Zabbix Web界面的使用管理操作

任务描述

了解Web页面中的操作,如中文乱码处理、用户管理、主机和主机组的管理等

(1)首先设置中文

 

 

 (2)解决中文乱码问题

 Windows控制面板找到字体,选择字体文件,拷贝到Zabbix服务器的/data/nginx/zabbix/fonts目录下。 

 

 DejaVuSans.ttf字体备份起来,然后用simhei.ttf重命名成DejaVuSans.ttf

 重新刷新页面后中文乱码消失 

 (3)创建客户端监控主机

创建群组

 

 找到配置→主机→创建主机

 

 

 接着配置主机链接模板,选择Template OS Linux,单击“添加”按钮

 之后在最新数据中查看结果

 

 创建模板

选择配置→模板→创建模板→添加监控项

 

选择自带的监控项:

 

 

 

 Zabbix自定义监控项

任务描述

创建自定义监控脚本,并部署自定义监控项,实现监测。

(1)配置自定义监控脚本,修改agent配置文件

#空的文件写进去下面的代码
[root@agent ]# vi /etc/zabbix/zabbix_agentd.d/users.conf
UnsafeUserParameters=1
UserParameter=users, /bin/bash /scripts/user.sh        

2)配置监控脚本:

[root@agent ]# mkdir /scripts
[root@agent ]# vi /scripts/user.sh
#!/bin/bash
user=$(who |wc -l)
if [ $user -gt 3 ];then
        echo '1'
else
        echo '2'
fi

(3)添加权限:

[root@agent ]# chown -R zabbix.zabbix /scripts/
[root@agent ]# chmod 777 /scripts/user.sh

(4)测试脚本:

如果返回值为1说明在线用户超过3个,如果返回值为2,说明在线用户不超过3个;

生效配置:

[root@agent ]# systemctl restart zabbix-agent
[root@agent ]# systemctl status zabbix-agent
[root@agent ]# netstat -lntp | grep zabbix

(5)服务端测试:

[root@agent ]# zabbix_get -s 192.168.100.40 -k users

zabbix_get命令是在server端用来检查agent端的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用zabbix_get来检查能否采集到数据,以便判断问题症结所在。

Zabbix_get参数说明:

● -s --host:指定客户端主机名或者IP。

● -p --port:客户端端口,默认10050。

● -I --source-address:指定源IP,写上Zabbix server的IP地址即可,一般留空,服务器如果有多IP的时候,指定一个。

● -k --key:用户想获取的key

至于使用长参数还是短的,自己选择,我经常使用-s而不是-host,

如果不知道key参数可以使用 zabbix_agentd -p 命令寻找自己想要找的参数,如下:

(6)进入Zabbix Web配置

流程:配置→主机→监控项→创建监控项;配置→主机→触发器→创建触发器。

 

 

 (7)验证

客户端主机开多于三个用户,看是否会触发报警!

posted @ 2021-12-29 11:46  花花de代码生活  阅读(124)  评论(0编辑  收藏  举报