配置监控服务器

1 Linux监控平台介绍
2 zabbix监控介绍
3 安装zabbix
4 忘记Admin密码如何做
5 主动模式和被动模式
6 添加监控主机
7 添加自定义模板
8 处理图形中的乱码
9 自动发现
10 添加自定义监控项目
11 配置邮件告警
12 测试告警
13 不发邮件的问题处理

1.Linux监控平台介绍

常见开源监控软件

  • cacti、nagios、zabbix、smokeping、open-falcon等等,其中nagios、zabbix流行度高
  • cacti、smokeping偏向于基础监控,成图非常漂亮,适合监控网络设备
  • cacti、nagios、zabbix服务端监控中心,需要php环境支持(用Apache的php,用nginx的php都可以),其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图
  • open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究
  • 后续以介绍zabbix为主

2.zabbix监控介绍

  • C/S架构,基于C++开发,监控中心支持web界面配置和管理
  • 单台server节点(即一台server),理论上 可以支持上万台客户端
  • 目前zabbix软件,最新版本3.4,官方文档:https://www.zabbix.com/manuals
  • 5个组件
  • zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操作数据
  • 数据存储 存放数据,比如mysql
  • web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因(如果没有web界面,就无法在浏览器上配置它)
  • zabbix-proxy 可选组件,它可以代替zabbix-server的功能,减轻server的压力(当机器量很多的时候,可以使用zabbix-proxy)
  • zabbix-agent 客户端软件(每一台客户端都需要安装agent),负责采集各个监控服务或项目的数据,并上报

232148_fFgb_3708406.png

3.安装zabbix

  • 官网下载地址https://www.zabbix.com/download
  • wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
  • rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
  • yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
  • 会连带安装httpd和php
  • 如果mysql之前没有安装的话,需要根据lamp那一章的mysql安装方法安装mysql
  • vim /etc/my.cnf //需要增加配置

character_set_server = utf8

  • 重启mysqld服务后,进入mysql命令行,创建zabbix库
  • create database zabbix character set utf8;
  • 再创建用户
  • grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';
  • 导入数据
  • cd /usr/share/doc/zabbix-server-mysql-3.2.7
  • gzip -d create.sql.gz
  • mysql -uroot -pxxx zabbix < create.sql
  • systemctl start httpd; systemctl enable httpd
  • vim /etc/zabbix/zabbix_server.conf //修改或增加

DBHost=127.0.0.1 //在DBName=zabbix上面增加

DBPassword=aming-zabbix //在DBuser下面增加

  • systemctl start zabbix-server
  • systemctl enable zabbix-server
  • netstat -lntp |grep zabbix //查看监听端口
  • 浏览器访问http://ip/zabbix/ web界面下面配置zabbix
  • 用户名Admin 密码zabbix
  • 进入后台第一件事情就是修改密码

准备工作

两台机器,一台作为服务端(监控中心),另外一台作为它的客户端,均安装zabbix。

首先访问官网下载地址,选择zabbix3.2版本centOS7  64位,点击download,找到如下rpm包,复制链接

234708_K8kq_3708406.png

两台机器上都下载rpm包

234624_2Axo_3708406.png

安装rpm包

235139_z9l2_3708406.png

安装zabbix服务端

查看/etc/yum.repos.d/目录,有zabbix.repo

235325_aiUZ_3708406.png

安装zabbix一些包

235510_hMJn_3708406.png

  • zabbix-agent ,客户端软件
  • zabbix-get ,服务端用的一个工具,获得客户端某些监控项目的数据
  • zabbix-server-mysql ,这个是服务端跟mysql打交道相关的组件
  • zabbix-web ,web界面
  • zabbix-web-mysql ,web和mysql相关组件

安装mysql,根据lamp那一章的mysql安装方法安装mysql,也可以yum安装

启动mysql服务

000619_dfCh_3708406.png

编辑mysql的配置文件,增加内容如下,保存退出

000744_yMO7_3708406.png

000834_sGFT_3708406.png

重启mysql

000916_uzD4_3708406.png

登录mysql,创建zabbix库,创建用户,退出

001159_fop8_3708406.png

解压create.sql.gz压缩包

072444_uAfn_3708406.png

将create.sql文件导入到zabbix库里去

072611_cUkk_3708406.png

启动zabbix服务

072709_LvV7_3708406.png

查看nginx服务是否启动,若有先关掉,然后启动httpd服务

072920_Hm4Z_3708406.png

073000_I5ly_3708406.png

httpd服务监听了80端口

073023_BHQt_3708406.png

对zabbix、http等服务设置开机启动,取消nginx开机启动

073346_mFgm_3708406.png

查看监听端口,但并没有zabbix监听的端口

073440_jM8X_3708406.png

先检查zabbix的错误日志

073716_PBg0_3708406.png

073748_bGDn_3708406.png

编辑zabbix的配置文件,搜索DBHost,增加内容如下,保存退出

073810_gj7r_3708406.png

074135_I5Xt_3708406.png

074647_UP3n_3708406.png

重新启动zabbix服务

083427_cTTC_3708406.png

查看监听的端口

083519_ycZh_3708406.png

配置web界面

打开浏览器,输入192.168.133.130访问

083656_FJnF_3708406.png

点击 Next step,会出现一个提示

083846_zleG_3708406.png

编辑php的配置文件,搜索/timezone,设置php的timezone时区

083912_XT1U_3708406.png

084026_4kcM_3708406.png

重启httpd服务

084150_8P0U_3708406.png

刷新浏览器界面,变成OK了,继续点击Next step

084309_N5uQ_3708406.png

配置数据库相关信息,点击Next step 

084456_7Tve_3708406.png

定义zabbix server主机名,点击Next step 

084558_WVwm_3708406.png

继续点Next step 

084811_Exmg_3708406.png

安装成功

084856_3hJL_3708406.png

登录zabbix

084934_h2N6_3708406.png

登录进zabbix之后,首先需要去更改密码,选择 Administration ,然后选择 Users,选择 Change password 修改密码和选择语言(支持中文),点击update即可

085114_Ar6x_3708406.png

刷新一下,界面变成中文了

085302_VSfB_3708406.png

退出去,然后用新密码登录,就进入zabbix的web界面了

安装zabbix客户端

下载和安装yum源,只需要安装zabbix-agent这一个包

090332_wjxe_3708406.png

编辑zabbix配置文件,搜索/server,修改指定服务端IP,搜索/Hostname,修改成可识别的主机名,保存退出

090850_f9wC_3708406.png

091303_eKc6_3708406.png

091326_YiwS_3708406.png

091622_a34z_3708406.png

启动zabbix服务,查看进程和监听端口

091734_qM7c_3708406.png

zabbix监控架构搭建完成。

4.忘记Admin密码如何做

  • 进入mysql命令行,选择zabbix库
  • mysql -uroot -p zabbix
  • update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;
  • 这样就更改了Admin用户的密码

如果忘记zabbix(web界面)管理员密码,可通过zabbix服务器的数据库进行密码更改!

先进入到mysql命令行,选择zabbix库

085600_K1V4_3708406.png

查看users表

085844_vSW4_3708406.png

修改密码,查看表的情况

090025_E6V2_3708406.png

设置完成后在浏览器就可以使用新密码登录zabbix

5.主动模式和被动模式

  • 主动或者被动是相对客户端来讲的

  • 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端

  • 主动模式,客户端会主动把监控数据汇报给服务端,服务端只负责接收即可

  • 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。

  • 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动模式

6.添加监控主机

  • 先添加主机组aming-test
  • 再添加主机,主机名称和可见名称都写aming-02
  • 群组选择aming_test
  • IP地址填写客户端的ip 192.168.133.132
  • 几个概念:应用集、监控项、触发器、图形、自动发现、web监测

登录到web界面添加监控主机,选择配置,主机群组 ,创建主机群组,输入组名,点击添加

073823_WOv2_3708406.png

然后在选择主机,创建主机,输入信息如下,点击添加

074513_5ZQW_3708406.png

添加完主机后看到有应用集、监控项、触发器、图形、自动发现、web监测;在监控项里定义主动和被动模式

074633_RgI2_3708406.png

应用集:应用集就是监控项的集合

监控项:所有的监控项目

触发器:就是针对某一个项目,设置的一个告警规则

图形:根据监控历史数据绘制的图表

自动发现规则:zabbix自动监控的文件系统的信息、网卡信息

web场景:用于监控某个web站点

7.添加自定义模板

  • 可以自定义一个常用模板,方便给新增主机添加监控项目
  • 自定义aming模板
  • 把其他自带模板里面的某些监控项目(比如cpu、内存等)复制到aming模板里
  • 定义触发器
  • 添加图形
  • 自动发现,找到Template OS Linux,点击右侧的自动发现,参考Mounted filesystem discovery和Network interface discovery定义规则
  • 可以直接导出、导入模板,然后再删除不需要的对象

在配置中的选择模板,创建模板,填入模板信息如下,点击添加

080037_Zu8f_3708406.png

刚添加的模板,应用集、监控项、触发器、自动发现规则、web场景都为空的,我们可以自带的模板里面找内容添加,比如在Template OS Linux 模板里面找一些监控项,选择好复制到我的模板里去。触发器、图形、聚合图形、web监测都可以使用这种方法添加内容,但是自动发现这一项不可以使用这种方法添加内容。

另外一种方法(推荐),需要将之前复制的内容删除,然后点击模板进去,选择链接的模板,选择Template OS Linux,点击添加,点击更新

081622_PZnj_3708406.png

081748_vAdJ_3708406.png

更新之后,会看到模板里面有了应用集、监控项、图形、自动发现等;

082000_9Y0z_3708406.png

如果监控项我们有一些不需要的内容,我们无法直接删除监控项目,因为是该项目下所有规则都是链接到template os Linux中的,需要在链接模板选项下设置

082844_CIAw_3708406.png

  • 取消链接,仅仅只会把链接取消,但并不会把应用集、监控项等给清空掉
  • 取消链接并清理,就会把里面的所有给清空

点取消链接,然后更新,会看到模板里面依旧存在监控项、应用集等,不同的是它们前面没有链接模板的名字,这时候可以删除内容了。

说明:应用集中包含了所有的监控项,所以只有先删除监控项之后才能删除应用集;删除应用集时,只要右侧监控项有数字的都得留着,没有数字的监控项都可以删除。

8.处理图形中的乱码

  • 设置为中文后,zabbix图形的中文文字会显示小方框
  • 这是因为在zabbix的字体库中没有中文字体,需要从windows上借用一个过来
  • vim /usr/share/zabbix/include/defines.inc.php //搜索ZBX_FONTPATH -它定义的路径是“fonts”,它是一个相对路径,绝对路径为/usr/share/zabbix/fonts,而字体文件为“ZBX_GRAPH_FONT_NAME”所定义的“graphfont”,它是一个文件,绝对路径为/usr/share/zabbix/fonts/graphfont
  • windows字体路径为“C:\Windows\Fonts\”,找到“simfang.ttf”(其实就是那个仿宋简体),先把它复制到桌面上,然后上传到linux的/usr/share/zabbix/fonts/,并且改名为graphfont.ttf

首先把aming模板连接到aming-02这个主机上去

083930_faXt_3708406.png

点击更新之后,出现如下界面

084145_lTc0_3708406.png

然后点击图形,选择CPU load,选择预览,出现小方框,意味着乱码。一般乱码常见的原因原因是字符集不对,但这里不是,而是缺少中文的字库。

084347_wv39_3708406.png

在服务端上打开配置文件/usr/share/zabbix/include/defines.inc.php,搜索/ZBX_GRAPH_FONT_NAME

084908_0nL1_3708406.png

fonts是一个相对路径,绝对路径为/usr/share/zabbix/fonts

085352_Dq5O_3708406.png

图形界面显示乱码是因为该字库不支持中文字体,解决办法是将该字库软链接到一个支持中文的字库下。

在Windows中,打开计算机,选中C盘,Windows,Fonts,选择简体字(隶书常规)复制到桌面上;然后回到虚拟机,使用xftp上传(ctrl+alt+F),选中双击放到root下

090708_ZB5F_3708406.png

将该文件移动到/usr/share/zabbix/fonts/目录下

090816_a04R_3708406.png

然后更做一个graphfont.ttf软链接文件

091037_0eYs_3708406.png

然后回到zabbix界面,刷新预览,这下可以看到中文了

091155_4029_3708406.png

可以查看监测中的数据,监测中、最新数据、选择主机、点击应用

092159_jOOJ_3708406.png

可以看到监测项目中都有数据,也可以点击右边的图形查看

092448_jaeY_3708406.png

9.自动发现

自动发现规则的数据获取间隔,修改为60s,点击更新

093105_6vzI_3708406.png

093127_PVpD_3708406.png

为了更快生效,回到虚拟机上,启动zabbix服务端和客户端服务

093751_MBr3_3708406.png

093737_2hOt_3708406.png

刷新之后,图形中的规则变成5个

094044_GBUv_3708406.png

可以选择监控中、图形,会出现网卡的流量图形(可以在虚拟机中上传文件,增大数据量方便观察)

095048_v9Bh_3708406.png

更改图形界面(配置、模板、自动发现规则、图形原型)

095727_VoL9_3708406.png

10.添加自定义监控项目

  • 需求:监控某台web的80端口连接数,并出图
  • 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现
  • 对于第一步,需要到客户端定义脚本
  • vim /usr/local/sbin/estab.sh //内容如下
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
  • chmod 755 /usr/local/sbin/estab.sh
  • 客户端上编辑配置文件 vim /etc/zabbix/zabbix_agentd.conf//增加
UnsafeUserParameters=1  //表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh 
//自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh
  • 重启zabbix-agent服务 systemctl restart zabbix-agent
  • 首先到服务端验证,执行命令
  • zabbix_get -s 192.168.133.132 -p 10050 -k 'my.estab.count‘
  • 然后在zabbix监控中心(浏览器)配置增加监控项目
  • 键值写my.estab.count
  • 添加该项目后,到“监测中” “最新数据”查看刚添加的项目是否有数据出现
  • 有了数据就可以添加图形了
  • “配置”“主机” “图形” “创建图形”

首先在客户端上编写脚本,内容如下,保存退出

072913_7Pi3_3708406.png

073129_38jK_3708406.png

添加zabbix用户执行的权限

073222_tbGB_3708406.png

客户端上编辑配置文件,搜索 /UnsafeUserParameters

073431_FzCg_3708406.png

073545_2PCi_3708406.png

073646_5rYA_3708406.png

UnsafeUserParameters=1 ,目的是使用自定义脚本

重启zabbix服务

073822_bERs_3708406.png

服务端验证脚本是否生效

073921_jNlQ_3708406.png

web端zabbix监控中心增加监控项目(配置、主机 、监控项、创建监控项)

074744_bdEy_3708406.png

添加图形(图形、创建图形)

075039_BkHx_3708406.png

然后选择预览

075138_Axec_3708406.png

添加一个触发器(触发器、创建触发器),并发连接数最新值T大于N(自定义该值,在此N=200)时触发该警报

075315_4KyK_3708406.png

075600_hmiJ_3708406.png

075513_GEkW_3708406.png

11.配置邮件告警

首先登录163邮箱,开启POP3、IMAP、SMTP服务,开启并记住授权码

进入zabbix的web界面,监控中心设置邮件告警( 管理、报警媒介类型、创建媒体类型)

080226_Q54S_3708406.png

080556_5gxE_3708406.png

创建报警脚本mail.py,添加内容如下,保存退出

080732_5wsS_3708406.png

#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from  subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
    gserver = 'smtp.163.com'
##定义发邮件类型
    gport = 25
    try:
        msg = MIMEText(unicode(content).encode('utf-8'))
        msg['from'] = mailfrom
        msg['to'] = mailto
        msg['Reply-To'] = mailfrom
        msg['Subject'] = subject
        smtp = smtplib.SMTP(gserver, gport)
        smtp.set_debuglevel(0)
        smtp.ehlo()
        smtp.login(username,password)
        smtp.sendmail(mailfrom, mailto, msg.as_string())
        smtp.close()
    except Exception,err:
        print "Send mail failed. Error: %s" % err
def main():
    to=sys.argv[1]
    subject=sys.argv[2]
    content=sys.argv[3]
##定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开,否则你会死的很惨)
    sendqqmail('163邮箱','密码','163邮箱',to,subject,content)

if __name__ == "__main__":
    main()

更改mail.py脚本的权限

081200_5LKU_3708406.png

测试mail.py是否能发邮件

081503_d5qE_3708406.png

打开163邮箱,会看到邮件

创建一个接受告警邮件的用户(管理、用户、创建用户);报警媒介,类型选择baojing

081821_eZRK_3708406.png

082003_Q9Bf_3708406.png

配置用户权限(管理、用户群组)

082206_SxJE_3708406.png

082310_JLEk_3708406.png

082326_L2GE_3708406.png

082419_cCey_3708406.png

配置动作(配置、动作、创建动作)

082616_1Y6m_3708406.png

083016_G0Ca_3708406.png

083255_sW3b_3708406.png

083425_3PYy_3708406.png

083548_n26k_3708406.png

083629_r6MY_3708406.png

083701_Idzy_3708406.png

083730_B9zW_3708406.png

12.测试告警

方便测试,创建一个自定义触发器(配置、主机、触发器、创建触发器)

084504_PxJ2_3708406.png

084238_yaRs_3708406.png

仪表板出现报错信息

084931_26aK_3708406.png

收到告警邮件

091207_s9tY_3708406.png

回到触发器负载改成大于1,仪表板显示正常,并查看邮箱

091630_5MYa_3708406.png

091407_hATA_3708406.png

13、不发邮件的问题处理


用户权限
用户媒介有没有设置邮箱
发邮件脚本的权限是否755
脚本的位置是否在/usr/lib/zabbix/alertscripts/下
发邮件脚本是否能够发送邮件
zabbix配置动作是否配置正确
邮箱服务器可能存在波动,更换告警的邮箱
问题依然没有解决时,恢复快照尝试重新安装配置一遍

转载于:https://my.oschina.net/u/3992081/blog/2997365

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值