最全zabbix安装部署
监控
-
netstat -tunlp #查看进程
-
tail -f /var/log/zabbix/zabbix_server.log #查看日志
-
tail #显示文件末尾内容
-
history #查看历史命令 !+ 行号 直接使用
-
# hostnamectl set-hostname +主机名(修改主机名)
监控的生命周期
-
服务器上架到机柜
-
基础设施监控
-
服务器温度,风扇转速,ipmitool命令(只能用在物理机)
-
存储的监控(df,fdisk,iotop)
-
cpu监控 lscpu,uptime,top,htop,glances
-
-
应用监控
安装服务端
-
关闭防火墙
-
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
-
systemctl disable --now firewalld
-
.zabbix-server内存尽量大一点,4G最好
-
获取zabbix的下载源
-
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
-
更换zabbix.repo源,为阿里
-
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
-
清空缓存,下载zabbix服务端
-
yum clean all
-
yum makecache
-
yum install zabbix-server-mysql zabbix-agent -y
-
安装工具,可以在机器上,使用多个版本的软件,并且不会影响整个系统的依赖环境
-
yum install centos-release-scl -y
-
更改zabbix.repo中zabbix-frontend的数值
-
vi /etc/yum.repos.d/zabbix.repo
-
安装zabbix前端环境,且是安装到scl环境下
-
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
-
安装zabbix所需的数据库,mariadb
- yum install mariadb-server -y
-
配置数据库开机启动
-
systemctl enable --now mariadb
-
初始化数据库,并设置密码
-
mysql_secure_installation
-
添加数据库用户
-
# 进入数据库,创建一个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;
-
使用zabbix-mysql命令,导入数据库信息
-
# mysql -u 用户名 -p 数据库名
-
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
-
修改zabbix server配置文件,修改数据库密码
-
# 进入/etc/zabbix/zabbix_server.conf中,修改DBPassword为数据库密码
-
vim /etc/zabbix/zabbix_server.conf
-
DBPassword=123
-
# 查看修改是否成功
-
grep '^DBPass' /etc/zabbix/zabbix_server.conf
-
修改zabbix PHP的配置文件
-
#进入/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-php-fpm
-
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
-
访问zabbix入口
-
本机ip/zabbix
-
安装成功后默认用户名: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
-
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地址
-
1.在Server中安装zabbix—get
-
yum install zabbix-get -y
-
2.验证连通性
-
zabbix_get -s '192.168.253.130' -p 10050 -k 'agent.ping'
-
-
-
解决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'
在页面添加
添加流程
- 创建模板
- 创建应用集(好比一个文件夹,里面放入一堆监控项)
-
创建监控项,自定义item,具体监控内容
-
创建触发器,当监控项获取到值得时候和触发器比较,判断,决定是否报警
-
创建图形
- 将具体的主机和该模板链接,关联
邮件报警
全网监控方案
自动添加主机监控
- 克隆监控模板
- 自动注册,自动发现
- 使用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
-
分布式监控
分布式监控的作用
-
分担server的集中式压力
agent > proxy > server
-
多机房之间的网络延时问题
异地机房 > 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