阅读视图

发现新文章,点击刷新页面。
🔲 ☆

zabbix 通过 agent 监控进程、端口


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/211025912047/
相关话题:https://www.cnsre.cn/tags/zabbix/


环境介绍

操作系统:centos 7.4

zabbix版本:zabbix server 3.4.7

客户端:zabbix-agent 3.4.7

监控进程:mysqld

监控端口:3306 tcp

进程监控

确认客户端已经安装且运行agent

sre运维|Linux运维|自动化运维|zabbix进程端口监控

查看进程

查看属于那个用户的 几个进程

mysql 的进程为root用户 两个进程

sre运维|Linux运维|自动化运维|zabbix进程端口监控

添加监控项

sre运维|Linux运维|自动化运维|zabbix进程端口监控

名称随便写

类型zabbix客户端

键值选则进程数返回数

应用集选则prosesses 进程

sre运维|Linux运维|自动化运维|zabbix进程端口监控

proc.num[<name>,<user>,<state>,<cmdline>]

以下是对mysql进程的监控配置,key中的参数说明,

<name>第一个参数是进程名字,没必要填写,填了反而会使监控不太准确(仅个人测试)

<user>第二个参数是运行进程的用户名

<state>第三个为进程的状态 ,一般选则all 包括:all (default), run, sleep, zomb

<cmdline>第四个参数用来指定进程名中包含的字符,对进程进行过滤。

确认更新

sre运维|Linux运维|自动化运维|zabbix进程端口监控

创建触发器

sre运维|Linux运维|自动化运维|zabbix进程端口监控

sre运维|Linux运维|自动化运维|zabbix进程端口监控

选择刚才创建的监控项

sre运维|Linux运维|自动化运维|zabbix进程端口监控

插入

sre运维|Linux运维|自动化运维|zabbix进程端口监控

sre运维|Linux运维|自动化运维|zabbix进程端口监控

修改{hgh3a01:proc.num[,root,all,mysqld].last()}=0

{hgh3a01:proc.num[,root,all,mysqld].max(#2)}=2

hgh3a01:主机名称

proc.num[,root,all,mysqld]:监控项

max(#2)}=2 :表示最后两次的接收到的值都是2个进程(ps -ef 看到 mysqld 的进程为两个所以=2 ),说明mysqld进程在运行,则出发报警。

因为我们要测试是否能出发告警,所以要选则 =2 正常的<1 就是没有运行。

稍等几分钟观察看看能不能触发触发器

sre运维|Linux运维|自动化运维|zabbix进程端口监控

收到邮箱警告

sre运维|Linux运维|自动化运维|zabbix进程端口监控

吧测试的进程改为正常的(因为mysql 运行的进程为两个我这变设置的触发器为进程小于两个进程就发出告警)

sre运维|Linux运维|自动化运维|zabbix进程端口监控

保存更新观察是否回复正常

sre运维|Linux运维|自动化运维|zabbix进程端口监控

sre运维|Linux运维|自动化运维|zabbix进程端口监控

监控端口

添加监控项

sre运维|Linux运维|自动化运维|zabbix进程端口监控

修改端口 保存更新

sre运维|Linux运维|自动化运维|zabbix进程端口监控

同监控进程一样(先测试)

sre运维|Linux运维|自动化运维|zabbix进程端口监控

收到触发警告

sre运维|Linux运维|自动化运维|zabbix进程端口监控

吧之前的值调整为0

sre运维|Linux运维|自动化运维|zabbix进程端口监控

测试回复正常

sre运维|Linux运维|自动化运维|zabbix进程端口监控


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/211025912047/
相关话题:https://www.cnsre.cn/tags/zabbix/


🔲 ☆

zabbix自定义监控磁盘分区


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/211021950307/
相关话题:https://www.cnsre.cn/tags/zabbix/


系统环境

Zabbix 版本:3.4

操作系统版本:centos7.4

监控分区 / 、/boot 、/home

先创建监控项的模板

cnsre运维|Linux运维|自动化运维|zabbix自定义监控磁盘分区

点击创建监控项

cnsre运维|Linux运维|自动化运维|zabbix自定义监控磁盘分区

名称随意填写,键值的话因为我们监控车的是磁盘剩余的百分比所有选则次键值,应用集则选则filsystems

cnsre运维|Linux运维|自动化运维|zabbix自定义监控磁盘分区

选则键值

cnsre运维|Linux运维|自动化运维|zabbix自定义监控磁盘分区

选则添加我们的监控项已经创建。

cnsre运维|Linux运维|自动化运维|zabbix自定义监控磁盘分区

查看监控项看下创建测监控项是否异常。

cnsre运维|Linux运维|自动化运维|zabbix自定义监控磁盘分区

选则需要监控的主机

接下来我们来创建监控项。

监控项名称随意填写。

然后吧严重性选则为一般告警(因为我们短信邮箱告警等级是一般告警以上的告警等级推送)

选则我们刚才创建的监控项

cnsre运维|Linux运维|自动化运维|zabbix自定义监控磁盘分区

修改表达式

写出监控的分区我们这以home分区为例。

cnsre运维|Linux运维|自动化运维|zabbix自定义监控磁盘分区

完成以后添加即可。


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/211021950307/
相关话题:https://www.cnsre.cn/tags/zabbix/


🔲 ☆

LNMP 方式部署 zabbix 5.0


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210824854115/
相关话题:https://www.cnsre.cn/tags/zabbix/


Zabbix 5.0 LTS新增功能

新版本附带了可用性,安全性和完整性方面的重大改进列表。Zabbix团队遵循的主要策略是使Zabbix尽可能可用。Zabbix是一种开源,免费的监视解决方案,现在可以在内部和云中部署。在RedHat / IBM,SuSE,Ubuntu的最新版本的平台,容器和Linux发行版中可用。现在,一键式Zabbix部署也可以在Azure,AWS,Google Cloud,IBM / RedHat Cloud,Oracle和Digital Ocean上使用。现在,在Red Hat和Azure市场上提供Zabbix技术支持服务。

此外,Zabbix监视工具还提供了与Messenger,票务和警报系统的大量现成集成。新版本扩展了可以轻松监控的受支持服务和应用程序的列表。

  • 自动化和发现:新的Zabbix版本具有改进的自动化功能。新版本增加了自动发现硬件组件,与Windows相关的资源以及Java度量的高级发现的功能。
  • 可扩展性:Zabbix UI已经过优化,可以简化对数百万个设备的监视。
  • 新的Zabbix监视代理程序具有“官方支持”状态。新的可扩展代理为最苛刻的客户和复杂的用例提供了高级功能。它基于插件体系结构,具有使用各种方法和技术收集度量标准数据的能力。我们相信它是市场上最先进的监控代理。
  • 安全性方面的重大改进:新的改进确保所有Zabbix组件以安全的方式进行通信,并且还使用安全协议进行出站通信,而不会以任何方式影响性能。对于在高度敏感的环境中使用Zabbix的用户而言,可配置的密码以及为度量定义黑名单和白名单的能力至关重要。
  • TimescaleDB的压缩:时间序列数据压缩有助于提高性能和效率,同时降低运营成本。
  • 可用性改进:新版本针对宽屏进行了优化,除了Zabbix UI的其他增强功能之外,还引入了对第三方UI模块的支持。
    Zabbix 5.0是具有5年官方支持的LTS(长期支持)版本。它结合了创新和稳定性,并包括经过时间检验的功能,这些功能已在Zabbix 4.2和4.4的非LTS版本中引入,这使其成为大型企业环境的理想选择。

硬件配置需求

参考 zabbix 5.0 中文手册

环境 平台 CPU/内存 数据库 硬盘 监控主机数
小型 centOS 2CPU/1GB MySQL、InnoDB 普通 100
中型 centOS 2CPU/2GB MySQL、InnoDB 普通 500
大型 Red HatEnterpirse Linux 4CPU/8GB MySQL、InnoDB 或PostgreSQL RAID 10 或 SSD 大于1000
超大型 Red HatEnterpirse Linux 8CPU/16GB MySQL、InnoDB 或PostgreSQL RAID 10 或 SSD 大于10000

前端软件需求

参考 zabbix 5.0 中文手册

Zabbix 前端需要使用下列软件:

软件 版本 备注
Apache 1.3.12 或以上
PHP 5.4.0 或以上

PHP 扩展库:

软件 版本 备注
gd 2.0 or later PHP GD 扩展库必须支持 PNG 图像(–with-png-dir)、JPEG 图像 (–with-jpeg-dir) 和 FreeType 2 (–with-freetype-dir).
bcmath php-bcmath (–enable-bcmath)
ctype php-ctype (–enable-ctype)
libXML 2.6.15 或以上 php-xml or php5-dom,如果发布者提供独立的部署包。
xmlreader php-xmlreader,如果发布者提供独立的部署包。
xmlwriter php-xmlwriter,如果发布者提供独立的部署包。
session php-session,如果发布者提供独立的部署包。
sockets php-net-socket (–enable-sockets) 。用户脚本支持所需要的组件。
mbstring php-mbstring (–enable-mbstring)
gettext php-gettext (–with-gettext)。用于多语言翻译支持。
ldap php-ldap。只有在前端使用 LDAP 认证时才需要。
ibm_db2 使用 IBM DB2 作为 Zabbix 后端数据库所需要的组件。
mysqli 使用 MySQL 作为 Zabbix 后端数据库所需要的组件。
oci8 使用 Oracle 作为 Zabbix 后端数据库所需要的组件。
pgsql 使用 PostgreSQL 作为 Zabbix 后端数据库所需要的组件。

环境准备

1
2
3
4
5
6
CentOS Linux release 7.9.2009 (Core)
nginx 1.16.1
zabbix-server 5.0.14
zabbix-agent  5.0.14
MariaDB 5.5.68
PHP 7.4.22

关闭防火墙及selinux

1
2
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

修改阿里云yum源

参考链接

1
2
3
4
5
6
7
8
9
# 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载新的CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 添加EPEL
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 清理缓存并生成新的缓存
yum clean all
yum makecache

PHP 7.4 安装配置

添加源

1
2
yum install epel-release -y
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

安装PHP

1
yum --enablerepo=remi install php74-php -y

安装你所需要php扩展模块

1
yum --disablerepo="*" --enablerepo="centos-sclo-rh" install rh-php72-php-gd rh-php72-php-bcmath rh-php72-php-mbstring rh-php72-php-mysqlnd rh-php72-php-xml rh-nginx116-nginx rh-php72 rh-php72-php-fpm rh-php72-php-ldap -y

安装其他依赖

安装zabbix报错,提示Requires: libiksemel.so.3()(64bit),该文件为内核链接文件,无法绕过只有解决了这个依赖才可能继续安装,解决的方法为缺什么补什么,它要这个就给它。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 提示 需要:Requires: libiksemel.so.3()(64bit) 
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//iksemel-1.4-6.sdl7.x86_64.rpm
yum install iksemel-1.4-6.sdl7.x86_64.rpm -y
# 提示 需要:libwebp.so.4()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libwebp-0.3.0-7.el7.src.rpm
yum install libwebp -y
# 提示 需要:libjpeg.so.62()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libjpeg-turbo-1.2.90-8.el7.src.rpm
yum install libjpeg-turbo -y
# 提示 需要:libXpm.so.4()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libXpm-3.5.12-1.el7.src.rpm
yum install libXpm -y
# 提示 需要:gd
wget http://vault.centos.org/7.9.2009/updates/Source/SPackages/gd-2.0.35-27.el7_9.src.rpm
yum install gd -y

修改配置文件

1
2
3
4
5
6
sed -i "s#max_execution_time = 30#max_execution_time = 600#g" /etc/php.ini
sed -i "s#max_input_time = 60#max_input_time = 600#g" /etc/php.ini
sed -i "s#memory_limit = 128M#memory_limit = 256M#g" /etc/php.ini
sed -i "s#post_max_size = 8M#post_max_size = 32M#g" /etc/php.ini
sed -i "s#upload_max_filesize = 2M#upload_max_filesize = 16M#g" /etc/php.ini
sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g" /etc/php.ini

运行并查看版本, 重启命令, 添加自动启动,链接php文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#运行并查看版本
php74 -v
#重启命令php-fpm
systemctl restart php74-php-fpm
#添加自动启动
systemctl enable php74-php-fpm
#查看php7.4的安装路径
whereis php
#链接php文件
ln -s /opt/remi/php74/root/usr/bin/php /usr/bin/php

安装其他依赖

安装zabbix报错,提示Requires: libiksemel.so.3()(64bit),该文件为内核链接文件,无法绕过只有解决了这个依赖才可能继续安装,解决的方法为缺什么补什么,它要这个就给它。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 提示 需要:Requires: libiksemel.so.3()(64bit) 
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//iksemel-1.4-6.sdl7.x86_64.rpm
yum install iksemel-1.4-6.sdl7.x86_64.rpm -y
# 提示 需要:libwebp.so.4()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libwebp-0.3.0-7.el7.src.rpm
yum install libwebp -y
# 提示 需要:libjpeg.so.62()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libjpeg-turbo-1.2.90-8.el7.src.rpm
yum install libjpeg-turbo -y
# 提示 需要:libXpm.so.4()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libXpm-3.5.12-1.el7.src.rpm
yum install libXpm -y
# 提示 需要:gd
wget http://vault.centos.org/7.9.2009/updates/Source/SPackages/gd-2.0.35-27.el7_9.src.rpm
yum install gd -y

zabbix 服务安装

安装 Zabbix 存储库

1
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

安装 Zabbix 服务器和代理

1
yum install zabbix-server-mysql zabbix-agent -y

安装 zabbix 前端

1
2
yum -y install yum-utils   
yum-config-manager --enable rhel-server-rhscl-7-rpms -y

编辑配置文件

编辑配置文件 /etc/yum.repos.d/zabbix.repo 并启用Zabbix 前端存储库

1
2
3
4
5
vi /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...

安装前端所需软件

1
yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y

数据库安装配置

安装数据库

1
yum install -y mariadb-server mariadb

启动服务

1
systemctl start mariadb

设置服务开启自启动

1
systemctl enable mariadb

登录数据库

1
2
3
4
mysql -uroot -p
修改默认密码
mysql> SET PASSWORD = PASSWORD('cnsre.cn');
#cnsre.cn是你的新密码

如何解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements呢?

1
2
3
4
5
6
7
8
# 修改validate_password_policy参数的值
set global validate_password_policy=0; 
# 再修改密码的长度
set global validate_password_length=1;
# 再次执行修改密码就可以了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'cnsre.cn';
# 允许root远程登陆
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'cnsre.cn' WITH GRANT OPTION;

创建初始数据库

在数据库主机上运行以下代码

1
2
3
4
5
6
7
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> flush privileges;
mysql> quit;

导入模板数据

导入初始架构和数据
方法1

1
 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p

方法2

1
2
3
4
5
6
# 切换到 create.sql.gz 目录 我的目录如下
cd /usr/share/doc/zabbix-server-mysql-5.0.14
gzip  -d create.sql.gz
mysql -uroot -p
mysql> use zabbix;
mysql> source /usr/usr/share/doc/zabbix-server-mysql-5.0.14/create.sql

配置Zabbix-server

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
mv /etc/zabbix/zabbix_server.conf  /etc/zabbix/zabbix_server.conf.bak
vim /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=1024M
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

配置zabbix-agent

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
mv /etc/zabbix/zabbix_agent.conf  /etc/zabbix/zabbix_agent.conf.bak
vim /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=
ListenPort=10050
ServerActive=
Hostname=
Include=/etc/zabbix/zabbix_agentd.d/

nginx 安装配置

为 Zabbix 前端配置 PHP

编辑文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf,取消注释和设置 listenserver_name 指令。

# listen 80;
# server_name example.com;

编辑文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf ,将 nginx 添加到 listen.acl_users 指令。

listen.acl_users = apache,nginx

然后取消注释并为设置正确的时区。

php_value[date.timezone] = Asia/Shanghai

启动所有服务

1
2
3
systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl status  zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm 

检查端口

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[root@localhost ~]# netstat  -pntl 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      18862/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      968/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1258/master         
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      18816/zabbix_agentd 
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      18813/php-fpm: mast 
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      18700/mysqld        
tcp6       0      0 :::80                   :::*                    LISTEN      18862/nginx: master 
tcp6       0      0 :::22                   :::*                    LISTEN      968/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1258/master         
tcp6       0      0 :::10050                :::*                    LISTEN      18816/zabbix_agentd 

访问配置 zabbix 前端

连接到新安装的Zabbix前端: http://server_ip

⚠️ 如果打开页面访问不到 zabbix 页面,将 /etc/opt/rh/rh-nginx116/nginx/nginx.conf 配置文件中的 server 模块注释掉重启即可

cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
默认的用户 Admin/zabbix
好了,到这里,我们就已经完成了Zabbix 5.0 LTS 的安装,快去体验吧。

作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210824854115/
相关话题:https://www.cnsre.cn/tags/zabbix/


🔲 ☆

zabbix告警推送至个人微信


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210518420293/
相关话题:https://www.cnsre.cn/tags/zabbix/


自从接触zabbix后,就一直想着怎么才能把告警推送到个人微信上。有这样的想法主要是个人微信的使用频率远远要比钉钉,企业微信,邮箱,飞书等使用频率要高。比如我,就遇到过在周末的时候,因为没有及时登录钉钉查看zabbix告警通知,导致一些告警没来得及处理,对环境产生了影响。
前段时间朋友给推荐了pushplus,一开始主要在jenkins做构建通知用的,后来就想,能不能使用zabbix的告警通知推送到微信上呢?

先介绍下pushplus吧,pushplus 官方介绍
pushplus(推送加)集成了微信、企业微信、钉钉、短信、邮件等实时信息推送平台
你只需要调用简单的API,即可帮助你迅速完成消息的推送,使用简单方便
我们的所做的一切只是为了让推送变的更简单

pushplus

登录官网注册pushplus

访问官网后点击登录,微信扫描即可注册。
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

获取pushplus Token

注册成功后。点击一对多,然后新建一个群组。群组编码作为群组的唯一标示,后续需要使用。群组名称随意填写。
创建成功之后点击群组上的查看二维码,将二维码发给需要加入群组的同事。以后推送的消息加入群组的用户都会收的到。在“订阅人”中可以主动的移除不想要的用户。
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
然后保存你的token和群组编码。

zabbix_server端设置

查看pushplus调用方式.
附上脚本
脚本很简单,shell直接调用接口即可

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
LANG=en_US.UTF-8

 ################################################# "
 # 脚本名称 : zabbix告警推送个人微信脚本            # "
 # 作    者 : sre运维博客                          # "
 # 网    址 : https:www.cnsre.cn                   # "
 ################################################# "


token=c651d07axxxxxxxxxxx  
topic=$1
title=$2                   
content=$3                 
url=http://www.pushplus.plus/send
json="{\"token\":  \"$token\", \"title\": \"$title\", \"content\": \"$3\", \"template\": \"html\", \"topic\": \"$topic\"}"
curl -H "Content-Type: application/json" -X POST -d "$json" $url
  • token 在 pushplus 官网中一对一一对多中查看 你的token
  • topic 在 创建的群组 中的 群组编码
  • title 消息标题
  • content 具体消息内容,根据不同template支持不同格式
  • url http://www.pushplus.plus/send
楼下网友留言说脚本无法使用,后来经过查看发现是注册地址的问题
需要注意你的注册的官网地址 hxtrip 还是 pushplus
不过我还是推荐使用 pushplus 因为 pushplus 在国内是备案了的。

将脚本部署在alertscripts目录下,如果你不知道在那,你可以回想一下你钉钉告警,或者是企业微信告警的脚本放在那。如果实在记不起来,那就find找下alertscripts目录吧

zabbix web端设置

创建报警媒介类型

登录zabbix web端点击管理报警媒介类型创建媒体类型
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
名称:随意写
类型:选择脚本
脚本名称:按照实际名称填写
脚本参数:

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

创建动作

点击配置动作创建动作
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
动作
名称:随意写
条件:根据自己的告警需求填写
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
操作
默认操作步骤持续时间:1h
默认标题:你也可以随意写。也可以用下面的。

1
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障! 故障通知!!

消息内容:和标题一样

1
2
3
4
5
6
7
8
9
告警主机:{HOSTNAME1}<br>
IP地址:{HOST.CONN} <br>
告警时间:{EVENT.DATE} {EVENT.TIME}(UTC)<br>
告警等级:{TRIGGER.SEVERITY}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}<br>

cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
操作步骤–点击新的
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
选择发送到用户,点击添加admin选择
仅送到,选择你刚创建的,最后点击添加
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
最为为这样
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
恢复操作
恢复操作和操作一样
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
添加完后
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

创建用户报警媒介

选择管理用户admin
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

测试告警

添加完过后,接下来就测试吧。
我这边选择了一个触发器调了下告警的值,最后展示下告警以及恢复。
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210518420293/
相关话题:https://www.cnsre.cn/tags/zabbix/


🔲 ☆

ubuntu zabbix无法启动


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210513036112/
相关话题:https://www.cnsre.cn/tags/zabbix/


故障现象

ubuntu 16 升级18 之后 安装了zabbix agent 今天突然agent掉了 上去的时候发现
报错:

Got singnal [singnal:15(SIGTERM),sender_pid:31392,sender_uid:0,reason:0]. Exiting ...a

cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
后来打算-c 启动然后发现 /usr/sbin/zabbix_agentd 丢了
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

解决方法

我尝试着去检查selinux,防火墙,安全组,以及zabbix-agent配置文件等等都没有发现异常的地方,在同一批部署的agent中其他的agent 也暂时没有出现这种情况。
问了很多朋友,因为没有找到原因,日志中给到的信息也不是很多,最后选择了重装zabbix_agent.
最后一次重装,我做选择了手动修改zabbix的配置文件,验证问题,还有待观察。如果各位大佬有知道原因,能够留言或者私信的话我想我会十分感谢。
下面放一个zabbix官方wiki 网名为SwitchZabbix的网友遇到同样问题的分享。
https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/369895-zabbix-is-not-running-on-frontend


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210513036112/
相关话题:https://www.cnsre.cn/tags/zabbix/


❌