Zabbix其它一些功能

详细介绍了一些zabbix web中的一些平时会用到的功能。以及zabbix agent自动化部署,通过API自动部署需要参看官方文档

6、Zabbix其它一些功能

6.1web监控

这个监控只是用于监控我们的zabbix服务器能否访问我们监控的web页面,和一些其他的专业的监控软件是比不了的

6.1.1创建web监控

6.2制作幻灯片

6.2.1创建聚合图像

6.2.2制作聚合图像

6.2.3修改聚合图像

6.2.4通过聚合图像制作幻灯片

6.2.5幻灯片查看

每过三十秒进行切换

6.3Zabbix事件通知机制

6.3.1邮件通知

6.3.1.1邮箱开启SMTP

6.3.1.2生成授权码

按照提示使用绑定的手机发送配置邮件客户端1069070069,然后点击我已发送

6.3.1.3在zabbix上设置报警媒介

报警媒介类型是一种给运维工程师发送消息通知的渠道,即当zabbix 的触发器触发一个事件后,怎么才能把这个事件通过某些方式通知给运维工程师呢?那么媒介类型就起到这样的作用,媒介类型创建好之后,需要在每个账户里面添加相应的收件配置,比如邮件类型的媒介类型要给zabbix账户添加邮箱,如果是微信类型的媒介类型那么就要在zabbix账户设置微信号,同样的到来,短信类型的媒介类型那就得给zabbix账户设置手机号用于接收报警消息内容。

6.3.1.4给用户添加报警媒介

6.3.1.5创建动作

6.3.1.6模拟故障

创建一个必然会出现报错信息的触发器

6.3.1.7查看邮件

注意:换版本了

ps:很重要,我一开始的操作系统为centos8,安装的zabbix为4.0之前想创建图像的时候无法创建,邮件配置检查很多遍确认无误,无法发送邮件。然后尝试重新安装zabbix5.0,yum安装如下

编译安装如下

是不是很激动以为成功了?结果点击下一步全绿很开心,再点击下一步直接白了!!(下图为我第二次编译安装zabbix5.0放在根目录下的截图)

然后我尝试用centos7!!直接就进去了,这个邮件直接就能发送了!!!

不过需要注意这里设置报警媒介类型时候需要添加以下报警信息,zabbi4.0中是在动作那里配置告警信息的

6.3.2短信通知

有这个功能,但是我没有用过,之前倒是收到过,但是自己从没有配置过。现在也没有可以用于发送短信的账号这个需要通过阿里大于,云片这些可以发送短信的第三方进行发送。正常用用邮件,微信就可以了,不然用短信一年几万没跑给我发年终奖不好吗?

可以参考一下:https://www.cnblogs.com/ahaii/p/7131880.html(如有侵权请联系我进行删除)

6.3.3微信通知

参考网站:https://blog.csdn.net/GX_1_11_real/article/details/80366621(如有侵权请联系我进行删除)

6.4故障自治愈功能

当zabbix 监控到指定的监控项异常的时候,通过指定的操作使故障自动恢复,通常是重启服务等一些简单的操作,也可以调用脚本执行比较复杂的操作。
设置监控项和触发器,新建动作,在触发条件里面添加操作,在远程主机通过zabbix 客户端执行命令

1.开启zabbix sudo权限
2.配置允许允许特殊字符
3.配置远程命令
4.验证和测试

6.4.1zabbix agent开启远程命令执行

[root@zabbix_agent ~]# vim /etc/zabbix/zabbix_agentd.conf   修改以下两项内容
AllowKey=system.run[*]  #开启远程执行命令(这里是5.0版本,如果是4.0版本EnableRemoteCommands=1)
UnsafeUserParameters=1  #允许远程执行命令的时候使用不安全的参数(特殊字符串)

[root@zabbix_agent ~]# systemctl restart zabbix-agent

6.4.2zabbix用户授权

如果zabbix agent是使用zabbix用户启动的,那么要在zabbix 用户授权使用特权命令,负责有些命令zabbix没有权限执行,会导致定义好的自治愈策略因为权限拒绝为执行失败。

[root@zabbix_agent ~]# cat /etc/sudoers | grep -Ev '^#|^$'
Defaults   !visiblepw           #不强制使用tty
zabbix  ALL=NOPASSWD: ALL       #授权指定用户执行特殊命令不再需要密码,比如sudo等

6.4.3创建动作

以Nginx监控为例,我们通过监控80端口的状态,如果不为1则说明Nginx服务器出现故障,我们通过自愈功能进行重启nginx服务

6.4.3.1创建动作

6.4.3.2执行远程操作

执行命令或者执行脚本

sudo /path/to/command
sudo /path/to/script.sh
sudo /apps/nginx/sbin/nginx

6.4.4验证自治愈功能

将被测试的服务手动停止运行,验证能否自动启动或重启,更多操作可以远程执行脚本。

过了一会服务被启动了,同时收到了邮件

当服务启动后

6.5grafana图形展示

grafana在之后的普罗米修斯中再来具体说,这里就简单介绍如何监控zabbix数据防止有小伙伴需要

6.5.1安装grafana服务

官网地址:https://grafana.com/grafana/download

[root@zabbix_agent ~]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.2.1-1.x86_64.rpm 
[root@zabbix_agent ~]# yum install grafana-enterprise-8.2.1-1.x86_64.rpm 

#开启服务
[root@zabbix_agent src]# systemctl restart grafana-server.service 

#默认使用3000端口
[root@zabbix_agent src]# ss -ntl
State       Recv-Q Send-Q     Local Address:Port                    Peer Address:Port              
LISTEN      0      128                    *:111                                *:*                  
LISTEN      0      128                    *:80                                 *:*                  
LISTEN      0      128                    *:22                                 *:*                  
LISTEN      0      100            127.0.0.1:25                                 *:*                  
LISTEN      0      128                    *:10050                              *:*                  
LISTEN      0      128                 [::]:111                             [::]:*                  
LISTEN      0      128                 [::]:80                              [::]:*                  
LISTEN      0      128                 [::]:22                              [::]:*                  
LISTEN      0      128                 [::]:3000                            [::]:*                  
LISTEN      0      100                [::1]:25                              [::]:*                  
LISTEN      0      128                 [::]:10050                           [::]:*     


6.5.2登录grafana

6.5.3安装装zabbix插件

官方地址:https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app/

[root@zabbix_agent src]# grafana-cli plugins install alexanderzobnin-zabbix-app
√ Downloaded alexanderzobnin-zabbix-app v4.2.4 zip successfully

Please restart Grafana after installing plugins. Refer to Grafana documentation for instructions if necessary.

[root@zabbix_agent src]# systemctl restart grafana-server.service 

6.5.4启动zabbix插件

6.5.5添加Mysql数据源

6.5.6添加zabbix数据源


6.5.7添加Dashboard

官方网站:https://grafana.com/grafana/dashboards/?category=zabbix

6.5.7.1选择模版

6.5.7.2导入模板

我这里没有什么监控项,而且版本相差很多这是17年的模版,所以这就需要自己慢慢找一款合适的模版了

7、Zabbix 自动化运维

7.1Zabbix Agent批量部署

7.1.1源码编译安装

官网下载源码包,通过自定义编译参数、自定义配置文件和监控脚本实现安装

7.1.1.1准备好脚本和安装包

7.1.1.2脚本

[root@zabbix-web-server2 ~]# cat zabbix-agent.sh
#!/bin/bash
#Date:2021-12-24
#Author: Sunxiang
Agent_Vesion=5.0.19
DIR=`pwd`
grep "Ubuntu" /etc/issue &> /dev/null
if [ $? -eq 0 ];then
    apt update
    apt-get ?-y install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree ?openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute ?gcc openssh-server lrzsz tree ?openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute iotop unzip zip make
fi

grep "Kernel" /etc/issue &> /dev/null
if [ $? -eq 0 ];then
    yum install ?vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel zip unzip zlib-devel net-tools lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel bc systemd-devel bash-completion traceroute -y
fi

mv ${DIR}/zabbix-${Agent_Vesion}.tar.gz /usr/local/src/
cd /usr/local/src/
tar xvf zabbix-${Agent_Vesion}.tar.gz
cd zabbix-${Agent_Vesion}/
./configure --prefix=/apps/zabbix_agent --enable-agent && make && make install

groupadd zabbix
useradd -g zabbix zabbix

\cp ${DIR}/zabbix-agent.service /lib/systemd/system/zabbix-agent.service
\cp ${DIR}/zabbix_agentd.conf /apps/zabbix_agent/etc/zabbix_agentd.conf
\cp ${DIR}/zabbix_agentd.conf.d/* /apps/zabbix_agent/etc/zabbix_agentd.conf.d/

HOST_IP=`ifconfig ens33 | grep -w inet | awk '{print $2}'`
sed -i "s/Hostname=/Hostname=${HOST_IP}/g" /apps/zabbix_agent/etc/zabbix_agentd.conf

chown zabbix.zabbix -R /apps/zabbix_agent/

systemctl daemon-reload && systemctl enable zabbix-agent && systemctl restart zabbix-agent

7.1.1.3zabbix-agent配置文件

[root@zabbix-web-server2 ~]# cat zabbix_agentd.conf | grep -Ev '^$|^#'
LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.7
StartAgents=5
ServerActive=10.0.0.7
Hostname=

7.1.1.4服务启动脚本

[root@zabbix-web-server2 ~]# cat zabbix_agentd.conf | grep -Ev '^$|^#'
LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.7
StartAgents=5
ServerActive=10.0.0.7
Hostname=
[root@zabbix-web-server2 ~]# cat zabbix-agent.service 
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=apps/zabbix_agent/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/apps/zabbix_agent/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target

7.1.1.5安装演示

[root@zabbix-web-server2 ~]# ls
anaconda-ks.cfg  zabbix-5.0.19.tar.gz  zabbix-agent.service
reset.sh         zabbix_agentd.conf    zabbix-agent.sh
[root@zabbix-web-server2 ~]# bash -x zabbix-agent.sh

+ systemctl daemon-reload
+ systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
+ systemctl restart zabbix-agent

[root@zabbix-web-server2 ~]# ss -ntl
State       Recv-Q Send-Q     Local Address:Port                    Peer Address:Port              
LISTEN      0      128                    *:10050                              *:*                  
LISTEN      0      128                    *:111                                *:*                  
LISTEN      0      128                    *:22                                 *:*                  
LISTEN      0      100            127.0.0.1:25                                 *:*                  
LISTEN      0      128                 [::]:111                             [::]:*                  
LISTEN      0      128                 [::]:22                              [::]:*                  
LISTEN      0      100                [::1]:25                              [::]:*                  

[root@zabbix-web-server2 ~]# ll /tmp/zabbix_agentd.pid
-rw-rw-r--. 1 zabbix zabbix 5 Dec 24 15:15 /tmp/zabbix_agentd.pid


7.1.2yum/apt安装

这个就自己动手丰衣足食,直接把官网上的命令复制一下就是一个脚本,自己做一个conf文件复制到各个服务器上,这样就省去了修改配置文件。easy~

7.2Zabbix API添加主机

官网地址:https://www.zabbix.com/documentation/5.0/zh/manual/api

通过API,实现完全自动化添加删除agent、关联模板等操作

高端操作,我的小单位没机会用。有兴趣的可以自己研究下