官方中文文档
Zabbix 用户手册
目录
- 解决centos7安装后没网络
- 安装MySQL
- 安装zabbix
- p3 常用的监控命令
- 自定义监控项
- 自定义触发器
- 邮件报警
- 修改邮件内容
- Vx报警
- 二次开发
自定义菜单
修改页脚
更换logo - 监控网络流量
- 监控磁盘
- 监控CPU温度
解决centos7安装后没网络
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33(不一定是33)
把ONBOOT=no,改成yes
systemctl restart network
安装MySQL
wget https://mirror.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar --no-check-certificate
rpm -qa | grep mysql
删除mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb
创建解压目录并解压
mkdir mysql
tar xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar -C ./mysql
依次解压
rpm -ivh community-common
rpm -ivh community-libs
rpm -ivh community-client
rpm -ivh communityrp-server
(另安装解压mysql-community-libs-compat-5.7.37-1.el7.x86_64,防止bug)
wget https://mirror.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm --no-check-certificate
rpm -ivh mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm
启动MySQL
systemctl start mysqld
查看自动生成的密码
cat /var/log/mysqld.log | grep password
修改配置以修改密码
vim /etc/my.cnf 在[mysql]下添加validate_password=off
重启MySQL
systemctl restart mysqld
登录
mysql -uroot -p
xxx
exit
修改密码
登陆mysql后
alter user ‘root’@’localhost’ identified by ‘root’;
安装zabbix
1、 系统环境准备
a.关闭防火墙:
systemctl stop firewalld && systemctl disable firewalld
b.关闭selinux
setenforce 0
vim /etc/selinux/config 将enforcing改为disabled
c.重启
reboot
2、 安装并配置zabbix
a.安装zabbix rpm源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all && yum makecache fast
b.安装zabbix服务器端组件和zabbix server 和agent
yum install zabbix-server-mysql zabbix-agent -y
c.安装zabbix前端组件
yum install centos-release-scl -y
d.编辑配置文件 vi /etc/yum.repos.d/zabbix.repo
将{zabbix-fronted}
下的enable
改为1(启用)
e.安装zabbix前端页面、初始数据库、php及httpd组件
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
3、 安装并配置MySQL
…
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'root';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
导入zabbix数据库,zabbix数据库用户为zabbix,密码为password
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
4、 zabbix配置初始化
a. 修改zabbix server配置文件 vi /etc/zabbix/zabbix_server.conf 里的数据库密码
DBPassword=root
b. 配置时区信息
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
c. 配置字体,避免前台监控图形中文乱码
yum -y install wqy-microhei-fonts
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
d. 启动zabbix服务并设置开机自启
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
访问localhost/zabbix
5、优化配置
//TODO
p3 常用的监控命令
free -m 监控内存使用情况
df -h 监控硬盘
top
htop
uptime
iftop
iostat、
iotop
vmstat
netstat -antp|grep 80
nethogs
pkill -kill -t pts/2 退出用户
自定义监控项
1、 命令行,手动取值
iostat|awk '/sda/{print $2}'
2、 修改zabbix-agent配置文件
Vim /etc/zabbix/zabbix_agentd.conf
Systemctl restart zabbix-agent.service
3、 Zabbix-server测试监控项取值
4、 在web界面添加自定义监控项
自定义触发器
{Zabbix server:system.users.num.last()}>3
{主机名:key的名字.函数名(参数)} 比较。。
邮件报警
1、 定义发件人
2、 收件人
3、 启动动作
修改邮件内容
Vx报警
0、 企业微信端设置
…
1、实现命令行发送微信信息
a.进入目录:cd /usr/lib/zabbix/alertscripts
b.创建weixin.py
和zabbix_alter.sh
两个脚本:
weixin.py:
#!usr/bin/env python2
#-*- coding: utf-8 -*-
import requests
import sys
import os
import json
import logging
logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')
corpid='ww71b86ecf6a371a1a' ####需要修改
appsecret='JXliNS88GZtJyMC-NobFvKAYmEDuW6tgC4t1zX7mdu4' ####需要修改
agentid=1000002 ####需要修改
#获取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']
#发送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n" +sys.argv[3]
params={
"touser": touser,
# "toparty": toparty,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}
req=requests.post(msgsend_url, data=json.dumps(params))
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)
zabbix_alter.sh:
#!/bin/bash
python /usr/lib/zabbix/alertscripts/send_message.py "$1" "$2" "$3"
c.增加执行权限
chmod +x zabbix_alter.sh
chmod +x weixin.py
d.测试运行
./zabbix_alter.sh 'XiaoYi' 'xx' 'yy'
2、zabbix报警设置
a.设置报警媒介,设置发件人
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
测试时出现pemision deny
时:
原因分析:zabbix用户无法操作root用户的文件,因此说权限不够
解决办法:通过命令 rm -fr /tmp/weixin.log
删除weixin.log
后重新运行,或者改变属组
b.设置收件人
c.设置动作
。。。
二次开发
个性化设置参考
https://blog.51cto.com/u_11555417/2327073
https://blog.csdn.net/baidu_29679655/article/details/117413442
自定义菜单
vim /usr/share/zabbix/include/menu.inc.php
],
/**
*自定义菜单
*/
'xiao'=>[
'label' => _('xiao'),
'user_type' => USER_TYPE_SUPER_ADMIN,
'default_page_id' => 0,
'pages' => [
[
'url' => 'xiao/overview.html',
'label' => _('xiao overview')
]
]
]
(xiao均改为小写)
cd /usr/share/zabbix
mkdir xiao
cd xiao
vim overview.html
vim /usr/share/zabbix/js/main.js
修改页脚
修改文件
cd /usr/share/zabbix/include/classes/helpers/
vim CBrandHelper.php
(new CLink('LetusGoToBaidu---->','https://www.baidu.com'))
->addClass(ZBX_STYLE_GREY)
->addClass(ZBX_STYLE_LINK_ALT)
->setAttribute('target','_blank')
->setAttribute('style','text-decoration:none;')
更换logo
在线编辑svg网站:
http://www.zuohaotu.com/svg/
cd /usr/share/zabbix/assets/img
替换logo文件:icon-sprite.svg
首先备份
cp icon-sprite.svg icon-sprite.svg.bak
接着在网站在线修改icon-sprite.svg,注意修改的logo大小位置要与原来的一致
上面的为登陆界面logo
下面的是登陆后的logo
上面的图片的位置x:0,y:864
上面的图片的大小:width:114,height:30
下面的图片的位置x:0,y:903
下面的图片的大小:width:95,height:25
最后保存并替换原文件即可
最后效果如下:
监控网络流量
CPU平均1分钟、5分钟、15分钟负载值不大于CPU个数
创建模板
创建流量流入监控项 :Network incoming
创建流量流出监控项 :Network outcoming
创建graph(图形)
应用模板: 配置之前创建的空模板,把刚才创建的图形赋予给之前创建的空模板
压力测试:
wget http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
添加触发器network incoming > 50k network outcoming > 50k
监控磁盘
新建模板
创建自定义磁盘监控项(Item)
配置触发器
监控CPU温度
https://blog.51cto.com/jonathan/2068915