安装zabbix监控实现钉钉推送告警

Zabbix介绍

Zabbix 是一个企业级分布式开源监控解决方案。

Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。

安装前置

安装相关依赖程序

yum install -y php-mysql dejavu-sans-fonts php-bcmath php-gd php-ldap php-xml php php-mbstring libmysqlclient.so.18 

卸载mariadb

rpm -e --nodeps mariadb-libs


rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

yum-config-manager --enable rhel-7-server-optional-rpms

http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-server-mysql-4.0.1-1.el7.x86_64.rpm
yum install zabbix-server-mysql -y

http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-proxy-mysql-4.0.0-2.el7.x86_64.rpm
yum install zabbix-proxy-mysql -y

rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-4.0.1-1.el7.noarch.rpm
yum install zabbix-web-mysql -y
注:以上3个安装包安装过程中可能会中断,需要重复多次yum install

安装zabbix server

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.9-1.el7.x86_64.rpm

创建数据库

use mysql;
create database zabbix character set utf8;
grant all privileges on zabbix.* to zabbix@'192.168.%.%' identified by '123456';
flush privileges;

--初始化Zabbix server,导入zabbix库
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 -h192.168.1.156 -P3307 zabbix

--创建zabbix_proxy库
create database zabbix_proxy character set utf8;
grant all privileges on zabbix_proxy.* to zabbix@'192.168.%.%';
flush privileges;
--初始化Zabbix proxy,导入zabbix_proxy库(Zabbix server和Zabbix proxy如果安装在相同的主机,必须创建不同名字的数据库)
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p123456 -h192.168.1.156 -P3307 zabbix_proxy

编辑 zabbix_server.conf 或 zabbix_proxy.conf 文件以使用已创建的数据库
vi /etc/zabbix/zabbix_server.conf
DBHost=192.168.1.156
DBPort=3307
DBName=zabbix
DBUser=zabbix
DBPassword=123456

vi /etc/zabbix/zabbix_proxy.conf
DBHost=192.168.1.156
DBPort=3307
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456

vi /etc/zabbix/web/zabbix.conf.php
$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = '192.168.1.156';
$DB['PORT']     = '3307';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = '123456';

vim /etc/sysctl.conf    添加一行
kernel.sem = 500  64000  64  256

service zabbix-server start

--设置自启动
systemctl enable zabbix-server

vi /etc/httpd/conf.d/zabbix.conf
取消注释# php_value date.timezone Europe/Riga  改为
php_value date.timezone Asia/Shanghai

chown -R apache:apache /etc/zabbix/web
chown -R apache:apache /var/lib/php

查看相关日志
less /var/log/zabbix/zabbix_server.log
less /var/log/zabbix/zabbix_proxy.log

登陆和配置用户
http://192.168.1.155/zabbix
用户名、密码
Admin / zabbix

安装zabbix agent

修改配置文件

vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.155						//zabbix server的IP
ServerActive=192.168.1.155					//zabbix server的IP
Hostname=192.168.1.156						//本机IP

启动agent

service zabbix-agent start

钉钉推送告警配置

钉钉机器人api文档链接

Python代码

#!/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://oapi.dingtalk.com/robot/send?access_token=284111d3e6ebf679d5c01435bd2273281d17eb9eec622647de3165164347fa54"

def msg(text):
    json_text= {
     "msgtype": "text",
        "at": {
            "atMobiles": [
                "132xxxxxxxx"
            ],
            "isAtAll": False
        },
        "text": {
            "content": text
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

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

其他异常处理

相关报错

报错1
less /var/log/zabbix/zabbix_proxy.log 发现有如下报错
zabbix_proxy [54195]: cannot open log:cannot create semaphore set: [28] No space left on device
解决办法
killall -TERM zabbix_server
killall -TERM zabbix_agentd

报错2
访问http://192.168.1.155/zabbix/
error 500
检查/etc/zabbix/web权限
chown -R apache:apache /etc/zabbix/web

其他常见错误解决思路

如果发现监控没有数据,请排查如下问题

  1. zabbix 客户端是否重启
  2. 脚本是否有执行权限
  3. 数据库是否有权限
  4. 环境变量是否有问题
  5. 请看 zabbix item 列,鼠标移至红色叉上,有错误提示。

配置mysql监控

vi /etc/zabbix/zabbix_agentd.d/.my.cnf
#############################
#zabbix agent
[mysql]
host=localhost
user=zabbix
password=123456
socket=/tmp/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=123456
socket=/tmp/mysql.sock
#############################

vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf   更改2处
HOME=/etc/zabbix/zabbix_agentd.d

GRANT USAGE,PROCESS,SUPER,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'zabbixagent'@'localhost' IDENTIFIED BY 'zabbixagent';


zabbix server端测试是否有数据
zabbix_get -s 192.168.1.156 -k mysql.status[Questions]
测试mysql是否正常 0-mysql is down,1-mysql is up
zabbix_get -s 192.168.1.157 -k mysql.ping

修改中文字体

--涉及的文件
/usr/share/zabbix/include/defines.inc.php
/usr/share/zabbix/assets/fonts
/etc/alternatives/zabbix-web-font

cd /usr/share/zabbix/assets/fonts
ln -snf SIMHEI.TTF graphfont.ttf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值