设为首页 收藏本站
查看: 1251|回复: 0

[经验分享] zabbix配置与告警

[复制链接]

尚未签到

发表于 2019-1-17 14:09:27 | 显示全部楼层 |阅读模式
  Zabbix  安装配置
一、 监控系统简单介绍...................................................................................................................2
二、 Zabbix 简介...............................................................................................................................2
2.1、Zabbix 介绍........................................................................................................................2
2.2、Zabbix 特性........................................................................................................................2
2.3、Zabbix 程序构成................................................................................................................2
三、 Zabbix 程序及环境部署(监控端).......................................................................................4
3.1、基本信息............................................................................................................................4
3.2、安装 Mysql.........................................................................................................................4
3.3、安装 PHP............................................................................................................................5
3.4、安装 Curl............................................................................................................................6
3.5、安装 Zabbix-server.............................................................................................................7
四、 Zabbix 程序部署(客户端).................................................................................................10
4.1、Linux 端部署....................................................................................................................10
4.2、Windows 端部署............................................................................................................. 11
五、 Zabbix 添加监控.....................................................................................................................13
5.1、添加监控主机..................................................................................................................13
5.2、添加 Nginx 状态监控...................................................................................................... 14
5.2.1、添加 Nginx status..................................................................................................14
5.2.2、Zabbix 客户端配置...............................................................................................15
5.2.3、Zabbix_get获取数据............................................................................................16
5.2.4、Zabbix web 配置...................................................................................................16
5.3、添加自定义服务监控......................................................................................................18
5.4、添加指定端口监控..........................................................................................................19
5.5、添加 Mysql 监控..............................................................................................................20
六、 Zabbix 告警.............................................................................................................................23
6.1 、邮箱告警........................................................................................................................23
6.1.1、添加邮箱告警媒介.............................................................................................. 23
6.1.2、用户配置...............................................................................................................24
6.1.3、配置触发动作.......................................................................................................25
6.1.4、安装邮箱服务.......................................................................................................28
6.1.5、告警测试...............................................................................................................28
6.2、微信告警..........................................................................................................................29
6.2.1、微信企业号注册与使用...................................................................................... 29
6.2.2、企业号使用教程...................................................................................................29
6.2.3、创建应用...............................................................................................................30
6.2.4、部门设置管理员...................................................................................................31
6.2.5、微信脚本调用.......................................................................................................32
6.2.6、测试脚本发送消息至企业号..............................................................................32
6.2.7、Zabbix-web 前端设置...........................................................................................35
6.2.8、测试微信报警.......................................................................................................37
  一、  监控系统简单介绍
(1)cacti:存储数据能力强,报警性能差
(2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数
据长度,储存在内存中。比如,连续采样数据存储,有连续三次不在合理范围内的数据就报

(3)zabbix:结合上面两种工具的优点,又可以存储数据,又可以报警
、 二、 Zabbix  简介
2.1、 、Zabbix  介绍
zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源
解决方案。
zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让
系统管理员快速定位/解决存在的各种问题。
zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。
2.2、 、Zabbix  特性
(1)数据采样:通过 snmp、ssh、telnet、agent、ipmi、jmx 等通道采集被监控主机的数据。
可以自定义检测机制和自定义时间间隔
(2)实时绘图:展示,读取数据绘图,支持 graph,map,screen,幻灯片
(3)告警:升级告警,规定时间内内解决不了的事情往上传
(4)数据存储:数据库有 mysql,pgsql,时间序列数据库等等
2.3、 、Zabbix  程序构成
(1)zabbix_server:服务端守护进程
(2)zabbix_agented:agent 端守护进程
(3)zabbix_proxy:代理服务器(可选,分布式才用到)
(4)zabbix_get:命令行工具,手动测试数据采集
(5)zabbix_sender:命令行工具,运行于 agent 端,手动向 server 端发送数据
(6)zabbixjavagateway:java 网关

  三、Zabbix  程序及环境部署(监控端)
3.1 、基本信息
本次安装 Zabbix 相关版本及依赖信息如下:

3.2 、安装  Mysql
Mysql 使用 5.6 版本,CentOS 默认为 5.1,需要添加新版本 Mysql YUM 源
安装:
rpm -ivhhttp://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum install mysql-server -y
配置:
vim /etc/my.cnf
[mysqld]
innodb_file_per_table
启动:
service mysqld start
置 设置 ROOT  密码:
mysql_secure_installation
Enter current password for root (enter fornone):
Set root password? [Y/n]
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access toit? [Y/n]
Reload privilege tables now? [Y/n]
建 创建 Zabbix  数据库:
mysql -uroot -p
CREATE DATABASE zabbix CHARACTER SET utf8 ;
GRANT ALL PRIVILEGES ON zabbix.* TOzabbix@localhost IDENTIFIED BY 'zabbix';
FLUSH PPRIVILEGES;
3.3 、安装  PHP
Zabbix 3.0 对 PHP 的要求最低为 5.4,而 CentOS6 默认为 5.3.3,完全不满足要求,
故需要利用第三方源将 PHP 升级到 5.4 以上
级 升级 PHP 为 为 5.6  版本:
安装软件源:
rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm
安装 PHP5.6:
yum install httpd php56w php56w-mysql php56w-gd php56w-imap php56w-ldap
php56w-odbc php56w-pear php56w-xml php56w-xmlrpc php56w-mcrypt php56w-mbstring
php56w-devel php56w-pecl-memcached php56w-common php56w-pdo php56w-cli
php56w-pecl-memcache php56w-bcmath php56w-fpm -y
这边安装会出现报错,因为库文件 libmcrypt.so.4 不存在

解决:
下载:wget http://mirrors.hust.edu.cn/epel//5/x86_64/epel-release-5-4.noarch.rpm
安装源:rpm -ivhhttp://mirrors.hust.edu.cn/epel//5/x86_64/epel-release-5-4.noarch.rpm
安装库文件:yum install libmcrypt-devel -y

完成后再次执行上面命令安装 PHP5.6 即可顺利安装。
修改时区:
vim /etc/httpd/conf.d/zabbix.conf

3.4 、安装  Curl
下载:
wget http://download.wangx.me:8080/zabbix/curl-rpm.tar
解压:
tar xvf curl-rpm.tar
cd curl-rpm/RPMS
yuminstall curl-7.29.0-25.el6.x86_64.rpm libcurl-7.29.0-25.el6.x86_64.rpm
libcurl-devel-7.29.0-25.el6.x86_64.rpm
完成后查看 curl 版本:

3.5 、安装  Zabbix-server
安装:
yum localinstall zabbix-server-mysql-3.0.0-1.el6.x86_64.rpm
yum install zabbix-web-mysql-3.0.0-1.el6.noarch.rpm zabbix-web-3.0.0-1.el6.noarch.rpm
初始化数据库:
cd /usr/share/zabbix-server-mysql-3.0.0
gzip -d create.sql.gz
mysql -u root -p zabbix < create.sql
配置数据库连接信息:
vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
动 启动 Zabbix-server: :
/etc/init.d/zabbix-server restart
查看端口监听情况:
Zabbix 服务端默认监听端口为 10051 端口,agent 端默认监听端口为 10050 端口。
netstat -tunlp

使用 web 访问:http://IP/zabbix


改 修改 web  界面为中文:
  vim /usr/share/zabbix/include/locales.inc.php


四、Zabbix  程序部署(客户端)
4.1 、x Linux  端部署
安装对应安装包:
yuminstall zabbix-agent-3.0.0-1.el6.x86_64.rpm zabbix-sender-3.0.0-1.el6.x86_64.rpm
zabbix-get-3.0.0-1.el6.x86_64.rpm
配置主机:
vim /etc/zabbix/zabbix_agent.conf
Server=10.10.1.12
ServerActive=10.10.1.12
Hostname=agent.com
启动服务:
service zabbix-agent start
chkconfig zabbix-agent on

4.2 、s Windows  端部署
下载:
Windows 版本的 agent 端软件:
http://www.zabbix.com/downloads/3.2.0/zabbix_agents_3.2.0.win.zip
配置:
在 C:\Program Files (x86)\下创建 zabbix_agentd 目录,将压缩包中 bin/win64 中的所有文
件解压至 bin 目录下,conf 解压到此目录,并重命名 conf/zabbix_agentd.win.conf 为
zabbix_agentd.conf
修改配置文件 zabbix_agentd.conf 以下两项:
LogFile=C:\ProgramFiles (x86)\zabbix_agentd\zabbix_agentd.log
Server=10.10.1.12 #zabbix 服务端 IP
Hostname=10.10.1.22 #本机主机名
装 安装 zabbix_agent  服务:

参数说明
-c:指定配置文件位置
-i:安装 agent
-s:启动 agent
-x:停止 agent
-d:卸载 agent1
此时,会在服务最下面多一个

右键启动服务即可。
最后,在 web 上添加主机,填写该 windows主机 IP 地址即可(注意关闭 windows 防火墙或添加 10050 端口允许)
  五、Zabbix  添加监控
5.1 、添加监控主机
1、依次点击 组态--主机--创建主机

2、填写主机名称、群组及主机 IP 地址

3、点击模板,添加主机监控模板,zabbix 自带了很多模板

4、添加完模板后,点击更新,主机即添加到监控列表中

5.2 、添加 x Nginx  状态监控
5.2.1 、添加 Nginx status
vim /usr/local/nginx/conf/nginx.conf
server {
listen 801; ##这里为避免与 http 检测冲突,修改 nginx 端口为 801
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
stub_status on; ##打开 nginx 状态检测模块
root html;
index index.html index.htm;
}
编辑完成后,重启 nginx 服务,使用网页浏览 http://ip:801/nginx_status,显示如下图则模块已打开

5.2.2 、Zabbix  客户端配置
在客户端编写脚本:nginx_status.sh,并将其放至/etc/zabbix/scripts 目录下,给予执行
权限
脚本内容如下:
#!/bin/bash
HOST=10.10.1.13
PORT=801
function active {
curl -s &quot;http://$HOST:$PORT/nginx_status&quot; | grep 'Active'| awk '{print $NF}'
}
function reading {
curl -s &quot;http://$HOST:$PORT/nginx_status&quot; | grep 'Reading' |awk '{print $2}'
}
function writing {
curl -s &quot;http://$HOST:$PORT/nginx_status&quot; | grep 'Writing' | awk '{print $4}'
}
function waiting {
curl -s &quot;http://$HOST:$PORT/nginx_status&quot; | grep 'Waiting' | awk '{print $6}'
}
function accepts {
curl -s &quot;http://$HOST:$PORT/nginx_status&quot; | awk NR==3 | awk '{print $1}'
}
function handled {
curl -s &quot;http://$HOST:$PORT/nginx_status&quot; | awk NR==3 | awk '{print $2}'
}
function requests {
curl -s &quot;http://$HOST:$PORT/nginx_status&quot; | awk NR==3 | awk '{print $3}'
}
$1
接下来,将自定义的 UserParameter 加入配置文件,然后重启 agent,如下:
[root@agent scripts]# cat /etc/zabbix/zabbix_agentd.conf | grep nginx
UserParameter=nginx.status
  • ,/etc/zabbix/scripts/nginx_status.sh $1
    5.2.3 、Zabbix_get  获取数据
    此步骤可以跳过,但最好使用监控端进行测试,因为通过此命令可以检查配置是否
    正确
    zabbix -s10.10.1.13 -k ‘nginx.status[accepts]’
    2032
    5.2.4 、Zabbix web  配置
    入 导入 Template App Nginx  模板:
    下载链接: http://download.wangx.me:8080/zabbix/Template_nginx.zip
    在 web 端,点击 组态--模板--汇入

      选择解压出来的文件,点击汇入,即可导入 nginx 检测模板,然后将模板加入需要检测的主机即可。

      5.3 、添加自定义服务监控
    Simple checks
    Simple checks 通常用来检查远程未安装代理或者客户端的服务
    使用 simple checks,被监控客户端无需安装 zabbix agent 客户端,zabbixserver 直接
    使用 simplechecks 来收据数据,一基本上都是用来检测远程服务器某端口是否在监听。
    如下为 simple checks:
    net.tcp.service[ftp,,155]
    net.tcp.service[http]
    创建监控项:
    点击 组态--主机--项目--创建监控项

    创建完成后点更新完成。
    创建触发器:
    点击 组态--主机--触发器--创建触发器

      完成后点更新,即创建完成。
    测试:
    关闭 agent 主机的 vsftpd 服务

    5.4 、添加指定端口监控
    具体操作类似添加服务监控,在创建监控项时,类型选择 zabbix 代理,键值选择:
    net.tcp.port[,port],填写相应的 IP 地址和端口即可。
    5.5 、添加 l Mysql  监控
    Agent  端配置:
    在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 文件中指定了 zabbix agent
    如何获取 mysql 服务的各种登录信息,并在/var/lib/zabbix/目录中新建”.my.cnf”文件,用
    以指定 zabbix agent 如何登陆数据库,默认使用的是 zabbix 用户,可以在 zabbix_conf
    文件中找到密码。
    #mkdir /var/lib/zabbix
    #vim /var/lib/zabbix/.my.cnf
    [mysql]
    host=localhost
    user=zabbix
    password=zabbix
    socket=/var/lib/mysql/mysql.sock
    [mysqladmin]
    host=localhost
    user=zabbix
    password=zabbix
    socket=/var/lib/mysql/mysql.sock
    #service zabbix-agent restart
    在数据库中进行授权:
    Mysql> GRANT USAGE ON . TO zabbix@localhost IDENTIFIED BY ‘zabbix’;
    Mysql>FLUSH PRIVILEGES;
    在 zabbix_server 端测试是否可以得到检测数据:
    zabbix_get -s 10.10.1.13 -p 10050 -k mysql.ping
    1
    如显示 1,则代表可以通过zabbix_agent 获取到数据。
    Web  端配置:
    依次点击 组态--主机--(要监控 mysql 的主机)--模板--选择--Template App Mysql--添加
    --更新。
    完成后,点击监测中图形,选择主机和 Mysql bandwidth,等待检测。

    注意:
    Mysql 监控没问题,但 agent 端关闭 mysql 后,不会发出告警。
    查看 zabbix-agent 启动方式,知道/etc/zabbix/zabbix_agentd.conf 是配置文件,去查看里面的 mysql.ping 的参数设置:
    vim /etc/zabbix/zabbix_agentd.conf
      UserParameter=mysql.ping,mysqladmin -P3306 -h127.0.0.1 ping | grep -c alive
    使用 mysqladmin组件的一连串命令并且检索 alive 来获取结果集的,获取到就返回 1 表
    示 mysql 服务是开启的获取不到就返回 0 表示 mysql 服务关闭了,但是实际上呢?能返回 1
    但是返回不了 0,因为 mysqladmin 命令会先报错信息出来,这样zabbix-server 调用的时候
    返回的不是纯粹数字,而是字符串+数字,zabbix-server 的触发器里面识别不了,mysqladmin
    命令信息如下:
    mysqladmin -P3306 -h127.0.0.1 ping | grep -c alive
      mysqladmin: connect to server at'127.0.0.1'failed
    error: 'Can't connect to MySQL server on'127.0.0.1' (111)'
    Check that mysqld is running on 127.0.0.1and that the port is 3306.
    You can check this by doing 'telnet127.0.0.1 3306'
    0
    再 看 zabbix 自 带 的 mysql 模 版 的 mysql is down 的 触 发 条 件 是 :
    {agent.com:mysql.ping.last(0)}=0,当调用 mysql.ping 的最后一个值是 0 的时候,触发报警。

      解决:
    修改 agent 的配置文件 vim /etc/zabbix/zabbix_agentd.conf:
    UserParameter=mysql.ping,netstat -ntpl|grep 3306 |grep mysql |wc |awk '{print $1}'
    修改完,重启 agentd 服务
    执行 chmod +s/bin/netstat 防止 zabbix-server 远程调用失效。
    在 zabbix-server 端 check,能获取纯粹的数字 0,证明此方法 OK 有效。
    #zabbix_get -s10.10.1.12 -p10050 -k mysql.ping
    0
      六、 Zabbix  告警
    1 6.1  、邮箱告警
    6.1.1 、添加邮箱告警媒介
    1、点击 管理--示警媒介类型--Email

    2、按如下图进行配置,我这边使用 QQ 邮箱进行测试

    3、完成后,点更新按钮完成配置
    6.1.2 、用户配置
    1、点击管理--用户--Admin

    2、点击示警媒介--编辑

    3、填写收件人 QQ 邮箱

    4、点击更新完成配置
    6.1.3 、配置触发动作
    1、点击组态--动作--创建动作

    2、名称处填写“邮箱”,勾选恢复告警,即告警取消后通知用户

      3、点击 条件,可选择告警的触发条件

    4、点击操作---新的

    5、选择告警送至的用户或组,告警方式选择 Email

    6、配置完成后,点击更新保存配置

    6.1.4 、安装邮箱服务
    yuminstall mail sendmail -y
    日志路径:/var/log/maillog
    6.1.5 、告警测试
    1、目前仪表盘各项参数均正常

    2、关闭 agent端的 HTTP 服务,等待监控

    3、收到告警邮件

    6.2 、微信告警
    6.2.1 、微信企业号注册与使用
    企业号注册:https://qy.weixin.qq.com/
    6.2.2 、企业号使用教程
    A、登录新建的企业号,通过提前把企业成员信息添加到组织或者部门,需要填写手机号、
    微信号或邮箱,通过这样方式让别人扫码关注企业公众号,为了后面企业号推送消息给企业
    成员。
    B、新建管理组,并加入需要通知的微信用户

    6.2.3 、创建应用
    点击应用中心--新建应用

    ** 记录此处应用 ID 为 为 1
    6.2.4 、部门设置管理员
    1、点击设置--权限管理--普通管理组--新建

    2、设置应用权限和通讯录权限

    3、记录 CorpID 与 Secert

    至此,公众号配置完毕。
    6.2.5 、微信脚本调用
    1、下载微信脚本
    wget http://download.wangx.me:8080/zabbix/weixin.py
    2、编辑脚本,修改为自己的信息
    def senddata(access_token,user,subject,content):
    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' +
    access_token
    send_values = {
    &quot;touser&quot;:&quot;wangxiao&quot;, #企业号中的用户帐号,在 zabbix 用户 Media 中配置,如果配
    置不正常,将按部门发送。
    &quot;toparty&quot;:&quot;2&quot;, #企业号中的部门 id。
    &quot;msgtype&quot;:&quot;text&quot;, #消息类型。
    &quot;agentid&quot;:&quot;1&quot;, #企业号中的应用 id。
    corpid = 'wxff7d678b35937141' #CorpID 是企业号的标识
    corpsecret = 'KXmlfVf8sLS3wTQ9fVXO48f8d_iJ9n7WSAX6Uwqoyv52aS8InX64zVi6zk5Fdo95'
    #corpsecretSecret 是管理组凭证密钥
    3、修改完成后,将其放至/usr/lib/zabbix/alertscripts,并修改相关权限
    Chown zabbix.zabbix weixin.py
    Chmod +xweixin.py
    6.2.6 、测试脚本发送消息至企业号
    1、安装 simplejson
    2、wget http://download.wangx.me:8080/zabbix/simplejson-3.8.2.tar.gz
    3、tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2
    4、python setup.py build
    5、python setup.py install
    测试:
    [root@zabbixalertscripts]# ./wechat.py test-msg test hello
    https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx11ac451376ae0e98&corpsecret=M3FM
    hnFh8nTI6SxLAEbbLLZaj-1BpZIyqkJRskeMMUXObGx4mfQsAg7Jw-nUMXe9
    {u'invaliduser': u'all user invalid', u'errcode': 0, u'errmsg': u'ok'}

    6.2.7 、Zabbix-web  前端设置
    1、通过管理--示警媒介类型--创建媒体类型

    2、点击用户--Admin--示警媒介--添加 微信报警

    注意:此处收件人填写应用 ID:1
      3、点击组态--动作--创建动作,名称为:微信报警,触发条件如下,操作添加 Admin 用户,并设置送达方式为微信告警



    完成后如下图:

    6.2.8 、测试微信报警
    1、停止 HTTP 服务,等待告警
    2、邮箱与微信均顺利收到告警,相关截图如下:
    3、查看监控界面已经检测到,并相关示警媒介正在告知中:

      4、邮箱和微信均接受到告警,详情见下图:
    邮箱:

      微信:





  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-664491-1-1.html 上篇帖子: ZABBIX(六) Zabbix 配置介绍 下篇帖子: 源码安装ZABBIX服务
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表