zabbix
一.zabbix监控搭建
二.zabbix自定义监控项配置
三.zabbix警告配置一.zabbix监控搭建 1.概念 1)架构与组件分布式系统监视工具,支持跨平台监控mysql:数据持久化存储Zabbix Server:数据接收,回写Zabbix Agent:数据采集Zabbix web:数据展示2)核心概念主机:被监控端主机群组:管理和监控一组主机监控项:监控的具体指标模板:监控项、触发器等的集合2.准备工作1)环境:zabbixserver 192.168.88.5/24web1 192.168.88.100/24web2 192.168.88.200/242)拷贝zabbix软件包到pubserver:scp /linux-soft/s2/zzg/zabbix_soft/*.rpm 192.168.88.240:/var/ftp/rpms3)搭建节点的yum仓库vim 01-upload-repo.yml 3.搭建zabbix服务(zabbix机器)1.给zabbix机器上安装相应软件包zabbix-server-mysqlmysql-serverzabbix-web-mysqlzabbix-sql-scripts:管理Zabbix数据库的SQL脚本zabbix-agentlangpacks-zh_CNzabbix-nginx-conf:通过nginx的web服务展示界面zabbix-selinux-policy 2.配置数据库服务1)启动zabbix上的mysqld服务2)在zabbix上创建数据库,创建用户,授权数据库CREATE DATABASE zabbixCHARACTER SET utf8mb4 数据库的字符集为 utf8mb4COLLATE utf8mb4_bin; 数据库的排序规则为 utf8mb4_binmysql> set global log_bin_trust_function_creators = 1;mysql> create user zabbix@localhost identified by 'zabbix';mysql> grant all privileges on zabbix.* to zabbix@localhost;mysql> quit;是否允许创建或修改存储函数和触发器,设置为 1 允许所有用户创建或修改这些对象创建了一个名为 zabbix 的新用户,该用户只能从 localhost 连接到数据库服务器,并且其密码被设置为 zabbix。授予了 zabbix 用户对 zabbix 数据库的所有表的全部权限,zabbix.* 表示 zabbix 数据库中的所有对象。3)验证数据库配置,如果登陆不到数据库表示上一步配置不正确mysql -uzabbix -pzabbix -hlocalhost zabbix4)导入zabbix需要的sqlcp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .gzip -d server.sql.gz mysql -uzabbix -pzabbix zabbix < server.sql3.配置zabbix_server[root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.confDBPassword=zabbix4.配置zabbix_agent[root@zabbixserver ~]# vim /etc/zabbix/zabbix_agentd.conf 182 Hostname=zabbixserver5.配置nginx展示zabbix[root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf# 打开第2、3行的注释,结果如下所示:server {listen 8080;server_name example.com;6.启动zabbix上相关服务zabbix-serverzabbix-agentnginxphp-fpm二.zabbix自定义监控项配置和警告配置(自己编写shell脚本)1.监控项服务器配置# key的语法格式UserParameter=key[*],<command> $1# key[*]中的*是参数,将会传给后面的位置变量$1UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1zabbix_get -s 127.0.0.1 -k nginx_status[active]1)配置文件编写:/etc/zabbix/zabbix_agentd.d/usercnt.conf语法格式:UserParameter=usercnt(key),shell命令或者脚本(value)UserParameter=usercnt,sed -n '$=' /etc/passwd UserParameter=custom,/aa/custom_checks.shUserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $12)监控项脚本测试:systemctl restart zabbix-agent.service yum install -y zabbix-getzabbix_get -s 127.0.0.1 -k usercnt(key):取出编写的配置文件返回结果2.自定义监控项流程(主机添加监控项的key)1)监测:主机2)配置:模板,自定义模板和群组3)主机:监控项,创建监控项目,填写key4)配置:主机添加模板5)监测:最新数据查看三.zabbix警告配置1.概念默认情况下,监控项不会自动发送告警消息,需要配置触发器与告警.2.警告实现:触发器(当条件达到时,执行某个动作) + 动作(触发器条件达到后采取的行为)3.流程在监控项的基础上达到什么条件进行警告:警告类型:(媒介+用户+触发器+动作)1)报警媒介类型:email,钉钉脚本2)用户:admin(添加报警媒介)3)模板:触发器(创建触发器)4)动作:触发器动作(创建动作)4.钉钉机器人1.装包yum install -y python3-requestsyum -y install unix2dos2.脚本# 编写钉钉机器人脚本[root@zabbixserver ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py #!/usr/bin/env python3import jsonimport requestsimport sysdef send_msg(url, remiders, msg):headers = {'Content-Type': 'application/json; charset=utf-8'}data = {"msgtype": "text","at": {"atMobiles": remiders,"isAtAll": False,},"text": {"content": msg,}}r = requests.post(url, data=json.dumps(data), headers=headers)return r.textif __name__ == '__main__':msg = sys.argv[1]remiders = []url = '钉钉机器人Webhook地址' # 注意此处需输入机器人的webhook地址print(send_msg(url, remiders, msg))[root@zabbixserver ~]# chmod +x /usr/lib/zabbix/alertscripts/dingalert.py[root@zabbixserver ~]# /usr/lib/zabbix/alertscripts/dingalert.py 'warn: test' 四.zabbix自动发现1.自动发现概念:1)不需手动添加监控的主机设备,通过自动发现来添加监控设备主机2)自动发现可以实现发现主机,添加主机,添加主机到组3)自动发现实现步骤:自动发现规则+自动发现动作2.自动发现实现步骤(规则+动作)1)配置:自动发现(创建自动发现规则)2)配置发现动作3)配置主机:vim /etc/zabbix/zabbix_agentd.conf 117 Server=127.0.0.1,192.168.88.5182 Hostname=web2systemctl enable zabbix-agent.service --now五.zabbix主动监控1.默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。被动监控:Server-->Agent发起请求,索取监控数据。主动监控:Agent-->Server发起连接,向Server汇报.#解决server的负载问题2.配置主动监控1)修改配置文件:/etc/zabbix/zabbix_agentd.conf 117 # Server=127.0.0.1,192.168.88.5142 StartAgents=0 #同时处理多少来自Zabbix Server的请求171 ServerActive=192.168.88.5242 RefreshActiveChecks=1202)重启服务systemctl restart zabbix-agent.service [root@web2 ~]# ss -tlnp | grep :10050 # 端口号消失3)界面上的配置创建主机填写要发现的主机名六.zabbix的nginx监控项1.修改配置文件,启用stub_status功能50 location /status { # 在此处添加3行51 stub_status on;52 } Active connections: 客户端与服务器连接数accepts:访问数handled:连接数requests:处理数Reading:读总数。Writing:向客户端发送响应。Waiting:空闲连接。2.编写配置文件,写key脚本# key的语法格式UserParameter=key[*],<command> $1# key[*]中的*是参数,任意数量传参,将会传给后面的位置变量$1# 创建声明key的文件[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.confUserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1 3.界面配置监控项,key1)将配置文件的key值加入监控项2)最新数据中查看监控项的数据
zabbix
一.zabbix监控搭建
二.zabbix自定义监控项配置
三.zabbix警告配置
一.zabbix监控搭建
1.概念
1)架构与组件
分布式系统监视工具,支持跨平台监控
mysql:
数据持久化存储
Zabbix Server:
数据接收,回写
Zabbix Agent:
数据采集
Zabbix web:
数据展示
2)核心概念
主机:被监控端
主机群组:管理和监控一组主机
监控项:监控的具体指标
模板:监控项、触发器等的集合
2.准备工作
1)环境:
zabbixserver 192.168.88.5/24
web1 192.168.88.100/24
web2 192.168.88.200/24
2)拷贝zabbix软件包到pubserver:
scp /linux-soft/s2/zzg/zabbix_soft/*.rpm 192.168.88.240:/var/ftp/rpms
3)搭建节点的yum仓库vim 01-upload-repo.yml
3.搭建zabbix服务(zabbix机器)
1.给zabbix机器上安装相应软件包
zabbix-server-mysql
mysql-server
zabbix-web-mysql
zabbix-sql-scripts:管理Zabbix数据库的SQL脚本
zabbix-agent
langpacks-zh_CN
zabbix-nginx-conf:通过nginx的web服务展示界面
zabbix-selinux-policy
2.配置数据库服务
1)启动zabbix上的mysqld服务
2)在zabbix上创建数据库,创建用户,授权数据库
CREATE DATABASE zabbix
CHARACTER SET utf8mb4 数据库的字符集为 utf8mb4
COLLATE utf8mb4_bin; 数据库的排序规则为 utf8mb4_bin
mysql> set global log_bin_trust_function_creators = 1;
mysql> create user zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
是否允许创建或修改存储函数和触发器,设置为 1 允许所有用户创建或修改这些对象
创建了一个名为 zabbix 的新用户,该用户只能从 localhost 连接到数据库服务器,并且其密码被设置为 zabbix。
授予了 zabbix 用户对 zabbix 数据库的所有表的全部权限,zabbix.* 表示 zabbix 数据库中的所有对象。
3)验证数据库配置,如果登陆不到数据库表示上一步配置不正确
mysql -uzabbix -pzabbix -hlocalhost zabbix
4)导入zabbix需要的sql
cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .
gzip -d server.sql.gz
mysql -uzabbix -pzabbix zabbix < server.sql
3.配置zabbix_server
[root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
4.配置zabbix_agent
[root@zabbixserver ~]# vim /etc/zabbix/zabbix_agentd.conf
182 Hostname=zabbixserver
5.配置nginx展示zabbix
[root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf
# 打开第2、3行的注释,结果如下所示:
server {
listen 8080;
server_name example.com;
6.启动zabbix上相关服务
zabbix-server
zabbix-agent
nginx
php-fpm
二.zabbix自定义监控项配置和警告配置(自己编写shell脚本)
1.监控项服务器配置
# key的语法格式
UserParameter=key[*],<command> $1
# key[*]中的*是参数,将会传给后面的位置变量$1
UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1
zabbix_get -s 127.0.0.1 -k nginx_status[active]
1)配置文件编写:/etc/zabbix/zabbix_agentd.d/usercnt.conf
语法格式:UserParameter=usercnt(key),shell命令或者脚本(value)
UserParameter=usercnt,sed -n '$=' /etc/passwd
UserParameter=custom,/aa/custom_checks.sh
UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1
2)监控项脚本测试:
systemctl restart zabbix-agent.service
yum install -y zabbix-get
zabbix_get -s 127.0.0.1 -k usercnt(key):取出编写的配置文件返回结果
2.自定义监控项流程(主机添加监控项的key)
1)监测:主机
2)配置:模板,自定义模板和群组
3)主机:监控项,创建监控项目,填写key
4)配置:主机添加模板
5)监测:最新数据查看
三.zabbix警告配置
1.概念
默认情况下,监控项不会自动发送告警消息,需要配置触发器与告警.
2.警告实现:
触发器(当条件达到时,执行某个动作) + 动作(触发器条件达到后采取的行为)
3.流程
在监控项的基础上达到什么条件进行警告:
警告类型:(媒介+用户+触发器+动作)
1)报警媒介类型:email,钉钉脚本
2)用户:admin(添加报警媒介)
3)模板:触发器(创建触发器)
4)动作:触发器动作(创建动作)
4.钉钉机器人
1.装包
yum install -y python3-requests
yum -y install unix2dos
2.脚本
# 编写钉钉机器人脚本
[root@zabbixserver ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py
#!/usr/bin/env python3
import json
import requests
import sys
def send_msg(url, remiders, msg):
headers = {'Content-Type': 'application/json; charset=utf-8'}
data = {
"msgtype": "text",
"at": {
"atMobiles": remiders,
"isAtAll": False,
},
"text": {
"content": msg,
}
}
r = requests.post(url, data=json.dumps(data), headers=headers)
return r.text
if __name__ == '__main__':
msg = sys.argv[1]
remiders = []
url = '钉钉机器人Webhook地址' # 注意此处需输入机器人的webhook地址
print(send_msg(url, remiders, msg))
[root@zabbixserver ~]# chmod +x /usr/lib/zabbix/alertscripts/dingalert.py
[root@zabbixserver ~]# /usr/lib/zabbix/alertscripts/dingalert.py 'warn: test'
四.zabbix自动发现
1.自动发现概念:
1)不需手动添加监控的主机设备,通过自动发现来添加监控设备主机
2)自动发现可以实现
发现主机,添加主机,添加主机到组
3)自动发现实现步骤:
自动发现规则+自动发现动作
2.自动发现实现步骤(规则+动作)
1)配置:自动发现(创建自动发现规则)
2)配置发现动作
3)配置主机:vim /etc/zabbix/zabbix_agentd.conf
117 Server=127.0.0.1,192.168.88.5
182 Hostname=web2
systemctl enable zabbix-agent.service --now
五.zabbix主动监控
1.默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。
被动监控:Server-->Agent发起请求,索取监控数据。
主动监控:Agent-->Server发起连接,向Server汇报.#解决server的负载问题
2.配置主动监控
1)修改配置文件:/etc/zabbix/zabbix_agentd.conf
117 # Server=127.0.0.1,192.168.88.5
142 StartAgents=0 #同时处理多少来自Zabbix Server的请求
171 ServerActive=192.168.88.5
242 RefreshActiveChecks=120
2)重启服务
systemctl restart zabbix-agent.service
[root@web2 ~]# ss -tlnp | grep :10050 # 端口号消失
3)界面上的配置
创建主机填写要发现的主机名
六.zabbix的nginx监控项
1.修改配置文件,启用stub_status功能
50 location /status { # 在此处添加3行
51 stub_status on;
52 }
Active connections: 客户端与服务器连接数
accepts:访问数
handled:连接数
requests:处理数
Reading:读总数。
Writing:向客户端发送响应。
Waiting:空闲连接。
2.编写配置文件,写key脚本
# key的语法格式
UserParameter=key[*],<command> $1
# key[*]中的*是参数,任意数量传参,将会传给后面的位置变量$1
# 创建声明key的文件
[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1
3.界面配置监控项,key
1)将配置文件的key值加入监控项
2)最新数据中查看监控项的数据