zabbix5.0.2监控配置-超详细总结

https://oldqiang.com/archives/867.html

1:监控一台服务器主机

a:安装zabbix-agent

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/6/x86_64/zabbix-agent-5.0.2-1.el6.x86_64.rpm

b:配置zabbix-agent

vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.2.214

c:启动zabbix-agent

systemctl start  zabbix-agent
systemctl enable  zabbix-agent

d:zabbix-web界面,添加主机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2: 自定义监控项

2.1:什么是监控项

监控项:就是我们想要监控的指标,例如剩余内存,磁盘空间,服务的状态等等

每一个监控项,都有一个唯一的key,简洁明了(相当于shell脚本的变量名)

只需要安装zabbix-agent,默认就支持大量的监控项,但是linux模板并没有使用所有监控项
Template OS Linux by Zabbix agent主要监控了cpu,内存,磁盘,网卡,安全,它们都属于通用监控

应用集是监控项的分组

a:命令行,手动取值

[root@zabbix-server ~]# iostat|awk '$1 ~/sda/'
sda               4.07        41.98        68.30     255455     415578
[root@zabbix-server ~]# iostat|awk '$1 ~/sda/{print $2}'
4.07

b:修改zabbix-agent配置文件

vim /etc/zabbix/zabbix_agentd.conf
UserParameter=sda_tps,iostat|awk '$1 ~/sda/{print $2}'
​
systemctl restart zabbix-agent.service

c:zabbix-server测试监控项取值

zabbix_get  -s 127.0.0.1 -k sda_tps

d:在web界面添加自定义监控项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
练习: 自定义监控项,监控tcp的ESTABLISHED状态的数量

3:自定义触发器

在这里插入图片描述
在这里插入图片描述
增加恢复表达式
在这里插入图片描述
在这里插入图片描述

9:自定义报警

9.1 邮件报警

a: 定义发件人
管理-报警媒介
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以编辑修改邮件格式内容
在这里插入图片描述

b: 定义收件人
在这里插入图片描述
→报警媒介
在这里插入图片描述
在这里插入图片描述
c:启动动作
配置→动作→启动动作 在这里插入图片描述
在这里插入图片描述
查看报表→动作日志 查看发送的邮件日志
在这里插入图片描述
定制邮件报警内容 官方支持变量地址
https://www.zabbix.com/documentation/5.0/manual/appendix/macros/supported_by_location

9.2 微信报警(自定义脚本报警)微信企业号:

准备好企业微信号

https://work.weixin.qq.com/ 登录企业微信,没有的可以注册一个
在这里插入图片描述

加入企业微信

在这里插入图片描述

测试微信报警脚本

a:将weixin.py放在zabbix特定目录/usr/lib/zabbix/alertscripts(yum安装路径)
此处我的安装路径如下

[root@localhost /]# find / -name 'alertscripts' 
/usr/local/zabbix/share/zabbix/alertscripts
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/weixin.py

weixin.py脚本内容如下,只需要改三个地方corpid、appsecret、agentid

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :xuqiyao


#导入python模块
import requests
import sys
import os
import json
import logging


#自定义logging模块的格式,具体日志会存放在"/var/log/weixin.log"中,你也可以自定义到其它目录中,该文件默认以追加方式写入,你可以写一个周期性任务进行滚动操作
logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')

#指定企业ID
corpid='wwc5479ddc1a7b3838'

#指定应用管理的Secret
appsecret="KRWQWoIyQYqh1yd-qQbf8fFRKx8f6g_XXXXXXXXXXXX"

#指定应用管理的AgentId
agentid="1000002"

#指定Token_url
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret

#获取tocken
req=requests.get(token_url)

#获取tocken中access_token字段对应的值
accesstoken=req.json()['access_token']

#定义消息发送的URL
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken

#定义要发送的人,也就是zabbix webUI配置的"{ALERT.SENDTO}"参数对应的值
touser=sys.argv[1]

#定义要发送的主题,也就是zabbix webUI配置的"{ALERT.SUBJECT}"参数对应的值
subject=sys.argv[2]

#定义要发送的消息内容,也就是zabbix webUI配置的"{ALERT.MESSAGE}"参数对应的值
message=sys.argv[2] + "\n\n" +sys.argv[3]

#指定参数
params={
"touser": touser,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}

#基于requests模块的post方法发送企业微信报警消息
req=requests.post(msgsend_url, data=json.dumps(params))

#发送消息后记得打印日志信息,在本地的配置文件中可以查看
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

在这里插入图片描述
创建机器人小助手
在这里插入图片描述
在这里插入图片描述

python脚本缺少模块处理

[root@localhost /]# python weixin.py 
Traceback (most recent call last):
  File "weixin.py", line 6, in <module>
    import requests
ImportError: No module named requests

处理步骤
1、安装pip
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
 yum -y install python-pip
 查看pip
 [root@localhost /]# which pip
/usr/bin/pip
2、pip安装requests模块
pip install requests
慢的话可以使用国内的源
[root@localhost /]# pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

测试脚本没提示说明脚本没问题,脚本需要带上三个参数

[root@localhost /]# python weixin.py '发给谁' '发送微信的标题' '发送的内容'

在这里插入图片描述
脚本测试,查看企业微信

[root@localhost /]# python weixin.py 'XuQiYao' '你有个外卖' '请到前台领取'

在这里插入图片描述

b:配置发件人
在这里插入图片描述

{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE}

c:收件人
在这里插入图片描述

d:测试
修改触发一次告警
在这里插入图片描述

9.3:报警升级

前1分钟以邮件形式发送某用户组
在这里插入图片描述
一分钟后发送企业微信告警,持续时间3分钟,直到问题解决
在这里插入图片描述
在这里插入图片描述

9.4 修改邮件微信告警格式

名称:Action-Email
告警标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

内容信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

恢复信息:打钩
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

10:自定义图形和grafana出图

zabbix自定义图形

发现zabbix图形出现乱码
在这里插入图片描述
zabbix server端处理:
[root@localhost zabbix]# find / -name *.ttf ##找到如下的发布目录
/var/www/html/assets/fonts/DejaVuSans.ttf
windows本机C:\Windows\Fonts找到黑体的字体
上传到var/www/html/assets/fonts/目录 并重命名为DejaVuSans.ttf文件
前台刷新验证正常
在这里插入图片描述

zabbix自定义图形
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用grafana给zabbix出图

安装grafana

wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.5.2-1.x86_64.rpm
yum localinstall grafana-7.5.2-1.x86_64.rpm -y
systemctl start grafana-server.service 
systemctl enable grafana-server.service

#访问grafana
http://192.168.2.214:3000
默认账号密码:admin/admin

在这里插入图片描述

grafana的概念
grafana只是个出图工具 需要经过以下步骤才能连接上zabbix出图

1.安装zabbix插件
2.新建一个zabbix数据源
3.导入dashboard效果图(找现成的)

安装zabbix插件,启动插件

grafana-cli plugins list-remote|grep zabbix
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server.service

在这里插入图片描述

数据源–zabbix数据源
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
导入dashboard(待实验)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自定义监控模板

tcp 11种状态

模板:定义好了,一些监控项,应用集,触发器,图形等资源

模板可以包含子模板

模板,可以导入导出,可以分享

自定义模板

nginx模板(开取监控取值页面)

https://www.jianshu.com/p/e276d578a09d

在这里插入图片描述

a、开启监控页面

vim nginx.conf
#开启nginx监控页面
        location = /nginx_status {
             stub_status;
             access_log    off;
        }
systemctl restart nginx

在这里插入图片描述
b: 导入模板

上github下载templates在这里插入图片描述
务必选择zabbix的版本,否则可能下载到不匹配的模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
c:准备zabbix的配置文件,并测试脚本

vim  zbx_nginx.conf
UserParameter=nginx_[*],/etc/zabbix/nginx.sh $1
​
systemctl  restart  zabbix-agent
上传脚本nginx.sh 至/etc/zabbix/并增加执行权限
#测试脚本取值
sh nginx.sh accepts

d:在zabbix-server上zabbix-get测试取值
zabbix_get -s 192.168.2.139 -k nginx[accepts]

e:链接模板
在这里插入图片描述

在这里插入图片描述
f:测试
在这里插入图片描述

php-fpm模板

被监控主机安装同版本的zabbix-agent

[root@localhost nginx]# wget -c https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.2-1.el7.x86_64.rpm
[root@localhost nginx]# rpm -ivh zabbix-agent-5.0.2-1.el7.x86_64.rpm 
[root@localhost nginx]# vim /etc/zabbix/zabbix_agentd.conf 
Server=192.168.2.214
[root@localhost nginx]# systemctl  start zabbix-agent

在这里插入图片描述

#查看php73的配置文件
[root@localhost nginx]# grep -rl 'pm.status_path' /etc/ #或者find / -name 'www.conf'
/etc/php-fpm.d/www.conf

a:开启监控页面

vim /etc/php-fpm.d/www.conf
pm.status_path = /status
​ping.path = /ping

vim  /etc/nginx/nginx.conf
        # Enable php-fpm status page
location ~ ^/(status|ping)$ {
## disable access logging for request if you prefer
access_log off;

## Only allow trusted IPs for security, deny everyone else
# allow 127.0.0.1;
# allow 1.2.3.4;    # your IP here
# deny all;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
## Now the port or socket of the php-fpm pool we want the status of
fastcgi_pass 127.0.0.1:9000;
# fastcgi_pass unix:/run/php-fpm/your_socket.sock;
}
        
systemctl restart php-fpm.service nginx.service

在这里插入图片描述
压力测试 一下

[root@localhost nginx]# ab -n 1000 -c 100 http://192.168.2.205/php_status

b: 导入模板
上github下载templates在这里插入图片描述
务必选择zabbix的版本,否则可能下载到不匹配的模板,另外务必查看STEP的步骤,php-fpm7与php-fpm5存在差异,可以参考php-fpm7配置php-fpm5实现监控,此例已实践
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
直接导入
在这里插入图片描述
在这里插入图片描述

c:准备zabbix的配置文件,并测试脚本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意记得修改模板中宏的变量,不然没法监控上
在这里插入图片描述

redis模板监控

由于zabbix5.0已经自带模板在这里插入图片描述
在这里插入图片描述
被监控机器需安装zabbix-agent2

[root@localhost ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.2-1.el7.x86_64.rpm
[root@localhost ~]# vi /etc/zabbix/zabbix_agent2.conf
Server=192.168.2.214
ServerActive=192.168.2.214
Hostname=xuqy01
[root@localhost ~]# systemctl restart zabbix-agent2
[root@localhost ~]# systemctl enable zabbix-agent2
# 若装过zabbix-agent版本需要先停掉zabbix-agent
systemctl disable zabbix-agent
systemctl disable zabbix-agent

#测试
[root@localhost init.d]# zabbix_get -s 192.168.2.208 -k  redis.ping["tcp://192.168.2.208:7001"]
1

在这里插入图片描述
模板其他机器还会用,因此可以参考下图改主机的宏
在这里插入图片描述

zabbix监控角度总结

a: 物理硬件监控(cpu温度,风扇转速,主板温度,电压,功率 ipmi工具监控 机房巡检)ipmitool命令行
b:操作系统监控(cpu负载,内存,磁盘容量io,网卡io,进程数,安全监控/etc/password)linux模板
c: 应用软件监控(nginx,php-fpm,mysql,redis,分布式文件系统glusterFS,ceph) 修改开源的模板
d:业务监控(业务状态,网页速度,pv,uv,ip监控,会员活跃数量,每天的成单量)
e: 网络设备监控 snmp
f:ELK监控日志

pv,uv,ip监控
开源软件: piwik matomo js代码
AWstates
第三方统计平台,腾讯分析。百度统计,谷歌分析, js代码

用户访问量监控

前提:登陆页面没有验证码或其他验证方式即可使用curl模拟登陆

1):使用curl命令,命令行模拟登陆discuz 2):使用curl模拟登陆zabbix web
在这里插入图片描述

保存session,鼠标点一点,发起http请求,html
在这里插入图片描述
选择Zabbix server机器(原因是一般这台策略开通到外网,其他机器配置可能没法发告警)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新开浏览器模拟登陆一次F12获取index.php登陆信息获取如下登陆用户的表单数据或源码
在这里插入图片描述
这里用源码了,比较方便,也可以用表格数据一项项的手工填写
name=Admin&password=zabbix&autologin=1&enter=Sign+in
在这里插入图片描述
在这里插入图片描述
3、创建测试页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看监测情况
在这里插入图片描述
在这里插入图片描述
创建web监测触发器

触发器一:主机页面状态码异常

在这里插入图片描述
当然响应时间过长也可以作为触发器判断条件 比如响应时间大于1s
创建触发器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试触发器

[root@localhost zabbix]# find / -name 'hosts.php'
/root/zabbix-5.0.2/ui/hosts.php
/var/www/html/hosts.php
[root@localhost zabbix]# ll /var/www/html/hosts.php
-rw-r--r--. 1 apache apache 52175 Jul  6  2020 /var/www/html/hosts.php

由于用的lamp架构 所以我们改一下/var/www/html/hosts.php文件,去掉读的权限测试
[root@localhost zabbix]# ll /var/www/html/hosts.php
--w-------. 1 apache apache 52175 Jul  6  2020 /var/www/html/hosts.php

触发器正常
在这里插入图片描述

在这里插入图片描述
测试恢复正常

[root@localhost zabbix]# chmod +r /var/www/html/hosts.php
[root@localhost zabbix]# ll /var/www/html/hosts.php
-rw-r--r--. 1 apache apache 52175 Jul  6  2020 /var/www/html/hosts.php

在这里插入图片描述

触发器二:主机页面响应慢

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试触发器
模拟攻击导致的页面慢

[root@localhost zabbix]# ab -n 100000 -c 20 http://192.168.2.214

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用percona 插件监控mysql

https://www.percona.com/ 开源数据库专家,改进数据库性能,提供了很多性能诊断工具

yum安装的mysql监控方法

#导入模板(兼容性)
#把zabbix的取值配置文件,放入到指定目录/etc/zabbix/zabbix_agentd.d/

rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/templates/
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agent2.d/
systemctl restart zabbix-agent2.service
yum install php-cli php-mysqlnd -y 或者php72w-cli  php72w-mysqlnd


vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
数据库账号密码
$mysql_user = 'root';
$mysql_pass = '123456';
$mysql_socket = '/tmp/mysql.sock';

#zabbix-get调试取值
zabbix_get -s 10.0.0.8 -k MySQL.Open-files

#在目标主机链接刚导入的模板
#验证,查看最新数据

其他方式安装的mysql监控方法
在这里插入图片描述
1、创建用于监控的 MySQL 用户
CREATE USER ‘zbx_monitor’@’%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON . TO ‘zbx_monitor’@’%’;

2、下载模板template_db_mysql_agent2.xml
在这里插入图片描述

3、被监控端安装zabbix-agent2

root@localhost ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.2-1.el7.x86_64.rpm
[root@localhost ~]# vi /etc/zabbix/zabbix_agent2.conf
Server=192.168.2.214
ServerActive=192.168.2.214
Hostname=xuqy01
[root@localhost ~]# systemctl restart zabbix-agent2
[root@localhost ~]# systemctl enable zabbix-agent2
# 若装过zabbix-agent版本需要先停掉zabbix-agent
systemctl disable zabbix-agent
systemctl disable zabbix-agent

#测试
[root@localhost init.d]# zabbix_get -s 192.168.2.208 -k  redis.ping["tcp://192.168.2.208:7001"]
1

snmp监控window和Linux

不能安装zabbix-agent的设备,都可以使用snmp监控

snmp协议: simple network manager protocol

OID:监控标准都有一个唯一的id,object id
oid自行百度 很多根据需要获取

总内存oid: .1.3.6.1.4.1.2021.4.5.0

MIB:

存储所有oid信息

snmp协议版本

v1
v2c  -c commuity 密码,口令
v3

a:安装snmp服务端,配置,启动
被监控主机为ip 192.168.2.205


yum install net-snmp -y
vim /etc/snmp/snmpd.conf
#第41行修改为
com2sec notConfigUser  default       123456
view    systemview    included   .1
​
systemctl start snmpd
systemctl enable snmpd

b: zabbix-server(192.168.2.214)安装snmp客户端,测试取值


yum install net-snmp-utils.x86_64 -y
# oid .1.3.6.1.4.1.2021.11.11.0 空闲CPU百分比
snmpwalk -v 2c -c 123456 192.168.2.205 .1.3.6.1.4.1.2021.11.11.0
snmpwalk -v 2c -c 123456 192.168.2.205

c:web界面添加snmp监控
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

zabbix自动发现和自动注册(主动)

在这里插入图片描述
在这里插入图片描述
创建自动发现动作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看自动发现的设备
在这里插入图片描述

自动注册

自动发现需要zabbix Server询问范围内机器是agent吗?效率低
因此引入自动注册
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置被监控机器agent如下

[root@localhost ~]# grep -vE '^$|#' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.2.214 #重要!
ServerActive=192.168.2.214 #重要!
Hostname=elasticsearch #重要!
HostMetadata=web #重要!
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#重启客户端后zabbix server立马就能看到监控的主机
[root@localhost ~]# systemctl restart zabbix-agent
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值