zabbix介绍

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Windows主流平台

zabbix中文手册

https://www.zabbix.com/documentation/3.4/zh/manual

zabbix 基础架构

zabbix-agent - zabbix server - mysql  <<---zabbix web获取数据库数据展示

zabbix 安装 [zabbix3.4.10]

zabbix安装包可以在官方,镜像站获取.

zabbix安装包安装zabbix

#安装zabbix相关依赖
yum -y install httpd mariadb-server php php-mysql #安装zabbix源:
rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
此时/etc/yum.repos.d/ 会多出一个zabbix源.
[root@localhost zabbix]# ll /etc/yum.repos.d/
-rw-r--r-- 1 root root 410 Aug 28 2017 zabbix.repo #这是已经下好的源 #下载zabbix相关包
wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-server-mysql-3.4.10-1.el7.x86_64.rpm
wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-web-3.4.10-1.el7.noarch.rpm
wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-get-3.4.10-1.el7.x86_64.rpm
wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.10-1.el7.x86_64.rpm #安装软件iksemel (不安装可能会报错)
#http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/iksemel-1.4-6.sdl7.x86_64.rpm
yum localinstall -y iksemel-1.4-6.el7.centos.x86_64.rpm #下载完成后直接批量安装,并且会自动解决依赖关系:
yum -y localinstall zabbix-* #推荐安装软件:
yum install -y sysstat htop vmstat nethogs iftop

zabbix数据库创建

systemctl start mariadb.service
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
exit 导入数据[默认就在zabbix中]:
cd /usr/share/doc/zabbix-server-mysql-3.4.10
zcat create.sql.gz | mysql -uroot zabbix 进入数据库检查:
mysql
use zabbix;
show tables; 看到里面有表证明成功

zabbix server配置文件修改:

[root@localhost zabbix-server-mysql-3.4.10]# egrep -v "#|^$" /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

启动zabbix

检查相关服务:
systemctl start httpd zabbix-server zabbix-agent mariadb systemctl is-active httpd zabbix-server zabbix-agent mariadb #出现 active 证明成功,没出现就是失败了
active
active
active
active

web页面初始化

浏览器访问: http://10.0.0.70/zabbix/

默认的用户名: Admin

密码为: zabbix

报错处理:

解决方法:

sed -i -e '/# php_value/s/#//;s/Europe\/Riga/Asia\/Shanghai/' /etc/httpd/conf.d/zabbix.conf
systemctl restart httpd zabbix-server.service
重启后时区问题就会被解决

这里是zabbix数据库的账号密码:

/etc/zabbix/web/zabbix.conf.php

安装完成:

默认登录账号密码 Admin zabbix

zabbix改为中文页面显示

效果:

解决字体乱码

yum install -y wqy-microhei-fonts
\cp -a /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
systemctl restart zabbix-server.service

ZAbbix server is not running:

监控主机

监控自己:

编辑配置文件: egrep -v "#|^$" /etc/zabbix/zabbix_agentd.conf 改为如下:

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1 ## 允许谁向我取值
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf

监控一台linux-server

在被监控的linux系统中安装zabbix安装包:
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.10-1.el7.x86_64.rpm 配置服务器地址:
vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.80 #保存退出 重启zabbix-agent
systemctl restart zabbix-agent.service #注意,这里的 10.0.0.70 这可以写多个server,这是允许谁可以取数据,可以写多个IP,用 , 逗号 隔开

zabbix服务器添加agent:

优化告警信息:

告警信息都是英文,对中国人不友好,所以..改成国人能看懂的吧

使用python脚本告警

脚本内容:

1. 进入zabbix目录 /usr/lib/zabbix/alertscripts  创建 mail.py

2. 将下面代码写入到mail.py中,记得修改邮箱和授权码
#-------------------------------------------------------------
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_user = 'xxx@163.com' ##你的邮箱
mail_pass = 'xxxxx' ##你的邮箱授权码 def send_mail(to_list,subject,content):
me = "zabbix 监控告警平台"+"<"+mail_user+">"
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list
try:
s = smtplib.SMTP("smtp.163.com", 25)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3]) #-------------------------------------------------------------
3. 保存退出,进入zabbix中配置以下脚本参数:
管理 - 报警媒介类型 : 名称: email
类型: 脚本
脚本名称: mail.py
脚本参数: {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
勾选: 已启用

zabbix 操作和恢复操作汉化:

动作-操作 :
默认标题: 告警信息: {TRIGGER.NAME} 消息内容:
告警状态:【{TRIGGER.STATUS}】
告警主机:【{HOST.NAME}】
主机地址:【{HOST.IP}】
告警时间:【{EVENT.DATE} {EVENT.TIME}】
告警等级:【{TRIGGER.SEVERITY}】
告警名称:【{TRIGGER.NAME}】
当前状态:【{ITEM.NAME}:{ITEM.KEY}={ITEM.VALUE}】
事件代码:【{EVENT.ID}】 动作-恢复操作 :
默认标题: 故障恢复: {TRIGGER.NAME} 消息内容
告警状态:【{TRIGGER.STATUS}】
告警主机:【{HOST.NAME}】
主机地址:【{HOST.IP}】
恢复时间:【{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}】
告警等级:【{TRIGGER.SEVERITY}】
告警名称:【{TRIGGER.NAME}】
当前状态:【{ITEM.NAME}:{ITEM.KEY}={ITEM.VALUE}】
事件代码:【{EVENT.ID}】

shell 脚本告警配置:

shell脚本发信:
cd /usr/lib/zabbix/alertscripts
touch mail.sh
写入如下内容:
#----------------------------------
#!/bin/bash
export LANG=zh_CN.UTF-8
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE ###解决了发送的邮件内容变成附件的问题。
/bin/mail -s "$2" $1 < $FILE
#------------------------------------ #脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

测试告警:

问题表现形式:
{10.0.0.63:system.users.num.last(,10)}>3 恢复表达式:
{10.0.0.63:system.users.num.last(,10)}<3

尝试开启多个 xshell窗口 检查告警是否发送:

最终效果:

mail.rc邮件告警

vim /etc/mail.rc

尾部添加:
set bsdcompat
set sendcharsets=iso-8859-1,utf-8
set from=18816997176@163.com #邮箱
set smtp=smtp://smtp.163.com
set smtp-auth-user=18816997176@163.com #账号
set smtp-auth-password=x83ue244 #授权密码
set smtp-auth=login 测试发信:
echo "this is test $(hostname -I)" | mail -s 'chenleilei.net test' 370460370@qq.com

常用软件安装

yum install -y htop uptime iftop iostat vmstat netstat nethogs

zabbix-get 取值

在没有配置前,可以通过zabbix-get来取值测试,取值成功即代表配置也没啥问题
zabbix-get安装: yum install -y zabbix-get [root@localhost alertscripts]# zabbix_get -s 10.0.0.63 -k 'system.uptime'
19300

zabbix内置监控项

通过zabbix内置监控项可以获取绝大多数想要的数据

 zabbix_agentd -p  拿到数据后,使用:
zabbix_get -s 10.0.0.63 -k "system.uptime" [root@localhost ~]# zabbix_get -s 10.0.0.63 -k "system.uptime"
25906 <----获取到的系统启动时间值.[默认单位:秒] 统计内置监控项:
[root@localhost ~]# zabbix_agentd -p | grep -o '^.*\[[tsdum]|' |wc -l
76

zabbix笔记_001的更多相关文章

  1. Zabbix笔记

    简单检查中的icmppingloss[<target>,<packets>,<interval>,<size>,<timeout>]   结 ...

  2. zabbix笔记_002

    监控登录用户 监控图形配置 创建图形: 配置完成后查看图形: 创建触发器配置 创建完成后可以查看 监控磁盘IO I/O查看工具: istat 安装[需要epel源]: yum install -y s ...

  3. zabbix笔记_008 zabbix监控交换机路由器

    zabbix监控交换机路由器 要监控路由器交换机,需要使用到SNMP协议 SNMP是一个简单网络管理协议,他基于C/S模型实现的监控和管理. 服务器安装SNMP: yum -y install net ...

  4. 算法笔记_001:斐波那契数的多种解法(Java)

    本篇文章解决的问题来源于算法设计与分析课程的课堂作业,主要是运用多种方法来计算斐波那契数.具体问题及解法如下: 一.问题1: 问题描述:利用迭代算法寻找不超过编程环境能够支持的最大整数的斐波那契数是第 ...

  5. 人生苦短_我用Python_javascript_var_function_简单笔记_001

    <!--Javascript_var_001:--> <html> <head> <meta charset="UTF-8"> &l ...

  6. zabbix 应用监控作业笔记 ansible-playbook

    目录 目录结构 zabbix-web.yaml zabbix-backup.yaml zabbix-nfs.yaml zabbix-mysql.yaml zabbix-server.yaml zabb ...

  7. Zabbix学习笔记(yum源安装)

    Zabbix学习笔记(yum源安装) 链接:https://pan.baidu.com/s/19RXhumkB-ulpI4BGOa5b_A 提取码:115h 复制这段内容后打开百度网盘手机App,操作 ...

  8. zabbix学习笔记:zabbix监控之短信报警

    zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信 ...

  9. [转]Zabbix 3.0 安装笔记

    Zabbix 3.0 只支持CentOS 7.0以上版本,所以先在虚拟机中安装好CentOS 7.0 x64,并设置好IP,允许虚拟机联网. 1.安装MySQL 从最新版本的linux系统开始,默认的 ...

  10. Zabbix 3.0 安装笔记

    Zabbix 3.0 只支持CentOS 7.0以上版本,所以先在虚拟机中安装好CentOS 7.0 x64,并设置好IP,允许虚拟机联网. 1.安装MySQL 从最新版本的linux系统开始,默认的 ...

随机推荐

  1. RestTemplate进行https请求时适配信任证书

    转载请注明出处: 1.http协议请求 使用RestTemplate进行http协议的请求时,不需要考虑证书验证相关问题,以下为使用RestTemplate直接使用的代码示例: import org. ...

  2. Kubernetes 部署集群1.28.2版本(无坑)

    初步搭建一个一个主节点和两个从节点Kubernetes 1.28.2 集群.先准备好机器 | host | hostname | os | role | hardware | | --- | --- ...

  3. 使用 Arthas 排查 SpringBoot 诡异耗时的 Bug

    简介: 公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用.最近,在优化接口的响应时间,优化了代码之后,但是时间还是达不到要求:有一个 ...

  4. [FAQ] 设置 npm 镜像源

    查看 npm 源: $ npm config get registry> http://registry.npmjs.org/ 修改 npm 源: $ npm config set regist ...

  5. dotnet C# 如果在构造函数抛出异常 析构函数是否会执行

    假设在某个类型的构造函数里面抛出了异常,那么这个对象的析构函数是否会执行 如下面代码 private void F1() { try { _ = new Foo(); } catch { // 忽略 ...

  6. 2018-6-30-dotnet-设计规范-·-抽象类

    title author date CreateTime categories dotnet 设计规范 · 抽象类 lindexi 2018-6-30 9:2:38 +0800 2018-06-30 ...

  7. github只下载某个文件或文件夹(使用GitZip插件)

    安装GitZip插件 (此安装过程需要梯子(不懂"梯子",百度一下就明白)) 1. 打开插件管理页面 方法一:打开Chrome浏览器(Edge浏览器同理),在Chrom地址栏输入c ...

  8. WebGL实现简易的局部“马赛克”

    前言 接触过Canvas的小伙伴应该都知道,在Canvas2D中我们要加载一个图片很简单,通过调用drawImage API就能将图像绘制到画布上,当然在WebGL中我们也可以绘制图像,在绘制时我们需 ...

  9. 02、Linux 排查

    Linux 分析排查 1.敏感文件信息 1.1.tmp 目录 /tmp:临时目录文件,每个用户都可以对它进行读写操作.因此一个普通用户可以对 /tmp 目录执行读写操作(ls -alt) 筛查 /tm ...

  10. rails 上传文件

    控制器文件 app/controllers/api/v1/order_controller.rb def create # 从本地读取 log_dir = File.expand_path(File. ...