一、安装zabbix
在用zabbix监控软件之前,需要运维人员登录服务器,用top free命令查看服务器状态,很麻烦。
192.168.239.141 zabbix-server 主机名:zbx-server 同步更改SecureCRT名字
192.168.239.143 zabbix-agent 主机名:zbx-agent01 同步更改SecureCRT名字
安装zabbix,这台服务器主监控机,zbx-server,是汇总的专门用来监控其他服务器的
1.初始化:关闭selinux和防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable --now firewalld
systemctl stop firewalld
2.更改主机名
hostnamectl set-hostname zbx-server
然后logout,再重新连接,看看改成功没有
3. 获取zabbix的下载源
rpm -Uvh https://mirrors.aliyun.com/zabbix/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.更换源之后,清空缓存
yum clean all
6.安装zabbix server和agent
yum install zabbix-server-mysql zabbix-agent -y
7.安装SCL工具包,可以在机器上使用多个版本的软件,并且不会影响整个系统的依赖环境
yum install centos-release-scl -y
8.修改zabbix前端源
vim /etc/yum.repos.d/zabbix.repo
在zabbix-frontend 把enable改成1
Esc键 输入“:wq” 保存修改并退出
9.安装zabbix前端环境
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
10.安装zabbix所需数据库,直接用centos7自带的mariadb
yum install mariadb-server -y
11.配置数据库,开机自启动
systemctl enable --now mariadb
12.初始化数据库,设置密码,1234
mysql_secure_installation
回车+y+1234+1234+y+n+y+y
13.创建zabbix数据库,添加数据库用户,授予所有权限,刷新授权表
mysql -uroot -p
输入密码1234
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by '1234';
grant all privileges on zabbix.* to zabbix@localhost;
flush privileges;
exit;
14.导入数据库信息
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
输入1234 等待一会就行了
15.修改数据库密码
vim /etc/zabbix/zabbix_server.conf
直接输入/DBPassword 在DBPassword= 这输入1234 + 前面#号去掉
Esc键 输入“:wq” 保存修改并退出
16.修改zabbix的php配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
直接输入/timezone 改成Asia/Shanghai 再把前面分号去掉
Esc键 输入“:wq” 保存修改并退出
17.启动zabbix相关服务器
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
18.ifconfig 看ip地址
然后用360浏览器,输入ip地址可以看到httpd
输入ip地址/zabbix,可以看到zabbix页面
19.next step ==> next step ==> 密码1234 ==> next step ==>next step ==> finish==>
用户名Admin 密码zabbix 成功
20.修改zabbix语言
左侧列表User Settings==>找到语言 选择中文==>Update
21.解决乱码问题
zabbix页面==左侧列-监测-主机==点击:图形==看到方框乱码,这是因为改成中文字体的缘故
在主监控机子上输入2行命令
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
刷新zabbix页面
22.临时关闭selinux,然后zabbix不会报错,正常运行
setenforce 0
==============================================================================
被监控的服务器,zbx-agent01
1.在另一台centos上部署zabbix客户端,先更新时间和时区统一
yum install ntpdate -y
ntpdate -u ntp.aliyun.com
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.获取zabbix的下载源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
3. 更换zabbix.repo源,为阿里的
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
4.更换源之后,清空缓存
yum clean all
5.安装agent2
yum install zabbix-agent2 -y
6.设置zabbix开机自启动,并且现在立即启动
systemctl enable --now zabbix-agent2
7. 更改主机名
hostnamectl set-hostname zbx-agent01
然后logout,再重新连接,看看改成功没有
8.修改agent2配置文件
vim /etc/zabbix/zabbix_agent2.conf 输入/Server回车,输入n
在127.0.0.1改成监控主机IP地址+在ServerActive也改成监控主机ip地址+Hostname改成zbx-agent01
Esc键 输入“:wq” 保存修改并退出
9.重启agent2
systemctl restart zabbix-agent2
10.关闭防火墙
systemctl stop firewalld
======================================================================================
在主监控机子上,测试是否连通被监控机子
1.在监控主机上
yum install zabbix-get -y
2.测试与被控服务器的连通性,下面ip地址,是被监控服务器的ip地址
zabbix_get -s '192.168.239.143' -p 10050 -k "agent.ping" 1代表成功
zabbix_get -s '192.168.239.143' -p 10050 -k "system.hostname" 看看返回的主机名
二、添加被监控主机
zabbix页面==左侧列:配置==主机==创建主机==
======================================================================================
主机名称:zbx-agent01 (与linux服务器hostname保持一致)
可见的名称:zbx-agent01-192.168.239.143 (hostnmae+被监控的ip地址)
群组:选择linux servers群组
Interface:ip地址选择被监控的ip地址,dns不用填,连接到选择ip,端口10050
描述:这是linux机器,zbx-agent01
无agent代理程序+已启用√
点击添加
=======================================================================================
再对着刚才创建的,点进去,找到第二个,模板
Link new templates 选择 Template OS Linux by Zabbix agent 点击更新
找到第一个,主机,点击更新
随后看左侧-配置-主机那,ZBX有没有亮
三、自定义监控内容
- 先在linux写命令行的配置文件
要求:自定义监控服务器登录的人数,如果超过三个就发出报警
======================================================================================
在zbx-agent01服务器上,做以下操作
1.明确需要执行的linux命令
who | wc -l
2.手动创建zabbix的配置文件,用于自定义key
cd /etc/zabbix/zabbix_agent2.d/
vim userparameter_login.conf
输入以下内容
UserParameter=login.user,who|wc -l
Esc键 输入“:wq” 保存修改并退出
3.重启服务
systemctl restart zabbix-agent2
=======================================================================================
在主监控机上,ip地址是被监控机子的ip地址
zabbix_get -s '192.168.239.143' -p 10050 -k "login.user"
- 去zabbix页面,创建模板+应用集+监控项+触发器+图形+关联主机
======================================================================================
zabbix页面==左侧列:配置==模板==创建模板==
模板名称:Template Login User
可见的名称:Template Login User
群组:选择Templates
描述:用于监测服务器登录用户数的模板
点击添加,并在一堆模板里,找到他,点进去
======================================================================================
应用集相当于文件夹,存放很多监控项
点击应用集==右上创建应用集==名称:Server security==点击添加
======================================================================================
点击监控项==右上创建监控项==
名称:Number of logged-in users
类型:zabbix客户端
键值:login.user
更新间隔:30s
历史数据保留时长:Storage period + 30d
趋势存储时间:Storage period + 365d
应用集:选择刚创建的Server security
描述:用于检测服务器登录的用户数量
点击添加
======================================================================================
点击触发器==右上创建触发器==
名称:Number of logins is greater than 3
严重性:一般严重
表达式:点击添加
点击选择:Template Login User:Number of logged-in users
功能:last - 最后的t值
结果:> 3
点击插入
点击添加
======================================================================================
点击图形==右上创建图形==
名称:Number of logged-in users
宽:900
高:200
监控项:点击添加+勾选,功能选择最大
点击添加
======================================================================================
zabbix页面==左侧列:配置==主机==点击zbx-agent01-192.168.239.143==
点击模板==Link new templates 选择 Template Login User 点击更新
四、邮件报警
======================================================================================
zabbix页面==左侧列:管理==报警媒介类型==右上创建媒体类型
名称:zabbix_Email
SMTP服务器:smtp.qq.com
SMTP HELO:qq.com
SMTP电邮:2664650221@qq.com
认证:用户名和密码
用户名称:2664650221@qq.com
密码:使用邮箱授权码
描述:这是zabbix使用的发邮件的邮箱配置信息
点击添加
找到zabbix_Email,最右边有测试,可以给自己其他邮箱发一封测试邮件
======================================================================================
备注:这是上一步没做完
zabbix页面==左侧列:管理==报警媒介类型==找到zabbix_Email,点进去==Message templates==点击添加
Message type:问题
主题:Problem:{EVENT.NAME}
消息:默认一大串英文
点击添加
点击更新
======================================================================================
zabbix页面==左侧列:User settings==报警媒介==点击添加
类型:zabbix_Email
收件人:这是给实际运维发的
当启用时:这是时间段,默认全天
把未分类和信息,去掉这两个勾,代表这两个等级不用通知
点击添加
点击更新
======================================================================================
zabbix页面==左侧列:配置==动作==最前面方框勾选上==点击启用
====================================================================================
然后secureCRT,再开三个终端,用监控主机输入命令,看一下登录数量,然后等30秒后的zabbix报警
zabbix_get -s '192.168.239.143' -p 10050 -k "login.user"
五、批量服务器监控
zabbix页面==左侧列:配置==主机==先把两台被监控服务器删除
=====================================================================================
自动发现(agent2是被动模式)
zabbix server主动的去发现所有的客户端,然后将客户端的信息,登记在服务端的机器上
缺点是,zabbix-server压力会较大
如果说你定义了一个网段,100-200网段,耗时较久,且压力大
zabbix页面==左侧列:配置==自动发现==点击Local network
名称:Local network
IP范围:192.168.239.1-254
更新间隔:60s
勾上已启用
点击更新
zabbix页面==左侧列:配置==动作==点击Trigger actions改成discovery actions
左侧勾选上,点击启用
=====================================================================================
自动注册(agent2是主动模式)
zabbix server2主动上报自己的信息,发给zabbix-server
缺点是agent2可能找不到server,一般是配置文件写错了,或者网络不通
需要改配置文件,由于自动发现已经可以找到虚拟机,就不做自动注册操作了
六、proxy代理服务器
分布式监控,解决网络延时和server压力过大情况
一般每个地区IDC机房内部都有一台proxy代理服务器,再由每个地区的proxy发给总部的server
1.确保之前的自动发现和自动注册已经关闭,我不用我直接三台重装
配置==自动发现==禁用
配置==动作==禁用
配置==主机==删除
2.先zabbix-server照之前安装,再proxy如下安装,最后装agent配置文件ip与之前不一样
192.168.239.138 zabbix-server 主机名:zbx-server
192.168.239.139 zabbix-proxy 主机名:zbx-proxy
192.168.239.140 zabbix-agent 主机名:zbx-agent
proxy安装过程
1.初始化:关闭selinux和防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable --now firewalld
systemctl stop firewalld
2.获取zabbix的下载源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
3.更换zabbix.repo源,为阿里的
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
4.更换源之后,清空缓存
yum clean all
5.安装proxy,以及数据库
yum install zabbix-proxy-mysql zabbix-get -y
6.启动数据库,配置数据库用户,存储zabbix-agent2信息数据
yum install mariadb-server mariadb -y
systemctl start mariadb
mysql回车
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
flush privileges;
exit;
7.导入数据库信息
rpm -ql zabbix-proxy-mysql #查询schema.sql.gz文件路径
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.21/schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy
8. 更改主机名
hostnamectl set-hostname zbx-proxy
输入密码root 然后exit 再hebe登录看看改成功没有
9.修改zabbix-proxy的配置文件,连接数据库的信息
#第二行第二个Server换成主监控机的ip地址,第三行第二个Hostname是proxy的主机名
sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Server=127.0.0.1#Server=192.168.239.138#' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Hostname=Zabbix proxy#Hostname=zbx-proxy#' /etc/zabbix/zabbix_proxy.conf
10.临时关闭selinux
setenforce 0
11.启动服务
systemctl restart zabbix-proxy
12.
zabbix页面==左侧列:管理==agent代理程序==右上创建代理==
agent代理程序名称:zbx-proxy
系统代理程序模式:主动式
代理地址:proxy的ip地址
点击添加==勾选最前面方框==启用主机
最近出现,有2s,代表连接上了
==================================================================================
agent安装过程
1.在另一台centos上部署zabbix客户端,先更新时间和时区统一
yum install ntpdate -y
ntpdate -u ntp.aliyun.com
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.获取zabbix的下载源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
3. 更换zabbix.repo源,为阿里的
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
4.更换源之后,清空缓存
yum clean all
5.安装agent2
yum install zabbix-agent2 -y
6.设置zabbix开机自启动,并且现在立即启动
systemctl enable --now zabbix-agent2
7. 更改主机名
hostnamectl set-hostname zbx-agent
输入密码root 然后exit 再hebe登录看看改成功没有
8.修改agent2配置文件
vim /etc/zabbix/zabbix_agent2.conf 输入/Server回车,输入n
在127.0.0.1改成proxy的IP地址+在serveractive也改成proxy的ip地址+Hostname改成zbx-agent
Esc键 输入“:wq” 保存修改并退出
9.重启agent2
systemctl restart zabbix-agent2
10.关闭防火墙
systemctl stop firewalld
11.zabbix页面==左侧列:配置==主机==右上创建主机==
主机名称:zbx-agent (与linux服务器hostname保持一致)
可见的名称:zbx-agent
群组:选择linux servers群组
Interface:ip地址选择agent的ip地址,dns不用填,连接到选择ip,端口10050
描述:这是zabbix客户端的配置
代理程序选择zbx-proxy+已启用√
点击添加
12.点击刚才的主机,添加模板
Link new templates 选择 Template OS Linux by Zabbix agent 点击更新
13.在proxy服务器上,修改发送请求30秒内都可以收到数据,并重启服务
vim /etc/zabbix/zabbix_proxy.conf 483行 Timeout=30
systemctl restart zabbix-proxy
随后看主机那,ZBX有没有亮
七、设置SNMP监控
SNMP是给无法安装agent客户端的监控的,比如监控打印机、路由器等等
1.systemctl stop zabbix-proxy 先把上一步proxy代理给停了
2.在server端,安装snmp监控程序
yum -y install net-snmp net-snmp-utils
3.开启snmp的配置
sed -i.ori '57a view systemview include .1' /etc/snmp/snmpd.conf
systemctl start snmpd.service
4.使用snmp命令,监控本地地址127.0.0.1,命令输完应该会识别出主机名
snmpwalk -v 2c -c public 127.0.0.1 sysname
5.netstat -tunlp 查看snmpd的端口,是199
zabbix页面==左侧列:配置==主机==点击zabbix server
在interface这点击添加,选择snmp,修改端口,点击更新
点击zabbix server,点击模板,把原有2个模板都取消并清理
Link new templates 选择 Template OS Linux SNMP 点击更新
看到snmp灯亮了就对了