Rocky-8.9安装zabbix6.2并且配置钉钉告警监控

 

目录

 Rocky-8.9安装zabbix6.2并且配置钉钉告警监控

 1、服务器环境

 2、优化服务器

 3、安装zabbix服务端,zabbix客户端以及相关组件

 4、zabbix安装(web界面)

zabbix客户端安装以及加入zabbix监控中

自定义监控指标 

 配置钉钉告警


 Rocky-8.9安装zabbix6.2并且配置钉钉告警监控

# 2024.09.05
# 作者:某奏。
# Rocky-8.9安装zabbix并且配置钉钉告警监控

 1、服务器环境

# 服务器环境
# 服务器:192.168.195.50
# 因为只有一台服务器,所以这台服务器既做服务端也做客户端(后面也会演示如果加入了一台客户端,怎么加入zabbix监控中)
# 服务器的版本是Rocky-8.9
[root@localhost ~]# cat /etc/os-release 
NAME="Rocky Linux"
VERSION="8.9 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.9"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.9 (Green Obsidian)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2029-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8"
ROCKY_SUPPORT_PRODUCT_VERSION="8.9"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.9"
[root@localhost ~]# cat /etc/redhat-release 
Rocky Linux release 8.9 (Green Obsidian)

 2、优化服务器

# 优化服务器 (注意centos8以上网卡使用的是NetworkManager 所以不能关闭)
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config &> /dev/null
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld &> /dev/null
[root@localhost ~]# systemctl disable firewalld &> /dev/null
[root@localhost ~]# iptables -F
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@localhost ~]# hostnamectl set-hostname zabbix
[root@localhost ~]# exit
[root@zabbix ~]#

 3、安装zabbix服务端,zabbix客户端以及相关组件

# 安装zabbix
# 1、安装镜像源
[root@zabbix ~]# yum install https://mirrors.huaweicloud.com/zabbix/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch.rpm
# 2、安装zabbix server
[root@zabbix ~]# yum install -y zabbix-server-mysql
# 3、安装zabbxi-agent
[root@zabbix ~]# yum install zabbix-agent -y
# 4、安装zabbix web
[root@zabbix ~]# yum install zabbix-web-mysql zabbix-nginx-conf.noarch nginx -y
# 5、安装mysql(注:zabbix6.0版本需要MySQL8.0版本以上)
[root@zabbix ~]# yum install mysql-server -y
# 6、启动mysql,并且创建zabbix库和用户,并且分配权限
[root@zabbix ~]# systemctl enable --now mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
[root@zabbix ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36 Source distribution

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database zabbix charset utf8 collate utf8_bin;
Query OK, 1 row affected, 2 warnings (0.01 sec)

mysql> create user zabbix@localhost identified with mysql_native_password by 'zabbix';
Query OK, 0 rows affected (0.01 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set host ='%' where user='zabbix'
    -> ;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on zabbix.* to zabbix@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit;

# 7、导入官网提供的数据
[root@zabbix ~]# yum install zabbix-sql-scripts.noarch -y
[root@zabbix ~]# cd /usr/share/zabbix-sql-scripts/mysql
[root@zabbix mysql]# zcat server.sql.gz | mysql zabbix
[root@zabbix mysql]# mysql zabbix < double.sql
[root@zabbix mysql]#  mysql zabbix < history_pk_prepare.sql

# 8、为zabbix server配置数据库
[root@zabbix mysql]# vi /etc/zabbix/zabbix_server.conf
[root@zabbix mysql]# grep ^DB /etc/zabbix/zabbix_server.conf -n
105:DBName=zabbix
121:DBUser=zabbix
129:DBPassword=zabbix

# 9、修改zabbix.conf和并切换php版本(如果有nginx.conf文件也要修改,如果没有就不用修改)
[root@zabbix mysql]# vi /etc/nginx/conf.d/zabbix.conf
[root@zabbix mysql]# cat /etc/nginx/conf.d/zabbix.conf  
# 取消注释

server {
        listen          80;
        server_name     192.168.195.50
        
# 若有nginx.conf需要配置以下设置(没有不用管)
[root@zabbix ~]# vim /etc/nginx.conf //注释掉相应内容
server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
#        server_name  _;
#       root         /usr/share/nginx/html;

# 切换php版本
[root@zabbix mysql]# dnf module switch-to php:7.4  

# 10、配置基本完成,启动php,zabbix-server等所有服务
[root@zabbix mysql]# systemctl restart nginx.service php-fpm.service zabbix-server.service zabbix-agent.service

# 浏览器输入地址(192.168.195.50)
# 欢迎-自行选择语言-下一步

 4、zabbix安装(web界面)

检查必要条件-都ok就-下一步

# 刚刚数据库设置的账号密码。
# mysql默认的端口是3306,除非自己改了。
配置数据库连接-填写好-下一步(zabbix,zabbix)

# 这里的主机名可以按照自己所需的填写
设置-填写好zabbix主机名称-下一步

安装前汇总-下一步

安装-完成

输入zabbix的账号密码,默认是Admin,zabbix  (注意账号是大写的A)

zabbix客户端安装以及加入zabbix监控中

# 如果有一台新的服务器需要监控,该如何操作?
# 配置zabbix agent(因为实验只有一台服务器,所以既做服务端,又作客户端)
# 因为在安装zabbix sever 已经安装了zabbix agent 所以这里不用再安装,可以直接操作
# 但如果没有安装的需要安装一下,如下:
yum -y install zabbix-agent

# 操作
[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf 
# 192.168.195.50 为服务端IP
117 Server=127.0.0.1,192.168.195.50

重启客户端
[root@zabbix ~]# systemctl enable zabbix-agent --now
[root@zabbix ~]# systemctl restart zabbix-agent
# 将客户端加入监控中
· 主机:安装了agent,被监控的主机
· 主机组:根据需求,将多台主机加入到一个主机组中,方便管理。系统默认已经创建了一些主机组。
· 模板:是监控项的集合。将模板应用到主机,主机就可以直接拥有模板中的所有监控项。系统中默认已经创建了一些模板。

1、主机-创建主机
2、输入主机名称,模板,主机群组,接口下的添加(选择agent,输入客户端ip)-添加

变成绿色的ZBX表示添加成功

自定义监控指标 

常用监控指标
· Space utilization:以百分比显示的磁盘利用率
· Used space:已用磁盘空间
· Available memory:可用内存
· CPU idle time:CPU空闲时间。不宜过低。
· Load average (1m avg)、Load average (5m avg)、Load average (15m avg):CPU1分钟、5分钟、15分钟的平均负载。这个值不应长期大于核心数。
· Interface eth0: Bits received:网卡接收到的数据量
· Interface eth0: Bits sent:网卡发送的数据量
· Number of processes:系统运行的进程数
· Number of logged in users:已登陆的用户数

# 如何自定义监控指标?
语法:UserParameter=自定义key值,命令
# 这个是监控用户总数(也可以自己写其他的)
[root@zabbix ~]# vi /etc/zabbix/zabbix_agentd.d/usercnt.conf
[root@zabbix ~]# systemctl restart zabbix-agent.service
[root@zabbix ~]# cat /etc/zabbix/zabbix_agentd.d/usercnt.conf
UserParameter=usercnt,sed -n '$=' /etc/passwd

# 验证自定义监控项
# 安装zabbix-get
[root@zabbix ~]# yum install -y zabbix-get
# 获取监控项的值
[root@zabbix ~]# zabbix_get -s 127.0.0.1 -k usercnt
25
[root@zabbix ~]# zabbix_get -s 192.168.195.50 -k usercnt
25
· 创建模板
配置-模板-创建模板(模板名称,模板组(可以自己写一个新的))-添加

·设置监控项
配置-模板-(可以使用搜索栏快速查询)-监控项-创建监控项-(名称,键值(就是自定义监控的键值usercnt))-添加

应用模板到主机 (选择刚刚创建的模板组ceshi_group)

看到这显示25就表示成功了

 配置钉钉告警

重点:配置钉钉告警
# 当用户超过28个发送告警
# 创建一个企业群

进入群里-设置机器人

注意:这个关键词是要设置的,后续需要写这个关键词才能触发钉钉告警
注意:这个webook也要保存起来,不能给别人,不然其他人也可以在这个群发信息
https://oapi.dingtalk.com/robot/send?access_token=f59eca8f37572ff951f8e5e24fdcaa79814bc673ec663661303e442d928ec2

# 连接到zabbix sever节点,创建钉钉告警脚本,只需替换webhook地址参数即可。
[root@zabbix ~]# vi /usr/lib/zabbix/alertscripts/dingding_ceshi.py
[root@zabbix ~]# cat /usr/lib/zabbix/alertscripts/dingding_ceshi.py
#!/usr/bin/env python3
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=f59eca8f37572ff951f8e5e24fdcaa79814bc673ec663661303e442d928ec2"
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}

headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)

if os.path.exists("/var/log/zabbix/dingding_ceshi.log"):
    f=open("/var/log/zabbix/dingding_ceshi.log","a+")
else:
    f=open("/var/log/zabbix/dingding_ceshi.log","w+")
f.write("\n"+"--"*30)

if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
    f.close()

[root@zabbix ~]# chmod +x /usr/lib/zabbix/alertscripts/dingding_ceshi.py
[root@zabbix ~]# touch /var/log/zabbix/dingding_ceshi.log
[root@zabbix ~]# chown zabbix.zabbix /var/log/zabbix/dingding_ceshi.log

# 安装python 请求模块
[root@zabbix ~]# yum update -y
[root@zabbix ~]# yum install -y python3-pip
[root@zabbix ~]# pip3 install requests

# 报警测试,要写三个参数并且带关键字"告警" (注意必须要写刚刚创建机器人的关键词,不然会发送失败)
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix alertscripts]# ./dingding_ceshi.py this is "告警测试,qyc"
# 就收到信息了

# 注意:如果没有关键字就会报错!!!!
# zabbix配置监控
管理-媒介-创建媒介类型(名称,脚本名称,脚本参数)
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

# 消息模板-添加为用户添加报警媒介

# 自定义消息
Problem: {EVENT.NAME}


-=【告警】=-
告警组:{TRIGGER.HOSTGROUP.NAME}
告警主机:{HOSTNAME1} 
告警主机别名:{HOST.NAME}
主机IP:{HOST.IP}
主机描述:{HOST.DESCRIPTION}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
警报类别:{TRIGGER.NAME}
当前状态:{ITEM.LASTVALUE}
告警平台:http://192.168.195.50/zabbix

# 为用户添加报警媒介
管理-用户(点击admin)-报警媒介(添加)-类型(要写选择创建的媒介类型)-收件人(可以随便写)

# 创建触发器

配置动作也就是监控

 

这里的步骤时间就是多久发一次告警,秒为单位,60表示60秒发一次

 

# 测试
[root@zabbix alertscripts]# useradd aa
[root@zabbix alertscripts]# useradd aaa
[root@zabbix alertscripts]# useradd aaaa
[root@zabbix alertscripts]# useradd aaaaa
[root@zabbix alertscripts]# zabbix_get -s 192.168.195.50 -k usercnt
29

# 收到告警信息了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值