最全zabbix安装部署

监控

netstat -tunlp 	#查看进程
tail -f /var/log/zabbix/zabbix_server.log	#查看日志
tail  #显示文件末尾内容
history #查看历史命令  !+ 行号  直接使用
# hostnamectl set-hostname +主机名(修改主机名)

监控的生命周期

  1. 服务器上架到机柜

  2. 基础设施监控

    服务器温度,风扇转速,ipmitool命令(只能用在物理机)
    
    存储的监控(df,fdisk,iotop)
    
    cpu监控 lscpu,uptime,top,htop,glances
    
  3. 应用监控

安装服务端

1.关闭防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
systemctl disable --now firewalld

在这里插入图片描述

2.zabbix-server内存尽量大一点,4G最好

3.获取zabbix的下载源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

4.更换zabbix.repo源,为阿里
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

在这里插入图片描述

5.清空缓存,下载zabbix服务端
yum clean all
yum makecache
yum install zabbix-server-mysql zabbix-agent -y

6.安装工具,可以在机器上,使用多个版本的软件,并且不会影响整个系统的依赖环境
yum install centos-release-scl -y 

7.更改zabbix.repo中zabbix-frontend的数值

在这里插入图片描述

8.安装zabbix前端环境,且是安装到scl环境下
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

9.安装zabbix所需的数据库,mariadb
yum install mariadb-server -y

10.配置数据库开机启动
systemctl enable --now mariadb

11.初始化数据库,并设置密码
mysql_secure_installation

12.添加数据库用户
# 进入数据库,创建一个zabbix数据库:
create database zabbix character set utf8 collate utf8_bin;
# 创建一个zabbix用户,密码123
create user zabbix@localhost identified by '123';
# 修改权限
grant all privileges on zabbix.* to zabbix@localhost;

13.使用zabbix-mysql命令,导入数据库信息
# mysql -u 用户名 -p 数据库名
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix

14.修改zabbix server配置文件,修改数据库密码
# 进入/etc/zabbix/zabbix_server.conf中,修改DBPassword为数据库密码
vim /etc/zabbix/zabbix_server.conf
DBPassword=123
# 查看修改是否成功
grep '^DBPass' /etc/zabbix/zabbix_server.conf

15.修改zabbix PHP的配置文件
#进入/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf中最后一行改成php_value[date.timezone] = Asia/Shanghai

16.启动zabbix相关服务器
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

17.访问zabbix入口
本机ip/zabbix

18.安装成功后默认用户名:Admin,密码是:zabbix

安装客户端

agent2新版本采用golang开发,默认使用10050端口,也会zabbix客户端的端口。

1.环境准备,关闭防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
systemctl disable --now firewalld

2.注意时间正确
yum install ntpdate -y
ntpdate -u ntp.aliyun.com

3.时区统一
mv /etc/localtime{
    
    ,.back}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

zabbix-agent2部署流程

1.获取zabbix的下载源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

2.更换zabbix.repo源,为阿里
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

3.安装
yum install zabbix-agent2 -y

4.查看配置命令
/etc/zabbix/zabbix-agent2.conf

5.启动命令
ls -l /usr/sbin/zabbix_agent2

6.启动客户端
systemctl enable --now zabbix-agent2
#检查端口(yum install net-tools)
netstat -tnlp | grep zabbix
7.修改配置文件
nano /etc/zabbix/zabbix_agent2.conf
# 将Server,ServerActive改为server的IP地址
# 将Hostname改为本机名(使用hostname查询本机名)
# 查看修改后的文件
grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf

8.重启
systemctl restart zabbix-agent2

在这里插入图片描述

PidFile端口文件

LogFile日志文件

Server=x.x.x.x      #被动模式的server IP地址,如果为纯主动模式可以注释
# Server若有多个IP地址,使用逗号分隔开
ServerActive=x.x.x.x   #主动模式的serverIP地址

在这里插入图片描述

扫描二维码关注公众号,回复: 13612467 查看本文章

在这里插入图片描述

验证zabbix-agent2连通性

1.在Server中安装zabbix—get
yum install zabbix-get -y
2.验证连通性
zabbix_get -s '192.168.253.130' -p 10050 -k 'agent.ping'
#agent.ping 	测试连通性
#agent.name		查看主机名
#agent.uname 	查看主机信息

解决zabbix查看乱码问题

zabbix默认检测了服务端本身,但是编码有问题

1.安装字体
 yum -y install wqy-microhei-fonts

2.复制字体
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

添加zabbix-agent主机

在这里插入图片描述

自定义监控内容

自定义监控服务器登陆的人数

命令行角度

1.明确需要执行的Linux命令
who | wc -l  		#查看当前用户数

2.手动创建zabbix的配置文件,用于自定义key
vim /etc/zabbix/zabbix_agent2.conf

在这里插入图片描述

3.创建配置文件,以及内容
[root@zbx-agent01 zabbix_agent2.d]# cat userparameter.conf 
UserParameter=login.user,who|wc -l

4.在server中测试
zabbix_get -s '192.168.253.131' -p 10050 -k 'login.user'

在页面添加

添加流程

  1. 创建模板

在这里插入图片描述

  1. 创建应用集(好比一个文件夹,里面放入一堆监控项)

在这里插入图片描述

  1. 创建监控项,自定义item,具体监控内容

    在这里插入图片描述

  2. 创建触发器,当监控项获取到值得时候和触发器比较,判断,决定是否报警

    在这里插入图片描述

  3. 创建图形

在这里插入图片描述

  1. 将具体的主机和该模板链接,关联

在这里插入图片描述

邮件报警

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

全网监控方案

自动添加主机监控

  1. 克隆监控模板
  2. 自动注册,自动发现
  3. 使用zabbix的api接口,使用curl语言,或者开发自己的编程脚本如python等

监控实施方案

硬件监控(自带)

应用服务监控

rsync服务监控(实时文件同步)
	监控服务器的873端口是存活的
	有关端口的监控,使用zabbix自带的key net.tcp.port[,873]
	进行数据推拉,检测效果
检测NFS服务是否正常(网络文件系统)
	通过key检测111端口 net.tcp.port[,111]
	showmount -e ip | wc -l #查看挂载
检测mysql数据库是否正常
	通过 net.tcp.port[,3306]
	zabbix自带了mysql的监控模板,直接添加模板
web服务器监控
	net.tcp.port[,80]

监控服务的具体方法

#端口检测命令
netstat -tunlp | grep 
ss
lsof

#查询进程信息
ps

#通过客户端连接
web服务器用curl查询
mysql 用sql语句连接验证

自动发现,自动注册

自动发现:(agent被动模式)

zabbix server 主动的去发现所有的客户端,然后将客户端的信息,登记在服务端的机器上(主动发现客户端)

缺点:zabbix server压力会较大,耗时较久

自动注册:(agent主动模式)

zabbix agent2主动上报自己的信息,发给zabbix-server

缺点:agent2可能找不到server(配置文件错了,网络不通)

被动模式,主动模式:

被动模式,对于agent2来说,server来找agent2
主动模式,agent2主动把数据上传给server
1.检测客户端是否存活
[root@zbx-agent01 ~]# systemctl is-active zabbix-agent2
active

2.练习

配置hosts解析

#在server 和 agent 的/etc/hosts中添加
192.168.253.128 localhost.DZQ
192.168.253.130 z

自动发现配置

在这里插入图片描述

在这里插入图片描述

自动注册,主动模式

#将/etc/zabbix/zabbix_agent2.conf中的HostnameItem前面的注释符删除
[root@zbx-agent01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.253.128
ServerActive=192.168.253.128
Hostname=zbx-agent01
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

分布式监控

分布式监控的作用

  1. 分担server的集中式压力

    agent > proxy > server

  2. 多机房之间的网络延时问题

    异地机房 > proxy > server

在这里插入图片描述

部署分布式zabbix-proxy

#1.环境准备
192.168.253.128		zabbix-server
192.168.253.130		zabbix-proxy
192.168.253.131 	zabbix-agents

#2.关闭192.168.253.130 的agent2服务
systemctl stop zabbix-agent2

#3.安装proxy,以及数据库(数据库用来存储agent2发来的数据,并最终发给server)
yum install zabbix-proxy-mysql zabbix-get -y
yum install mariadb-server mariadb -y
systemctl enable mariadb	#设置开机自启

#4.启动数据库,配置数据库用户,存储zabbix-agent2信息
mysql -uroot -p
create database zabbix_proxy character set utf8 collate utf8_bin;
#针对zabbix用户所有权限在zabbix_proxy数据库里
grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
#刷新
flush privileges;

#5.导入zabbix_proxy数据库信息
#查看yum安装路径
rpm -ql zabbix-proxy-mysql
/usr/share/doc/zabbix-proxy-mysql-5.0.15/schema.sql.gz
#将sql.gz文件导入mysql(zcat命令用于不真正解压缩文件,就能显示压缩包中文件的内容)
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.15/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy 		

#6.配置zabbix-proxy配置文件
#修改162行
sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf 

sed -i 's#Server=127.0.0.1#Server=192.168.253.128#' /etc/zabbix/zabbix_proxy.conf

sed -i 's#Hostname=Zabbix proxy#Hostname=zbx-agent01' /etc/zabbix/zabbix_proxy.conf

#7.检查代理服务器的配置文件
[root@zbx-agent01 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.253.128
Hostname=zbx-agent01(与web中的agent代理程序名称需要一致)
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBPassword=zabbix
DBName=zabbix_proxy
DBUser=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

#8.启动代理服务
systemctl restart zabbix-proxy
systemctl status zabbix-proxy

agent配置

[root@zbx-agent02 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.253.130(proxy地址)
ServerActive=192.168.253.130
Hostname=zbx-agent02
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

web界面配置

在这里插入图片描述

SNMP 监控

简单网络管理协议

1.服务端安装snmp监控程序
yum -y install net-snmp net-snmp-utils

2.snmp的配置
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
systemctl start snmpd.service

3.使用snmp命令
#-v 指定版本
#-c 指定暗号
#sysname snmp的key
snmpwalk -v 2c -c public 127.0.0.1 sysname

在这里插入图片描述

简单网络管理协议

1.服务端安装snmp监控程序
yum -y install net-snmp net-snmp-utils

2.snmp的配置
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
systemctl start snmpd.service

3.使用snmp命令
#-v 指定版本
#-c 指定暗号
#sysname snmp的key
snmpwalk -v 2c -c public 127.0.0.1 sysname

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qiancool/article/details/121837461