监控

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
  1. 应用监控

安装服务端

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

zabbix部署完没有sender zabbix安装部署_linux

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

zabbix部署完没有sender zabbix安装部署_运维_02

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的数值
vi /etc/yum.repos.d/zabbix.repo

zabbix部署完没有sender zabbix安装部署_linux_03

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

zabbix部署完没有sender zabbix安装部署_运维_04

PidFile端口文件

LogFile日志文件

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

zabbix部署完没有sender zabbix安装部署_zabbix部署完没有sender_05

zabbix部署完没有sender zabbix安装部署_linux_06

验证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主机

zabbix部署完没有sender zabbix安装部署_服务器_07

自定义监控内容

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

命令行角度

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

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

zabbix部署完没有sender zabbix安装部署_zabbix部署完没有sender_08

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. 创建模板

zabbix部署完没有sender zabbix安装部署_zabbix部署完没有sender_09

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

zabbix部署完没有sender zabbix安装部署_linux_10

  1. 创建监控项,自定义item,具体监控内容
  2. 创建触发器,当监控项获取到值得时候和触发器比较,判断,决定是否报警
  3. 创建图形

zabbix部署完没有sender zabbix安装部署_运维_11

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

zabbix部署完没有sender zabbix安装部署_运维_12

邮件报警

zabbix部署完没有sender zabbix安装部署_linux_13

zabbix部署完没有sender zabbix安装部署_服务器_14

zabbix部署完没有sender zabbix安装部署_zabbix部署完没有sender_15

zabbix部署完没有sender zabbix安装部署_运维_16

全网监控方案

自动添加主机监控

  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

自动发现配置

zabbix部署完没有sender zabbix安装部署_zabbix_17

zabbix部署完没有sender zabbix安装部署_服务器_18

自动注册,主动模式

#将/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

zabbix部署完没有sender zabbix安装部署_zabbix_19

zabbix部署完没有sender zabbix安装部署_linux_20

zabbix部署完没有sender zabbix安装部署_linux_21

分布式监控

分布式监控的作用

  1. 分担server的集中式压力
    agent > proxy > server
  2. 多机房之间的网络延时问题
    异地机房 > proxy > server

zabbix部署完没有sender zabbix安装部署_zabbix部署完没有sender_22

部署分布式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界面配置

zabbix部署完没有sender zabbix安装部署_zabbix部署完没有sender_23

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

zabbix部署完没有sender zabbix安装部署_zabbix部署完没有sender_24

简单网络管理协议

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

zabbix部署完没有sender zabbix安装部署_服务器_25

zabbix部署完没有sender zabbix安装部署_服务器_26