19.1 Linux监控平台介绍
19.2 zabbix监控介绍
19.3/19.4/19.6 安装zabbix
19.5 忘记Admin密码如何做
19.7 主动模式和被动模式
19.8 添加监控主机
19.9 添加自定义模板
19.10 处理图形中的乱码
19.11 自动发现
19.12 添加自定义监控项目
19.13/19.14 配置邮件告警
19.15 测试告警
19.16 不发邮件的问题处理

19.1 Linux监控平台介绍

常见开源监控软件:

1. cacti、nagios、zabbix、smokeping、open-falcon等等

2. cacti、smokeping偏向于基础监控,成图非常漂亮

3. cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图

4. open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究

5. 后续以介绍zabbix为主

19.2 zabbix监控介绍

1. C/S架构,基于C++开发,监控中心支持web界面配置和管理

2. 单server节点可以支持上万台客户端

3. 最新版本3.4,官方文档https://www.zabbix.com/manuals

4. 5个组件

5. zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操作数据

6. 数据存储 存放数据,比如mysql

7. web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因

8. zabbix-proxy 可选组件,它可以代替zabbix-server的功能,减轻server的压力

9. zabbix-agent 客户端软件,负责采集各个监控服务或项目的数据,并上报

zabbix监控流程图:

30 Linux监控平台-zabbix

19.3 安装zabbix(上)19.4 安装zabbix(中)

Zabbix服务端安装

1. 下载zabbix包(rpm包) :

[[email protected] ~]# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

2. 安装zabbix(rpm包) :

[[email protected] ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

3. 如果机器没有安装myslq,可以用yum安装或者按lamp里安装方法安装!http://blog.51cto.com/zhuneianxiang/2073129

4. yum安装一系列 :

[[email protected] ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

5. 启动mysql :

[[email protected] ~]# systemctl start mysql

6. 搜索mysql是否启动 ?

[[email protected] ~]# ps aux |grep mysql

7. 编辑mysql配置文件 :

[[email protected] ~]# vim /etc/my.cnf

添加内容(中文字符集) :

character_set_server = utf8

30 Linux监控平台-zabbix

8. 重启mysql :

[[email protected] ~]# systemctl restart mysql

9. 创建zabbix库 :

[[email protected] ~]# mysql -uroot -phaomima

mysql> create database zabbix character set utf8;

30 Linux监控平台-zabbix

10. 创建zabbix用户 :

mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'haomima-zabbix';

30 Linux监控平台-zabbix

12. 进入zabbix-server-mysql目录,注意mysql当前安装的版本号 :  

[[email protected] ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/

13. 解压当前目录下create.sql.gz压缩包 :

[[email protected] zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz

14. 把解压的create.sql文件内容,导入到zabbix库里 :

[[email protected] zabbix-server-mysql-3.2.11]# mysql -uroot zabbix < create.sql

[[email protected] zabbix-server-mysql-3.2.11]# cd

15. 编辑zabbix_server.conf配置文件 :

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf

添加内容:

DBHost=127.0.0.1

30 Linux监控平台-zabbix

DBPassword=haomima-zabbix

30 Linux监控平台-zabbix

16. 启动zabbix :

[[email protected] ~]# systemctl start zabbix-server

[[email protected] ~]# systemctl enable zabbix-server

如果启动zabbix报下图错误,就关闭掉SELinux防火墙:[[email protected] ~]# setenforce 0

30 Linux监控平台-zabbix

17. 查看是否启动zabbix ?

[[email protected] ~]# ps aux |grep zabbix

30 Linux监控平台-zabbix

18. 查看是否有服务在监听80端口 ?

[[email protected] ~]# netstat -lntp

19. 启动http服务前,先关闭nginx服务(nginx会监听80端口) :

[[email protected] ~]# /etc/init.d/nginx stop

20. 启动http服务 :

[[email protected] ~]# systemctl start httpd

[[email protected] ~]# systemctl enable httpd

21. Linux服务器上打开80端口 :

[[email protected] ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

22. (wep)游览器访问 ip/zabbix :

30 Linux监控平台-zabbix

报错了!需要定义地区 :

30 Linux监控平台-zabbix

23. 更改php配置文件 :

[[email protected] ~]# vim /etc/php.ini

更改内容(定义地区为上海即可)

date.timezone = Asia/Shanghai

24. 重启Apache服务(httpd) :

[[email protected] ~]# systemctl restart httpd

25. 游览器再次访问ip/zabbix/setup.php刷新,下一步 :

30 Linux监控平台-zabbix

26. 设定如下参数 :

30 Linux监控平台-zabbix

27. 定义zabbix主机名 :

30 Linux监控平台-zabbix

28. 上面下一步下一步,登录默认管理员 :

30 Linux监控平台-zabbix

29. 进入管理界面 :Administration——Users——Admin

30 Linux监控平台-zabbix

30. 设定Admin管理账号新密码(安全),设定中文语言 :

30 Linux监控平台-zabbix

31. 重新登录,新密码即可生效;刷新页面,中文显示 :

30 Linux监控平台-zabbix

19.5 忘记Admin密码如何做

1. 登录mysql :

[[email protected] ~]# mysql -uroot

2. 进入zabbix库 :

mysql> use zabbix

3. 重置管理用户(Admin)密码 :

mysql> update users set passwd=md5('haomima') where alias='Admin';

19.6 安装zabbix(下)

Zabbix客户端安装

1. 下载zabbix包(rpm包) :

[[email protected] ~]# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

2. 安装zabbix(rpm包) :

[[email protected] ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

3. yum安装 :

[[email protected] ~]# yum install -y zabbix-agent

4. 更改zabbix_agentd.conf 配置文件 :

[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf

更改内容(指定监听服务端ip):

Server=192.168.211.128

30 Linux监控平台-zabbix

ServerActive=192.168.211.128

30 Linux监控平台-zabbix

5. 启动zabbix :

[[email protected] ~]# systemctl start zabbix-agent

6. 查看zabbix是否启动 ?

[[email protected] ~]# ps aux |grep zabbix

30 Linux监控平台-zabbix

19.7 主动模式和被动模式

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

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

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

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

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

19.8 添加监控主机

1. windows游览器访问hao1Linux服务器ip/zabbix,创建主机群组 :

配置——主机群组——创建主机群组

30 Linux监控平台-zabbix

定义:主机群组祖名

30 Linux监控平台-zabbix

2. 创建主机 :

配置——主机——创建主机

30 Linux监控平台-zabbix

定义:主机名称——可见的名称——选择群组——客户端ip

30 Linux监控平台-zabbix

几个概念:应用集、监控项、触发器、图形、自动发现、web监测30 Linux监控平台-zabbix

19.9 添加自定义模板

1. 创建模块 :

配置——模块——创建模块

30 Linux监控平台-zabbix

定义:模板名称——可见的名称——Templates

30 Linux监控平台-zabbix

2. 添加成功的模板,再点击进来,按如下修改 :

链接的模板——选择——Template OS Linux——选择——添加——添加——更新

30 Linux监控平台-zabbix

链接的模板——取消链接——更新

30 Linux监控平台-zabbix

更新模板!!!

30 Linux监控平台-zabbix

3. 监控项下 删除多余 监控项 :

图片红空中的9个保留,其他的勾选全部删除掉!

30 Linux监控平台-zabbix

保留下的9个监控项,如下图 :

30 Linux监控平台-zabbix

4. 应用集下 删除没有包含监控项的应用集 :

30 Linux监控平台-zabbix

5. 图形下 删除CPU utilization这项 :

30 Linux监控平台-zabbix

19.10 处理图形中的乱码

1. 游览器:hao-02主机(客户端),选择链接模板 :

配置—主机—hao-02—模板—选择—hao—选择—添加—更新

30 Linux监控平台-zabbix

更新完成 :

30 Linux监控平台-zabbix

2. 从Window系统中,拷贝一份中文字体,上传到linux服务端上 :

C:\Windows\Fonts

30 Linux监控平台-zabbix

上传到hao1服务器上,快捷键(上传简体字楷书):Ctrl + Alt + F  

30 Linux监控平台-zabbix

3. 把SIMLI.TTF(简体字楷书),移动到.../zabbix/fonts/目录下:

[[email protected] ~]# mv /root/SIMLI.TTF /usr/share/zabbix/fonts/

4. 进入 /usr/share/zabbix/fonts/目录下:

[[email protected] ~]# cd /usr/share/zabbix/fonts/

5. 重命名原有的graphfont.ttf文件:

[[email protected] ~]# mv  graphfont.ttf graphfont.ttf.beifen

6. 把上传的SIMLI.TTF(简体字楷书),重命名为graphfont.ttf :

[[email protected] ~]# mv SIMLI.TTF graphfont.ttf

7. 游览器:hao2主机,图形——预览,显示中文,不再显示小长条就可以了,这就是没有对应中文数据包造成的!

30 Linux监控平台-zabbix

19.12 添加自定义监控项目

需求:监控某台web的80端口连接数,并出图

两步:1)zabbix监控中心创建监控项目;

          2)针对该监控项目以图形展现

客户端hao2机器配置:

1. 客户端(hao2)编写estab.sh脚本 :

[[email protected] ~]# vim /usr/local/sbin/estab.sh

添加内容 :

#!/bin/bash

##获取80端口并发连接数

netstat -ant |grep ':80 ' |grep -c ESTABLISHED

2. 设定estab.sh脚本权限为755 :

[[email protected] ~]# chmod 755 /usr/local/sbin/estab.sh

3. 客户端(hao2)编辑配置文件 :

[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf

添加内容( =1表示使用自定义的脚本) :

UnsafeUserParameters=1

30 Linux监控平台-zabbix

UserParameter=[*],/usr/local/sbin/estab.sh

30 Linux监控平台-zabbix

4. 重启zabbix-agent服务 :

[[email protected] ~]# systemctl restart zabbix-agent

服务端hao1机器测试:

1. 远程到客户端ip,执行命令(获取80端口连接数) :

[[email protected] ~]# zabbix_get -s 192.168.211.129 -p 10050 -k 'my.estab.count'

30 Linux监控平台-zabbix

2. 临时关闭getenforce防火墙 :

[[email protected] ~]# setenforce 0

关闭firewalld防火墙;查看是否还有防火墙规则?

[[email protected] ~]# systemctl stop firewalld

[[email protected] ~]# iptables -nvL

3. 游览器访问ip/zabbix,创建监控项 :

30 Linux监控平台-zabbix

名称——键值——添加

30 Linux监控平台-zabbix

4. 创建图形 :

30 Linux监控平台-zabbix

名称——添加——并发连接数——选择——添加

30 Linux监控平台-zabbix

5. 创建触发器 :

30 Linux监控平台-zabbix

名称——严重性——添加——监控项-选择——功能——N——插入——添加

30 Linux监控平台-zabbix

19.13 配置邮件告警(上)

1. 登录163网易邮箱,设置——客户端授权密码 :

设置开启POP3、IMAP、SMTP服务 开启并记录授权码

30 Linux监控平台-zabbix

2. 创建媒体类型 :

30 Linux监控平台-zabbix

名称——类型——脚本名称(mail.py)——脚本参数 :

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

30 Linux监控平台-zabbix

3. 图中AlertScriptsPath=目录,mail.py脚本创建在这个目录下 :

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf

30 Linux监控平台-zabbix

4. 创建mail.py脚本 :

[[email protected] ~]# vim /usr/lib/zabbix/alertscripts/mail.py

#####脚本使用说明######

#1. 首先定义好脚本中的邮箱账号和密码

#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"

内容参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py

添加内容 :

#!/usr/bin/env python

#-*- coding: UTF-8 -*-

import os,sys

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]

##定义邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开)

   sendqqmail('[email protected]','mima','[email protected]',to,subject,content)

if __name__ == "__main__":

   main()

5. 设定mail.py脚本权限为755 :

[[email protected] ~]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py

6. 测试发给指定邮箱一封邮件 :

[[email protected] ~]# python mail.py [email protected] "biaoti" "neirong"

30 Linux监控平台-zabbix

19.14 配置邮件告警(下)

1. 创建用户 :

30 Linux监控平台-zabbix

定义用户参数如图 :

30 Linux监控平台-zabbix

进入hao用户的对应用户群组,更改用户群组的权限为读写!!!

30 Linux监控平台-zabbix

定义报警媒介(接收邮箱地址) :

30 Linux监控平台-zabbix

确定hao用户—权限是读写!!!

30 Linux监控平台-zabbix

2. 创建动作 :

30 Linux监控平台-zabbix

设置动作:

30 Linux监控平台-zabbix

设置操作 :

默认信息:

HOST:{HOST.NAME} {HOST.IP}

TIME:{EVENT.DATE}  {EVENT.TIME}

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

messages:{ITEM.NAME}:{ITEM.VALUE}

ID:{EVENT.ID}

30 Linux监控平台-zabbix

设置恢复操作:

默认信息:

HOST:{HOST.NAME} {HOST.IP}

TIME:{EVENT.DATE}  {EVENT.TIME}

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

messages:{ITEM.NAME}:{ITEM.VALUE}

ID:{EVENT.ID}

30 Linux监控平台-zabbix

19.15 测试告警19.16 不发邮件的问题处理

1. 创建触发器 :

30 Linux监控平台-zabbix

配置触发器参数为错误参数,达到发邮箱报警效果!!!

30 Linux监控平台-zabbix

检测中——仪表板——最近20个问题

30 Linux监控平台-zabbix

 

相关文章: