zabbix监控

监控服务概述

1、实时查看服务状态
2、可以发送报警信息(邮件报警、短信报警、电话报警、微信报警、值班(大屏幕)报警)
3、可以进行数据分析(潜在风险、对业务部门给出数据建议)

实现监控的方式:

1)zabbix实现监控
2)nagios(监控报警功能较强大)+cacti(网络流量报警)
3)小米监控
image.png

如何搭建监控平台

###通过多个维度进行描述

1、网络模型OSI七层模型分析
2、网站安全、性能、业务等角度进行分析

####监控维度说明:

1)硬件监控:需要规划好硬件设备(服务器、路由器、交换机、防火墙)
2)系统监控:CPU、内存、磁盘、网络、进程、TCP连接状态
3)服务监控:nginx、php、tomcat、redis、memcache、mysql
4)网站监控:请求时间、响应时间、加载时间(定一个规范化时间用来衡量网站是否合格)
5)日志监控:及早发现日志运行异常 ELK(收集、存储、分析、展示)日志易
6)安全监控:Firewalld WAF(Nginx+Lua)安全宝、牛顿云、安全狗
7)网络监控:smokeping 监控宝、站长工具、奇云测、多机房
8)业务监控:活动时产生的流量、带来的价值

系统基础监控命令

B{3UTDY895(M.png

zabbix监控服务部署

###zabbix服务端部署

####第一个里程: 下载安装zabbix yum 源文件

LTS long time support

  1. aliyun zabbix yum 源
  2. 清华源
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm -- 老版本
第二个里程: 下载安装zabbix服务端相关软件

LAMP架构中 httpd + PHP + mariadb
zabbix服务程序软件: zabbix-server-mysql
zabbix服务web软件: zabbix-web-mysql httpd php
数据库服务软件: mariadb-server
yum install -y zabbix-server-mysql zabbix-web-mysql httpd php mariadb-server

第三个里程: 软件配置
vim /etc/zabbix/zabbix_server.conf

126 DBPassword=zabbix

vim /etc/httpd/conf.d/zabbix.conf

21 php_value date.timezone Asia/Shanghai
第四个里程: 编写配置数据库服务
systemctl start mariadb.service

systemctl status mariadb.service

创建zabbix数据库--zabbix

create database zabbix character set utf8 collate utf8_bin;

创建数据库管理用户

grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

在zabbix数据库中导入相应的表信息

zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz|mysql -uzabbix -pzabbix zabbix
第五个里程: 启动zabbix程序相关服务

数据库服务 zabbix服务 httpd服务

systemctl start zabbix-server.service httpd mariadb.service

systemctl enable zabbix-server.service httpd mariadb.service

说明: 至此zabbix-server命令行操作结束

第六个里程: 登录zabbix服务端web界面, 进行初始化配置
http://10.0.0.71/zabbix/setup.php

10051 zabbix-server 服务端端口号

10050 zabbix-agent 客户端端口号

/etc/zabbix/web/zabbix.conf.php -- 记录web页面初始化信息
第七个里程: 登录zabbix服务web页面
用户名Admin 密码zabbix

zabbix客户端部署

实现zabbix监控主机方法:

clipboard.png
image.png

image.png

image.png

####异常问题总结:无法实现zabbix监控

1)服务端没有指定配置好监控的主机
2)客户端没有安装好软件或者启动好服务
如果客户端已经安装过旧版监控软件,使用新版软件时需要卸载(否则新版无法安装)
客户端配置文件需要编写正确

####监控原理图:
image.png

###如何设置自定义监控项

需求: 监控内存使用率情况,低于20%就报警

第一个历程: 利用命令获取监控信息
free -m|awk 'NR==2{print int($7/$2*100)}'
第二个历程: 编写zabbix-agent程序配置文件
UserParameter --- 定义监控的命令信息

[root@web01 yum.repos.d]# cd /etc/zabbix/zabbix_agentd.d/

[root@web01 zabbix_agentd.d]# vim mem.conf

UserParameter=mem.use,free -m|awk 'NR==2{print int($7/$2*100)}'
第三个历程: 调取监控的数据信息
利用命令进行调取监控信息

yum install -y zabbix-get --- 安装收集信息的命令(zabbix-server端进行安装)

zabbix_get -s 172.16.1.7 -k mem.use

利用监控服务调取监控信息

  1. 创建监控项
    [配置]–选择要监控的主机–[监控项]–创建监控项
    [监测]–[最新数据]–查看监控的数据信息
第四个历程: 进行监控报警

[配置]–选择要监控的主机–[触发器]–创建触发器

image.png
image.png
image.png
image.png
image.png

实现邮件告警

需求:当系统超过5个用户登录,发送邮件告警

image.png

需求: 当系统超过5个用户登陆,发送邮件告警

第一个历程: 利用命令获取监控信息
w|awk 'NR==1{print $6}'
第二个历程: 编写zabbix-agent程序配置文件
UserParameter --- 定义监控的命令信息

[root@web01 yum.repos.d]# cd /etc/zabbix/zabbix_agentd.d/

[root@web01 zabbix_agentd.d]# vim login.conf

UserParameter=login.user,w|awk 'NR==1{print $6}'

systemctl restart zabbix-agent.service
第三个历程: 调取监控的数据信息
利用命令进行调取监控信息

yum install -y zabbix-get --- 安装收集信息的命令(zabbix-server端进行安装)

zabbix_get -s 172.16.1.7 -k login.user

利用监控服务调取监控信息

1) 创建监控项

[配置]--选择要监控的主机--[监控项]--创建监控项

[监测]--[最新数据]--查看监控的数据信息
第四个历程: 进行监控报警
[配置]--选择要监控的主机--[触发器]--创建触发器
第五个历程: 发送邮件告警
[配置]--[动作]--将动作条目信息开启

定义发件人信息

[管理]--[报警媒介类型]--[创建新的报警媒介]

定义接收人信息

[小人头]--[报警媒介]

添加微信报警

编写微信报警脚本
[root@zabbix-server /usr/lib/zabbix/alertscripts]# vim weixin.py 
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']

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

touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n" +sys.argv[3]

params={
        "touser": touser,
#       "toparty": toparty,
        "msgtype": "text",
        "agentid": agentid,
        "text": {
                "content": message
        },
        "safe":0
}

req=requests.post(msgsend_url, data=json.dumps(params))

logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

这里调用的是企业微信的的接口,需要申请企业微信才可以用.脚本下载地址链接:https://pan.baidu.com/s/1X8WqJ7BUsnwWT2A-UOYYOA
提取码:a5o7

将脚本放到 /usr/lib/zabbix/alertscripts 目录下

可以在/etc/zabbix/zabbix-server.conf文件下找到脚本的路径,用到的命令是

[root@zabbix-server /usr/lib/zabbix/alertscripts]# egrep -v '^$|#' /etc/zabbix/zabbix_server.conf |grep scripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

添加执行权限
[root@zabbix-server /usr/lib/zabbix/alertscripts]# chmod +x weixin.py 
[root@zabbix-server /usr/lib/zabbix/alertscripts]# ll
total 4
-rwxr-xr-x 1 root root 1344 Jul  9 10:55 weixin.py

尝试发送微信消息
[root@m01 ~]# python weixin.py 
Traceback (most recent call last):
  File "weixin.py", line 7, in <module>
    import requests
ImportError: No module named requests

我这里是找了一台新的机器测试发送的,不用在意路径。尝试运行脚本却提示缺少requests库

安装缺少的库

[root@m01 ~]# yum install -y python2-pip
[root@m01 ~]# pip install   requests

再次尝试发送

[root@m01 ~]# python weixin.py  GeBangfeng  '微信报警' '第一次检查测试微信发送'

image

zabbix-web上面添加发送者

image.png

image

{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE}, 这是三个变量分别代表,收件人标题,主机名。不能乱循序

添加微信报警接收者

image.png

image

触发报警,就可以收到了

image

监控一台服务器主机

10.0.0.7 zabbix-agent

a:安装zabbix-agent
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.24-1.el7.x86_64.rpm
b:配置zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
95行:Server=10.0.0.71
c:启动zabbix-agent
systemctl start zabbix-agent.service 
systemctl enable zabbix-agent.service
d:再zabbix-web上面添加监控主机

添加自定义监控项

查看已经存在的监控项

image.png

image.png

image.png

这里就是zabbix自带的一些监控项,图中圈起来的就是一些键值(key).键值就是zabbix用于监控的类式余脚本的东西。我们可以尝试取下键的值。

安装zabbix-get
yum install -y zabbix-get

image

尝试取值
[root@zabbix-server /etc/zabbix/zabbix_agentd.d]# zabbix_get -s 127.0.0.1 -p 10050 -k system.hostname
zabbix-server

安装之后命令是zabbix_get ,参数-s 为要取值的ip -p 为端口 -k为要取的值
这些值都是zabbix-agent来取的。

取出用户连接数
[root@m01 ~]# who
root     pts/0        2019-07-09 22:09 (10.0.0.1)
root     pts/6        2019-07-09 14:44 (10.0.0.1)
[root@m01 ~]# who|wc -l
2

设置自定义key

格式为:UserParameter=, 。因为zabbix-agend 是用来取值的,所以把自定义key放到它的配置文件里

[root@m01 ~]# grep '^User' /etc/zabbix/zabbix_agentd.conf
UserParameter=tps,iostat|awk '/^sda/{print $2}'
UserParameter=ssh_user,who|wc -l
[root@ m01/etc/zabbix]# systemctl restart zabbix-agent.service 

修改了配置文件记得重启

zabbix-get测试取值。
[root@zabbix-server ~]# zabbix_get -s 10.0.0.61 -k ssh_user
2

命令行测试没问题,去web界面添加自定义监控

添加自定义监控

zabbix自带的监控项满足不了我们需求

image.png

image

image.png

添加自定义触发器

image.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值