zabbix笔记_001

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

微信赞赏

支付宝赞赏

原文地址:https://www.cnblogs.com/superlinux/p/12582123.html