大神带你一天了解zabbix(一)

时间:2019-12-07 17:02:23   收藏:0   阅读:120

15 Zabbix的搭建

15.1 为什么使用监控服务

15.2 监控服务的实现方式

15.2.1 命令实现

技术分享图片

15.2.1.1 查看cpu命令

15.2.1.2 查看系统内存的命令

free

15.2.1.3 查看系统硬盘的命令

df

15.2.1.4 查看系统进程命令

15.2.1.4.1 top
15.2.1.4.2 htop

15.2.1.5 查看系统负载命令

uptime????????????????????????????????监控系统启动时间的信息命令

15.2.1.6 查看网络信息命令

ifconfig/route/glances/iftop/nethogs

15.2.1.7 查看网络连接命令

netstat

15.2.1.8 查看磁盘读写命令

iostat/iotop

15.2.1.9 查看硬件信息命令

vmstat

?

15.2.2 脚本实现

使用脚本+定时任务来进行

15.2.3 zabbix实现

安装zabbix客户端来实现

15.3 监控服务的软件部署

15.3.1 更新yum源(LTS是稳定源)

技术分享图片

15.3.1.1 4.0 yum源的更新

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

15.3.1.2 3.0 yum源的更新

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

15.3.2 安装LAMP架构和zabbix相关的软件

zabbix服务程序软件????????zabbix-server-mysql

zabbix服务web软件:????????zabbix-web-mysql????httpd php

数据库服务软件:????????????mariadb-server

[root@zabbix-server ~] # yum install -y zabbix-server-mysql zabbix-web-mysql httpd php mariadb-server

15.3.3 修改zabbix-server服务的配置文件

[root@zabbix-server ~] # vim /etc/zabbix/zabbix_server.conf

91 # DBHost=localhost????????????指定连接的数据库是本地还是远程,如果是远程,指定IP地址

100 DBName=Zabbix????????????????指定数据库的名称

116 DBUser=Zabbix????????????????指定用户名称

125 DBPassword=Zabbix????????????指定密码信息

15.3.4 创建数据库和用户

15.3.4.1 启动数据库

[root@zabbix-server ~] # systemctl start mariadb.service

15.3.4.2 创建数据库zabbix

[root@zabbix-server ~] # mysql -uzabbix -pzabbix

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 1884

Server version: 5.5.64-MariaDB MariaDB Server

?

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

?

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

?

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;????????????创建数据库

?

?

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix‘;????????创建数据库对用的用户

15.3.4.3 zabbix数据库信息导入到zabbix数据库

[root@zabbix-server ~] # zcat /usr/share/doc/zabbix-server-mysql-4.0.15/create.sql.gz|mysql -uzabbix -pzabbix zabbix

15.3.5 修改zabbix.conf里面的时区信息

[root@zabbix-server ~] # vim /etc/httpd/conf.d/zabbix.conf

20 php_value date.timezone Asia/Shanghai????????????修改时区为你创建zabbix所在的时区

15.3.6 重启zabbix服务和LNMP服务

[root@zabbix-server ~] # systemctl start zabbix-server.service httpd mariadb.service

[root@zabbix-server ~] # systemctl enable zabbix-server.service httpd mariadb.service

15.3.6.1 为什么没有启动php服务

15.3.7 登录web界面

15.3.7.1 输入10.0.0.71/Zabbix来登录web界面(Admin,zabbix)

技术分享图片

技术分享图片

15.3.7.2 修改背景颜色和语言

技术分享图片

技术分享图片

15.3.8 web界面的配置功能使用

技术分享图片

技术分享图片

15.3.8.1 这会添加监控的服务器发现172.16.1.7根本没有被监控的服务

【zabbix-agent服务的配置】

15.3.8.1.1 在客户端进行更新yum源

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

15.3.8.1.2 安装zabbix-agent服务

[root@web01 ~] # yum -y install zabbix-agent

15.3.8.1.3 修改配置文件

[root@web01 ~] # vim /etc/zabbix/zabbix_agentd.conf

98 Server=172.16.1.71????????????????????指定要哪台服务器可以进行监控我这台服务器

15.3.8.1.4 重启zabbix-agent服务

[root@web01 ~] # systemctl restart zabbix-agent.service

15.3.8.2 添加模板

技术分享图片

技术分享图片

15.3.8.3 查看服务端和客户端是否连接成功,可以开始监测了

技术分享图片

15.3.8.4 连接失败怎么解决(也就是zabbix不变绿或者变红了)

15.4 监控服务的应用过程(基础应用)

15.4.1 监控配置方法

15.4.1.1 本身系统设置好的

15.4.1.1.1 点击配置,在找主机,接着监控项

技术分享图片

15.4.1.1.2 发现有许多的过滤项

技术分享图片

15.4.1.1.3 点击其中一个应用集,选择下面要具体监控的项

技术分享图片

15.4.1.1.4 点击你选择的一个available memory,点击,会发现下图

技术分享图片

15.4.1.1.5 点击监测,在点击最新数据,选择你要找的主机和应用集

技术分享图片

15.4.1.1.6 图形监测,点击下面的图形

技术分享图片

15.4.1.2 自定义监控项

15.4.1.2.1 创建自定义监控项

技术分享图片

技术分享图片

15.4.1.2.2 创建监控项key值

[root@web01 ~] # vim /etc/zabbix/zabbix_agentd.conf

?

268 Include=/etc/zabbix/zabbix_agentd.d/*.conf

技术分享图片

[root@web01 zabbix_agentd.d] # cat user_count.conf

UserParameter=user.count,w | grep -c "pts"????????????????统计当前登录的用户

[root@zabbix-server ~] # yum -y install zabbix-get

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k user.count????????检测成功

1

15.4.1.2.3 点击检测,最新数据,选择你要检测的应用集

技术分享图片

15.4.1.2.4 在次登录一个用户

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k user.count

2

技术分享图片

15.4.2 实现tcp11种状态的监控

15.4.2.1 在客户端配置key

[root@web01 scripts] # cd /etc/zabbix/zabbix_agentd.d/

[root@web01 zabbix_agentd.d] # vim tcp_eleven_status.conf

UserParameter=tcp_eleven.status[*],netstat -an|grep -ic $1

15.4.2.2 在服务端测试key值配置是否正确(其他自己测试)

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k tcp_eleven.status[LISTEN]

83

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k tcp_eleven.status[ESTABLISHED]

4

15.4.2.3 web界面配置监控项(如果看不懂,请看我的监控配置方法章节的)

技术分享图片

15.4.2.4 查看最终监控的数据(同样看不懂看监控配置方法)

技术分享图片

15.4.3 触发器的设置

15.4.3.1 触发器的概念

触发器为了解决人为监控看数据,可以通过设定一个值来进行判断,当到达这个阈值的时候就会触发报警

15.4.3.2 配置触发器功能(自己定义键值监控nginx服务是否正常)

15.4.3.2.1 客户端编写脚本来判断nginx的状态

[root@web01 zabbix_agentd.d] # vim /server/scripts/monitor_web.sh

#!/bin/bash

netstat -lntup|grep -w 80 &>/dev/null

if [ $? -ne 0 ]

then

echo 0????????????????????如果返回状态不等于0,则返回0

else

echo 1????????????????????如果返回状态等于0,则返回1

fi

15.4.3.2.2 客户端配置触发功能

[root@web01 zabbix_agentd.d] # cd /etc/zabbix/zabbix_agentd.d/

[root@web01 zabbix_agentd.d] # cat server.conf

UserParameter=net.tcp.checkweb,/server/scripts/monitor_web.sh

[root@web01 zabbix_agentd.d] #

15.4.3.2.3 在服务端查看键值是否成功

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k net.tcp.checkweb

1????????????????????????????正常

You have new mail in /var/spool/mail/root

15.4.3.2.4 配置监控项

技术分享图片

15.4.3.2.5 查看监控数据

技术分享图片

15.4.3.2.6 再次更新监控项

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.3.2.7 再次查看最新的数据

技术分享图片

15.4.3.2.8 配置触发器

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.3.2.9 查看触发器是否正常

技术分享图片

[root@web01 zabbix_agentd.d] # systemctl stop nginx

You have new mail in /var/spool/mail/root

[root@web01 zabbix_agentd.d] #

技术分享图片

15.4.3.2.10 给触发器加入声音报警功能

技术分享图片

技术分享图片

如果不行,就需要清除下浏览器缓存在看下

15.4.3.2.11 更换报警声音

技术分享图片

技术分享图片

<option value="alarm_disaster.mp3" selected="selected">alarm_disaster</option>????????复制出来的内容

[root@zabbix-server ~] # cd /etc/httpd/conf.d/

You have new mail in /var/spool/mail/root

[root@zabbix-server conf.d] # vim zabbix.conf ????????????配置文件所在的目录

#

# Zabbix monitoring system php web frontend

#

?

Alias /zabbix /usr/share/zabbix

?

<Directory "/usr/share/zabbix">????????????????????????Zabbix所在的站点目录

Options FollowSymLinks

AllowOverride None

[root@zabbix-server conf.d] # find /usr/share/zabbix -name "alarm_disaster.mp3"????????????查找

/usr/share/zabbix/audio/alarm_disaster.mp3????????????????查找出来的结果

[root@zabbix-server conf.d] # cd /usr/share/zabbix/audio/????????切换到这个目录下

[root@zabbix-server audio] # ls

alarm_average.mp3 alarm_disaster.mp3 alarm_high.mp3 alarm_information.mp3 alarm_ok.mp3 alarm_warning.mp3 no_sound.mp3????????可以又很多音乐文件,将自己的音乐文件放进去,更换成你要换的名字即可

如果出现不会播放更换自己的音乐,你要自己清除下缓存即可

15.4.4 实现不同的方法来进行报警

15.4.4.1 为什么需要实现多种

15.4.4.2 邮件报警

15.4.4.2.1 配置报警媒介(你要选择那个来进行报警)

技术分享图片

技术分享图片

15.4.4.2.2 配置要发送给谁

技术分享图片

技术分享图片

15.4.4.2.3 发送什么内容,通过什么介质发送

技术分享图片

技术分享图片

技术分享图片

15.4.4.2.4 编写邮件脚本,放入服务端

[root@zabbix-server audio] # vim /etc/zabbix/zabbix_server.conf

508 ### Option: AlertScriptsPath

509 # Full path to location of custom alert scripts.

510 # Default depends on compilation options.

511 # To see the default path run command "zabbix_server --help".

512 #

513 # Mandatory: no

514 # Default:

515 # AlertScriptsPath=${datadir}/zabbix/alertscripts

516

517 AlertScriptsPath=/usr/lib/zabbix/alertscripts????????????????存放脚本的路径

技术分享图片

[root@zabbix-server alertscripts] # cat mail_163.py

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mime.text import MIMEText

import sys

mail_user = ‘460523471@qq.com‘????????????????指定你设置的邮箱

mail_pass = ‘enoncgdkvjhlbjbd‘ ????????????????你的验证密码

?

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.qq.com", 25) ????这儿你的smtp服务器是qq就写qq,是其他就写其他

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])

You have new mail in /var/spool/mail/root

技术分享图片

15.4.4.2.5 邮件测试

[root@web01 zabbix_agentd.d] # systemctl stop nginx

[root@web01 zabbix_agentd.d] #

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.4.3 微信报警

15.4.4.3.1 配置报警媒介(你要选择那个来进行报警)

技术分享图片

技术分享图片

15.4.4.3.2 配置企业微信

https://work.weixin.qq.com/wework_admin/loginpage_wx--------登陆进去,注册登陆

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.4.3.3 配置linux界面weixin脚本

技术分享图片

[root@zabbix-server alertscripts] # cat ~/.pip/pip.conf

[global]

index-url = https://mirrors.aliyun.com/pypi/simple/

?

[install]

trusted-host=mirrors.aliyun.com

You have new mail in /var/spool/mail/root

[root@zabbix-server alertscripts] #

[root@zabbix-server alertscripts] # cat weixin.py

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#author: yanggd

#date: 2018-04-20

#comment: zabbix接入微信报警脚本

?

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=‘ww3ff5e031e93d32d9‘????????????????????写成自己的企业ID

appsecret=‘qG_KF_Ot2yUnevM0K3b8PaoOC7zqZT3IZwx_o9JeHcc‘????????????写成自己的secury

agentid=1000002????????????????????????????写成自己的AgentID

#获取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)

[root@zabbix-server alertscripts] # ./weixin.py LiangYuXing test_info "we check nginx"

技术分享图片

技术分享图片

技术分享图片

15.4.4.3.4 配置web界面,实现可以微信接收信息

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

[root@web01 zabbix_agentd.d] # systemctl stop nginx

?

技术分享图片

技术分享图片

技术分享图片

`15.4.4.4 电话或者短信报警

15.4.4.4.1 睿象云平台设置

https://user.aiops.com/pages/v2/login?from=oneacaoptcmfhaot--------登录注册

技术分享图片

技术分享图片

技术分享图片

15.4.4.4.2 安装Agent

[root@zabbix-server ~] # cd /usr/lib/zabbix/alertscripts/

[root@zabbix-server alertscripts] # wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-2.1.0.tar.gz

[root@zabbix-server alertscripts] # tar -xzf ca_zabbix_release-2.1.0.tar.gz

[root@zabbix-server alertscripts] #

[root@zabbix-server alertscripts] # cd cloudalert/bin

技术分享图片

[root@zabbix-server bin] # bash install.sh 72f622ad-9b2c-76ea-41c9-3c5de8be95e5

start to create config file...

Zabbix管理地址: http://10.0.0.71/zabbix/????????????zabbix的登录地址,不需要加index.php

Zabbix管理员账号: Admin

Zabbix管理员密码(zabbix)????????????????????上面默认不显示

15.4.4.4.3 zabbixweb界面查看

技术分享图片

技术分享图片

技术分享图片

15.4.4.4.4 睿象云配置电话或者短信给谁打或者发送

技术分享图片

技术分享图片

15.4.4.4.5 查看是否电话可以通知

[root@web01 ~] # systemctl stop nginx

[root@web01 ~] #

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.5 监控图形的显示

15.4.5.1 系统自带的监控图形

技术分享图片

15.4.5.2 自定义图形

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.5.3 图形字符集的优化

15.4.5.3.1 现在的图形文字显示

技术分享图片

15.4.5.3.2 查找存放字符集的目录

技术分享图片

15.4.5.3.3 切换到站点目录

[root@zabbix-server fonts] # cd /usr/share/zabbix/assets/fonts

[root@zabbix-server fonts] # ll

15.4.5.3.4 将windows电脑上面的字符集放入到linux服务器上面

技术分享图片

[root@zabbix-server fonts] # mv graphfont.ttf graphfont.ttf_backup

[root@zabbix-server fonts] # mv msyh.ttc graphfont.ttf

[root@zabbix-server fonts] # ls

graphfont.ttf graphfont.ttf_backup

[root@zabbix-server fonts] #

15.4.5.3.5 再次查看文字

技术分享图片

15.4.5.4 使用grafana结合zabbix来设置图形

15.4.5.4.1 下载grafana

官方网址链接: https://grafana.com/

技术分享图片

技术分享图片

告示:只是告诉你们,具体我这里有下载地址

15.4.5.4.2 开始下载

[root@zabbix-server fonts] # wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-6.5.1-1.x86_64.rpm

15.4.5.4.3 本地rpm包安装

[root@zabbix-server fonts] # yum localinstall -y grafana-6.5.1-1.x86_64.rpm

15.4.5.4.4 启动grafana

[root@zabbix-server ~] # systemctl restart grafana-server.service

[root@zabbix-server ~] # systemctl enable grafana-server.service

Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.

[root@zabbix-server ~] #

15.4.5.4.5 web界面登录

技术分享图片

账号:admin 密码:admin

技术分享图片

15.4.5.4.6 下载zabbix和grafana结合的zabbix插件(一)

[root@zabbix-server ~] # grafana-cli plugins list-remote | grep zabbix

id: alexanderzobnin-zabbix-app version: 3.10.4

You have new mail in /var/spool/mail/root

[root@zabbix-server ~] #

https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.10.4/download

[root@zabbix-server ~] # mkdir -p /var/lib/grafana/plugins

技术分享图片

[root@zabbix-server plugins] # unzip grafana_zabbix插件.zip

技术分享图片

[root@zabbix-server ~] # systemctl restart grafana-server.service

[root@zabbix-server ~] #

  1. 通过grafana-cli plugins install来安装

[root@zabbix-server ~] # grafana-cli plugins list-remote | grep zabbix

id: alexanderzobnin-zabbix-app version: 3.10.4

You have new mail in /var/spool/mail/root

[root@zabbix-server ~] #

[root@zabbix-server ~] # grafana-cli plugins install alexanderzobnin-zabbix-app

[root@zabbix-server ~] # systemctl restart grafana-server.service

[root@zabbix-server ~] #

15.4.5.4.8 再次打开web界面

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

  1. zabbix模板的介绍

15.4.6.1 为什么需要监控模板

配置监控模板,可以少很多重复的工作,可以提高工作效率

15.4.6.2 怎么配置模板

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.6.3 怎么能借鉴别人的模板里面的内容变成自己的内容

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.7 zabbix自动发现主机(网络发现)

15.4.7.1 还原最初始的状态

技术分享图片

15.4.7.2 点击配置自动发现

技术分享图片

技术分享图片

技术分享图片

技术分享图片

15.4.7.3 点击配置,然后选择动作

技术分享图片

技术分享图片

15.4.7.4 测试是否可以自动发现(监测-自动发现)

技术分享图片

  1. 查看服务端日志信息(tail -f /var/log/zabbix/zabbix_server.log)
  2. 服务端日志没报错的情况,可以重启服务端看下

15.4.8 监控维度信息

15.4.8.1 面试:你了解监控吗? 你们公司是如何实现监控的?

15.4.8.1.1 硬件监控
15.4.8.1.2 系统监控
15.4.8.1.3 服务监控
15.4.8.1.4 网站监控
15.4.8.1.5 日志监控
15.4.8.1.6 安全监控
15.4.8.1.7 网络监控
15.4.8.1.8 业务监控

原文:https://www.cnblogs.com/liangyuxing/p/12002152.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!