linux上配置zabbix并设置企业微信,机器人以及自主告警

linux上配置zabbix并设置企业微信,机器人以及自主告警

配置lamp

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


(1)配置准备:
Linux服务端一台
IP地址:192.168.12.4

Linux客户端一台
IP地址:192.168.12.55

(2)配置服务器端:
1.构建lamp架构:
yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash

vi /etc/httpd/conf/httpd.conf //编辑apache配置文件
DirectoryIndex index.html index.php //添加index.php

mysql_secure_installation //初始化数据库配置

mysql -u root –p //root用户登录数据库进行配置

CREATE DATABASE zabbix character set utf8 collate utf8_bin; //创建zabbix数据库

GRANT all privileges ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix'; //

给zabbix用户授权管理zabbix数据库

flush privileges; //刷新权限


安装zabbix

Yum install php-mbstring*  php-bcmath* -y
(如果装不上或者报错可以去下面这个地址去找对应版本:
http://buildlogs.cdn.centos.org/c7.01.u/php/20150623210225/5.4.16-36.el7_1.x86_64/)



rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm//网上下载最新版本的zabbix源(自动生成Yum源)

yum install zabbix-server-mysql zabbix-web-mysql –y

zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p zabbix //生成数据库文件 


 vi /etc/zabbix/zabbix_server.conf

	DBHost=localhost
	DBName=zabbix
	DBUser=zabbix
	DBPassword=zabbix
	

修改配置文件/etc/httpd/conf.d/zabbix.conf,时区改成 Asia/Shanghai:

php_value max_execution_time 300 
php_value memory_limit 128M 
php_value post_max_size 16M 
php_value upload_max_filesize 2M 
php_value max_input_time 300 
php_value always_populate_raw_post_data -1 
php_value date.timezone Asia/Shanghai

systemctl enable zabbix-server //设置zabbix开机启动
[root@server ~]# systemctl start zabbix-server //启动zabbix服务


systemctl restart httpd //重启apache服务
访问http://192.168.12.4/zabbix/

去到php.ini下设置timezome
设置zabbix-agent
1.下载zabbix-agent:
wget http://repo.zabbix.com/zabbix/4.0/rhel/5/x86_64/zabbix-agent-4.0.0-2.el5.x86_64.rpm
然后解压如图:



配置监控参数:	
LogFileSize=0
ListenPort=10050  #启动监听端口
ListenIP=0.0.0.0 #监听所有IP
Server=192.168.12.4 #被动模式下必填,将zabbix-server端的ip填入
#ServerActive=192.168.12.4 #主动模式下填写


启动监控服务并查看

最后启动服务:service zabbix-agent restart

在这里插入图片描述

设置主机,添加主机群组以及agent接口

在这里插入图片描述

设置添加现有模板

在这里插入图片描述

Zabbix-agent标识会被点亮

设置企业微信监控

企业微信api申请详情看以下地址:
http://blog.51cto.com/wuhf2015/1688614

设置步骤:
下图为调出api发送企业微信调出脚本的位置以及设置:

Vi /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts/

脚本内容为:
#!/bin/bash
#set -x
CorpID="ww379d02732f0fadd"                  
Secret="Q9mMPU1RJCwcva-x_NvBaBpdsN45lkJmaW6AlurLKm"           
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
Token=$(/usr/bin/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}')
#echo $Token
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"

function body(){
        local int agentid=1000002   应用的id号
        local UserID=$1                 
        local PartyID=2            应用位置
        local Msg=$(echo "$@" | cut -d" " -f3-)
        printf '{\n'
        printf '\t"touser": "'"$UserID"\"",\n"
        printf '\t"toparty": "'"$PartyID"\"",\n"
        printf '\t"msgtype": "text",\n'
        printf '\t"agentid": "'"$agentid"\"",\n"
        printf '\t"text": {\n'
        printf '\t\t"content": "'"$Msg"\""\n"
        printf '\t},\n'
        printf '\t"safe":"0"\n'
        printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

设置zabbix企业微信报警步骤

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

设置操作:

在这里插入图片描述

在这里插入图片描述

设置恢复操作:

在这里插入图片描述

设置机器人告警

和微信告警一样,微信机器人告警也是通过传入url数据来获取信息,如下是脚本设置在
/usr/lib/zabbix/alertscripts/zabbix.py:

#!/usr/bin/python
#-*- coding: utf-8 -*-
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=790a8c81-e134-44cc-a139-f0d2045f2f1a
#api_url是通过webhook协议设置的机器人的api接口
def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": test
        },
    }
    print(requests.post(api_url,json.dumps(json_text)).content)

if __name__ == '__main__':
    test = sys.argv[1]
msg(test)

因为脚本里只要求输入一个参数,所以改下zabbix里传入的参数设置:

在这里插入图片描述

其它和设置企业微信告警一样不用变。

设置自主脚本监控

在zabbix_agentd.conf修改:

UnsafeUserParameters=1(这个设置原本是0,并去掉#)

接着添加脚本地址到设置中:

UserParameter=degree,/bin/bash /etc/zabbix/scripts/degree.sh

(前面的degree是标识号,也是zabbix里监控项的键值,后面是路径)

如下是监控脚本内容:

#!/bin/bash
i=`ipmitool sensor get "01-Inlet Ambient" |grep "Sensor Reading" |awk -F [":("] '{print $2}'`
echo $i

随后修改zabbix设置:

在这里插入图片描述

在这里插入图片描述

设置监控项和触发器完成之后就可以试验了 如果要使用ipmitool,需要给/dev/ipmi0添加rw的权限,不然zabbix无法调用

设置微信告警自主汇报固定信息:

修改脚本使脚本不接收参数,自主输入参数请求url即可,路径在/usr/lib/zabbix/alertscripts/zabbix.sh:

#!/bin/bash
a_1=`sh /etc/zabbix/scripts/degree.sh`
a="IP:10.2.2.107\nTemperature:$a_1"

CorpID="ww07bb4b5dba065e5"
Secret="JFJT0DOscBakUVH4lExdOHAC8XHbjNRZyXXRfQB5Pc"
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
Token=$(/usr/bin/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}')
#echo $Token
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"

function body(){
        local int agentid=1000003
        local UserID=$1

 1. List item

        local PartyID=21
        local Msg=$(echo "$@" | cut -d" " -f3-)
        printf '{\n'
        printf '\t"touser": "'"$UserID"\"",\n"
        printf '\t"toparty": "'"$PartyID"\"",\n"
        printf '\t"msgtype": "text",\n'
        printf '\t"agentid": "'"$agentid"\"",\n"
        printf '\t"text": {\n'
        printf '\t\t"content": "'"$Msg"\""\n"
        printf '\t},\n'
        printf '\t"safe":"0"\n'
        printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $a)" $PURL
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值