一 . 自定义监控内容
1.1实验内容
- 案例:自定义监控客户端服务器登录的人数
- 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息
1.2 实验具体操作
//在客户端创建自定义 key
1.明确需要执行的 linux 命令
who | wc -l
2.创建 zabbix 的监控项配置文件,用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
281 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
321 # Format: UserParameter=,
cd /etc/zabbix/zabbix_agent2.d/
vim userlogin.conf
UserParameter=login.user,who|wc -l
systemctl restart zabbix-agent2
3.在服务端验证新建的监控项
zabbix_get -s '192.168.47.103' -p 10050 -k 'login.user'
在服务端通过键值就能获取被监控主机的登录人数
4.//在 Web 页面创建自定义监控项模板
1.创建模板
点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义
点击 【添加】,此时就可在【名称】中搜索到 Template Login User 了
这个是在
原有模板中创建监控项
自定义模板创建监控项
2.创建监控项
点击 Template Login User 模板进入
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Number of login users
【键值】设置成 login.user #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period 30d #保留时间可自定义设置
点击 【添加】
监控项创建好后测试完毕点击添加
3.创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
点击上方菜单栏【触发器】,点击【创建触发器】
【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重 #根据严重程度可自定义设置
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
点击 【添加】
5.创建图形
点击上方菜单栏【图形】,点击【创建图形】
【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】
6.将主机与模板关联起来(一个主机可以关联多个模板)
点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
【模板】搜索 login,选择 Template Login User,点击【更新】
此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标
在图形页面选择过滤
解决告警线
二 使用邮件来监控管理我们的服务器
2.1实验内容
让我们的监控软件24小时进行监控,如果出现报警就发邮件通知我们
2.2具体操作
点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成 自己的邮箱地址,例如 qwe4546456@qq.com
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 qwe4546456@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义
点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
点击 【添加】,并测试功能
点击左边菜单栏【User settings】-->【Profile】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 qwe4546456@wo.cn
【当启用时】设置成 1-7,00:00-24:00
【如果存在严重性则使用】勾选需要的严重性
点击 【添加】
再点击 【更新】
点击左边菜单栏【配置】->【动作】->【Trigger actions】
选择相对应的动作名称点击进入,点击 【添加】
【类型】选择 触发器,【操作者】选择 等于,【触发器】点击选择 Nunber of login users is greater than 3
点击【添加】
勾选 【已启动】
点击 【更新】
//测试邮件报警
增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表板】,确认报警
点击测试,能不能正常发送邮件到邮箱
将qq邮箱和触发器关联
然后点击更新:上图
编写触发动作
测试是否会触发警报发送qq邮箱消息
三 . zabbix来监控我们的nginx服务
3.1 实验内容
我们使用zabbix来查看nginx服务的并发量,与在线状态人数等详细信息
3.2 具体操作
1.先在我们的客户机上面安装nginx
cd /etc/yum.repos.d/
scp nginx.repo 192.168.47.103:`pwd`
2.查看nginx安装的模块
3.配置nginx的子配置文件,输入状态页面配置
location /status {
stub_status on;
access_log off;
}
4.测试页面访问
5.我们可以使用nginx脚本(获取监控数据)导入创建监控模块
#!/bin/bash
HOST="localhost"
PORT="80"
stub_status=status
function check() {
if [ -f /sbin/pidof ]; then
/sbin/pidof nginx | wc -w
else
ps ax | grep -v "grep" | grep -c "nginx:"
fi
}
function active() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function accepts() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
function reading() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
case "$1" in
check)
check
;;
active)
active
;;
accepts)
accepts
;;
handled)
handled
;;
requests)
requests
;;
reading)
reading
;;
writing)
writing
;;
waiting)
waiting
;;
*)
echo $"Usage $0 {check|active|accepts|handled|requests|reading|writing|waiting}"
exit
esac
准备脚本加权限
cd /etc/zabbix
vim nginx.sh
6.准备配置文件
UserParamete=nginx.status[*],/etc/zabbix/nginx.sh $1
去服务端测试脚本是否可行
8.将我们这个键名加入到我们的监控项中
测试完以后点击添加
9.我们可以再添加一个监控项
10.设置触发器
11.另外一个监控项也添加触发器
12.创建一个图形
13.将我们的图形与我们的客户端进行关联
14.到监控中主机里查看nginx的信息【点击应用】
测试
四 .zabbix 自动发现
4.1 zabbix的自动发现是什么
abbix 自动发现(对于 agent2 是被动模式) zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。
4.2 zabbix自发现的配置操作
1.我们先在一台新的服务器上配置zabbix agent组件
设置 zabbix 的下载源,安装 zabbix-agent2
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2
hostnamectl set-hostname zbx-agent02
192.168.47.102 zabbix-server
192.168.47.103 zabbix-agent01
192.168.47.104 zabbix-agent02
2.修改新zabbix agent服务器的配置文件
systemctl start zabbix-agent2.service
3.新机器配置好后,我们先在主机中把之前配置好的客户机删除掉,等会让他自动加入
4.在web页面中创建自动加入
5.到配置的主机中查看,稍微等会就会自动发现其他的agent主机
五. zabbix自动注册
5.1 zabbix自动注册是什么
zabbix agent2 会主动上报自己的信息,发给 zabbix server。 缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。
5.2 具体操作
1.先将我们刚才的自动发现选项关闭
2.把配置主机中自动发现的主机删除掉
3.到我们的客户端中去修改配置文件
vim zabbix_agent2.conf
第二台客户机
152行
4.回到web页面上去创建注册动作
5.这个时候去配置主机中查看是否有主机自动添加进来了
六 . 部署 zabbix 代理服务器
6.1 分布式监控的作用
- 分担 server 的集中式压力
- 解决多机房之间的网络延时问题
6.2 部署的具体操作
1.我们到zabbix的官网上去跟着官网的下载步骤去进行部署
2.我们使用一台新的服务器,修改主机名并添加hosts文件(每个机器都要添加哦)
192.168.47.102 zabbix-server
192.168.47.103 zabbix-agent01
192.168.47.104 zabbix-agent02
192.168.47.105 zabbix-proxy
3.安装zabbix-proxy
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
4.部署数据库mariadb
cat > /etc/yum.repos.d/mariadb.repo n -> Y (设置root密码,如abc123) -> 后面一路 Y
mysql -u root -p123123
6.创建数据库并指定字符集,创建 zabbix 数据库用户并授权
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
7.导入数据库信息
rpm -ql zabbix-sql-scripts
#查询 sql 文件的位置
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -pabc123 zabbix_proxy
8.修改zabbix_proxy的配置文件
9.然后到我们的web页面中进行配置,先将我们的自动注册关闭
10.创建agent代理程序
11.修改两台agent主机的配置文件,把他们的server地址指向我们的代理服务器
12.在web页面当中创建主机
> 记得开启和重启服务
查看代理服务器日志
七 .部署 Zabbix 高可用集群
1.在主节点server中配置
2.之后在另外一台server主机上配置一样的地方,注意主机名不一样
3.重启server服务,去到web页面进行查看
4.去配置客户端上的配置,