监控及zabbix

目录:

1       监控分类... 1

1.1        硬件监控... 1

1.2        系统监控... 2

1.3        网络监控... 3

1.4        应用(业务)监控... 3

2       安装zabbix. 3

2.1        安装zabbix服务端... 3

2.2        安装zibbix客户端... 9

2.3        添加zabbix主机组和主机... 9

2.4        创建用户和组... 11

2.5        添加项目及触发器... 13

2.6        设置报警... 16

2.7        自定义模板... 19

2.8        web监控... 20

2.9        分布式监控、客户端主动模式... 21

2.9.1         客户端被动模式... 21

2.9.2         客户端主动模式... 21

2.9.3         zabbix分布式... 22

2.10          自动化监控... 23

2.10.1       zabbix-agent自动注册(使用proxy)... 23

2.10.2       主机探索(不使用proxy,被动模式)... 24

2.10.3       使用zabbix-api 25

2.11      更改中文字体防止乱码... 28

1         监控分类

1.1    硬件监控

1、机房巡检。检查服务器各种状态。

2、通过远程控制卡监控。ipmi是一种标注。

ipmi获取不到硬盘状态,比如硬盘坏了,硬盘可以用MegaCli工具。

ipmi简介:http://www.ibm.com/developerworks/cn/linux/l-ipmi/

yum install OpenIPMI ipmitool -y
[root@centos67 ~]# /etc/init.d/ipmi start

1.2    系统监控

1、了解监控对象

2、知道性能的基准线。

cpu监控

cpu调度器

上下文切换

运行队列

cpu使用率

[root@c67-7 ~]# cat /proc/cpuinfo 

[root@c67-7 ~]# lscpu

[root@c67-7 ~]# uptime  #一般情况小于等于3就是正常

[root@c67-7 ~]# rpm -qa |grep sysstat

sysstat-9.0.4-27.el6.x86_64

[root@c67-7 ~]# vmstat 1

[root@c67-7 ~]# mpstat 1

Linux 2.6.32-573.el6.x86_64 (c67-7)     2015年10月24日  _x86_64_        (1 CPU)

11时24分37秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle

11时24分38秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

11时24分39秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

用户态(程序运行) 内核态(系统调用,如vi打开文件) 正常比例是70%:30%

计算类的服务吃cpu,数据库占IO

内存

[root@c67-7 ~]# free -m

             total       used       free     shared    buffers     cached

Mem:           992        580        411          0         46        441

-/+ buffers/cache:         92        900

Swap:         1023          0       1023

buffer:写入缓冲区

cache:读出缓存区

硬盘

[root@c67-7 ~]# yum install iotop  -y

iotop

网络io

[root@c67-7 ~]# yum install iftop -y

iftop

nmon可以监控以上所有东西。

1.3    网络监控

第三方监控宝等。

使用smokeping监控网络状态,如下图:

1.4    应用(业务)监控

使用pwiki监控业务状态

apache监控:通过mod_status模块

http://www.t086.com/code/apache2.2/mod/mod_status.html

nginx监控:类似于apache

memcached监控 使用nc获取状态

redis监控

2 安装zabbix

2.1    安装zabbix服务端

官方文档参考

https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

1、安装zabbix-release

[root@linux-node1 ~]# mkdir -p /home/lxy/tools

[root@linux-node1 ~]# cd /home/lxy/tools/

[root@linux-node1 tools]# wget -q http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

 [root@linux-node1 tools]# rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

warning: zabbix-release-2.4-1.el6.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY

Preparing...                ########################################### [100%]

   1:zabbix-release         ########################################### [100%]

[root@linux-node1 tools]# rpm -ql zabbix-release

/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

/etc/yum.repos.d/zabbix.repo

/usr/share/doc/zabbix-release-2.4

/usr/share/doc/zabbix-release-2.4/GPL

[root@linux-node1 tools]# ll /etc/yum.repos.d/zabbix.repo

-rw-r--r-- 1 root root 401 9月  11 2014 /etc/yum.repos.d/zabbix.repo

2.开始安装zabbix

1)保留yum安装的rpm包

[root@linux-node1 tools]# sed -i 's#keepcache=1#keepcache=0#g' /etc/yum.conf

[root@linux-node1 tools]# grep keepcache /etc/yum.conf

keepcache=0

2)开始安装zabbix

yum -y install zabbix zabbix-server zabbix-server-mysql #<==ZABBIX SERVER相关

yum -y install zabbix-web zabbix-web-mysql #<==Apache、Php Web界面环境

yum -y install zabbix-agent #<== ZABBIX客户端

yum -y install mysql-server mysql #<==MySQL客户端与服务端

3、配置zabbix服务相关

1)配置mysql

[root@linux-node1 tools]# \cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

[root@linux-node1 tools]# vim /etc/my.cnf

在[mysqld](第26行)标签下增加如下三行后保存

[mysqld]

character-set-server = utf8
init-connect = 'SET NAMES utf8'
collation-server = utf8_general_ci

[root@linux-node1 tools]# /etc/init.d/mysqld start

2)初始化数据库环境

创建数据库

mysql> create database zabbix character set utf8 collate utf8_bin;

Query OK, 1 row affected (0.00 sec)

授权数据库

mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

导入表结构

[root@linux-node1 tools]# cd /usr/share/doc/zabbix-server-mysql-2.4.6/create/

[root@linux-node1 create]#  mysql -u root -p zabbix < schema.sql

[root@linux-node1 create]# mysql -u root -p zabbix < images.sql

[root@linux-node1 create]#  mysql -u root -p zabbix < data.sql

[root@linux-node1 create]# mysqladmin -uroot password 123456

3)设置apache时区

sed -i 's#\# php_value date.timezone Europe/Riga#php_value date.timezone Asia/Shanghai#g' /etc/httpd/conf.d/zabbix.conf

grep Shanghai /etc/httpd/conf.d/zabbix.conf

    php_value date.timezone Asia/Shanghai

4)更改zabbix server配置

[root@linux-node1 ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak

[root@linux-node1 ~]# sed -i 's@# DBPassword=@DBPassword=zabbix@g' /etc/zabbix/zabbix_server.conf

[root@linux-node1 ~]# sed -i 's@# DBHost=localhost@DBHost=localhost@g' /etc/zabbix/zabbix_server.conf

-------------------------------------------------

vim /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

5)启动相关服务

[root@linux-node1 ~]# /etc/init.d/zabbix-server start

Starting Zabbix server:                                    [确定]

[root@linux-node1 ~]# /etc/init.d/httpd start

正在启动 httpd:                                           [确定]

[root@linux-node1 ~]# lsof -i:10051|wc -l

55

[root@linux-node1 ~]# lsof -i:80|wc -l    

1

0

 

4、web界面安装

上面的图形操作就是创建了一个配置文件,然后如果写错就可以去配置文件改

登录Admin/zabbix

进入后改密码

2.2    安装zibbix客户端

服务端也安装

rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm yum install zabbix-agent -y

vim /etc/zabbix/zabbix_agentd.conf

81 Server= 10.0.0.7 (服务端ip)

grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server= 10.0.0.7  (服务端ip)

ServerActive=127.0.0.1  (服务端ip)

Hostname=Zabbix server

/etc/init.d/zabbix-agentd start

2.3    添加zabbix主机组和主机

添加组

添加主机

2.4    创建用户和组

zabbix报警是针对用户和用户组的。

创建用户(不要急着存档)

报警媒介先不填,因为默认的媒介不好用,需要手动添加,一会添加。

添加完,可以使用新用户登录

2.5    添加项目及触发器

1、客户端添加一个检查用户的key,格式为key,命令

grep UserParameter /etc/zabbix/zabbix_agentd.conf

UserParameter=login-user,uptime | awk -F ' ' '{print $4}'

/etc/init.d/zabbix-agent restart

2、主机通过zabbix-get检查

yum install zabbix-get -y

zabbix-get  -s 客户主机  -k  命令

[root@linux-node1 ~]# zabbix_get -s 10.0.0.8 -k login-user

login-user  获取登录用户的列表

3、web界面添加

主机界面选定主机,然后点击项目,点创建项目

4、添加触发器

此处点添加,然后选择主机

5、创建图形

2.6    设置报警

1、设置动作

自定义报警类型

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

435 AlertScriptsPath=/usr/lib/zabbix/alertscripts   ##<<设置自定义脚本的路径

[root@linux-node1 alertscripts]# /etc/init.d/zabbix-server restart

之后写相应脚本

脚本要支持三个参数

$1:用户的介质,如邮箱,手机号等

$2:标题

$3:内容

[root@linux-node1 alertscripts]# cat login.sh

#!/bin/bash

MAIL_TITEL=$2

MAIL_CON=$3

echo "$MAIL_CON"|/bin/mail -s "$MAIL_TITEL" $1

echo "$1 $2 $3">>/tmp/login_zabbix.txt

添加媒介类型

在动作中设置

为用户配置示警媒介

2.7    自定义模板

创建模板----模板中创建应用集----创建监控项-创建触发器-画图等都搞进模板。

最后主机添加模板

注意点,使用老师的模板脚本,另外添加多个类似模板点克隆再改

[root@lb-node2 zabbix]# cat zabbix_agentd.conf.d/zabbix-linux-plugin.conf
UserParameter=linux_status[*],/etc/zabbix/zabbix_linux_plugin.sh "$1" "$2" "$3"  #写在/etc/zabbix/zabbix_agentd.conf中

2.8    web监控

web监控是针对主机的,别忘了触发器

2.9    分布式监控、客户端主动模式

2.9.1            客户端被动模式

grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

StartAgents=3

Server= 10.0.0.7

ServerActive=127.0.0.1

Hostname=Zabbix server

2.9.2            客户端主动模式

[root@linux-node2 ~]# grep  '^[a-Z]' /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
StartAgents=0
ServerActive=10.0.0.7
Hostname=linux-node2.example.com
Include=/etc/zabbix/zabbix_agentd.d/

[root@linux-node2 ~]# /etc/init.d/zabbix-agent restart

服务端克隆模板,把模板里项目全选,批量更新,项目类型改为主动方式

然后主机添加项目即可。

#克隆linux OS模板,注意更改连接,连接也是克隆的。

2.9.3            zabbix分布式

使用内网yum源

echo '192.168.0.200 mirrors.aliyun.com repo.zabbix.com' >>/etc/hosts

客户端安装zabbix-proxy

[root@linux-node2 ~]# yum install -y zabbix-proxy zabbix-proxy-mysql mysql-server

配置分布式

[root@linux-node2 ~]# rpm -ql zabbix-agent

/etc/init.d/zabbix-agent

/etc/logrotate.d/zabbix-agent

/etc/zabbix/zabbix_agentd.conf

/etc/zabbix/zabbix_agentd.d

/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

/usr/sbin/zabbix_agent

/usr/sbin/zabbix_agentd

/usr/share/doc/zabbix-agent-2.4.6

/usr/share/doc/zabbix-agent-2.4.6/userparameter_examples.conf

/usr/share/doc/zabbix-agent-2.4.6/zabbix_agent.conf

/usr/share/man/man8/zabbix_agentd.8.gz

[root@linux-node2 ~]# rpm -ql zabbix-proxy-mysql

/usr/sbin/zabbix_proxy_mysql

/usr/share/doc/zabbix-proxy-mysql-2.4.6

/usr/share/doc/zabbix-proxy-mysql-2.4.6/create

/usr/share/doc/zabbix-proxy-mysql-2.4.6/create/schema.sql

数据库配置

[root@linux-node2 ~]# /etc/init.d/mysql start

mysql> create database zabbix_proxy character set utf8;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';

Query OK, 0 rows affected (0.00 sec)

mysql> use zabbix_proxy

Database changed

mysql> source /usr/share/doc/zabbix-proxy-mysql-2.4.6/create/schema.sql;

Query OK, 0 rows affected (0.02 sec)

配置文件配置

[root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf

ProxyMode=0   #0主动,1被动

Server=10.0.0.7   #主动模式设置

Hostname=proxy-node1  #必须改

LogFile=/var/log/zabbix/zabbix_proxy.log

LogFileSize=0

PidFile=/var/run/zabbix/zabbix_proxy.pid

DBName=zabbix_proxy

DBUser=zabbix

DBPassword=zabbix

DBSocket=/var/lib/mysql/mysql.sock

ExternalScripts=/usr/lib/zabbix/externalscripts

[root@linux-node2 ~]# /etc/init.d/zabbix-proxy start

Starting Zabbix proxy:                                     [确定]

[root@linux-node2 ~]# lsof -i:10051

配置界面,管理-分布式(代理)-创建代理-

之后添加主机(选上代理即可),要监控的机器agent配置文件ip改成代理的ip

服务多重启几次,先stop再start

2.10              自动化监控

2.10.1        zabbix-agent自动注册(使用proxy)

HostMetadataItem=system.uname

[root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

StartAgents=0

ServerActive=10.0.0.8  #这里用了代理的ip

Hostname=linux-node2.example.com

HostMetadataItem=system.uname

Include=/etc/zabbix/zabbix_agentd.d/

配置-动作-事件源选择自动注册-创建动作

2.10.2        主机探索(不使用proxy,被动模式)

组态-探索--使用默认的就行,如下,

之后创建动作,事件源选探索,上面那个是自动注册

然后剩下同上了

2.10.3        使用zabbix-api

https://www.zabbix.com/documentation/2.4/manual/api/reference

[root@linux-node1 ~]# /usr/share/zabbix/api_jsonrpc.php

获取验证

[root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '

{

"jsonrpc": "2.0",

"method": "user.login",

"params": {

"user": "Admin",

"password": "123456"

},

"id": 1

}' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

---------上面为输入--下面为输出-----

{

"id": 1,

"jsonrpc": "2.0",

"result": "6981d2f7663ac35b553ce7e4477f7f29"

}

-------

请求api,获取监控主机,带上SessionID

[root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '

{

"jsonrpc": "2.0",

"method": "host.get",

"params": {

"output": ["hostid"]

},

"auth": "6981d2f7663ac35b553ce7e4477f7f29",

"id": 2

}' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

------上面为输入,下面为输出----------

{

"id": 2,

"jsonrpc": "2.0",

"result": [

{

"hostid": "10084"

},

{

"hostid": "10115"

}

]

}

剩下看官网吧,官网提供各种方法。

https://www.zabbix.com/documentation/2.4/manual/api/reference/host/get

例子:创建主机,执行下面直接添加。

curl -s -X POST -H 'Content-Type:application/json' -d '

{

"jsonrpc": "2.0",

"method": "host.create",

"params": {

"host": "Linux server",

"interfaces": [

{

"type": 1,

"main": 1,

"useip": 1,

"ip": "10.0.0.8",

"dns": "",

"port": "10050"

}

],

"groups": [

{

"groupid": "2"

}

],

"templates": [

{

"templateid": "10001"

}

],

},

"auth": "9d670026e562405100a1a073231e7658",

"id": 1

}' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

2.11              更改中文字体防止乱码

讲自己电脑的字体微软雅黑上传到linix上

[root@lvs1 fonts]# pwd   ##2.2版本

/var/www/html/fonts

[root@lvs1 fonts]# mv DejaVuSans.ttf DejaVuSans1.ttf

[root@lvs1 fonts]# mv  msyh.ttf DejaVuSans.ttf

[root@lvs1 fonts]# ll

总用量 21988

-rw-r--r-- 1 apache apache   741536 4月  22 15:56 DejaVuSans1.ttf

-rw-r--r-- 1 root   root   21767952 6月  11 2009 DejaVuSans.ttf

[root@lvs1 fonts]# chown apache.apache DejaVuSans.ttf

或者直接更改系统的

/usr/share/fonts/dejavu/DejaVuSans.ttf

另外不同版本zabbix字体位置不一样,名字也不一样,下面是本文档的版本

[root@linux-node1 dejavu]# find / -type d -name "fonts"

/var/www/html/fonts

/etc/fonts

/usr/share/zabbix/fonts

/usr/share/fonts

zabbix监控超详细搭建过程(转)的更多相关文章

  1. zabbix监控超详细搭建过程

    监控及zabbix 目录: 1       监控分类... 1 1.1        硬件监控... 1 1.2        系统监控... 2 1.3        网络监控... 3 1.4   ...

  2. Hexo的详细搭建过程——小白的血泪经历QAQ

    Hexo的详细搭建过程 环境要求: node.js git 这里提供Centos8.2下的安装过程: dnf module list nodejs dnf module install nodejs: ...

  3. 原:maven+springMVC+mybatis+junit详细搭建过程

    阅读目录 1.  工程目录结构整理清楚 2.  引入依赖包 3. 配置数据库连接属性 4.  配置spring配置文件 5.  java代码编写(model,dao,service层代码) 6.  m ...

  4. maven+springMVC+mybatis+junit详细搭建过程 ***

    springMVC+mybatis框架搭建 在上一遍博客中以及讲诉了新建maven项目的流程,现在紧跟上一遍文章,接着搭建spring项目 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什 ...

  5. OpenStack Pike超详细搭建文档 LinuxBridge版

    前言 搭建前必须看我 本文档搭建的是分布式P版openstack(1 controller + N compute + 1 cinder)的文档. openstack版本为Pike. 搭建的时候,请严 ...

  6. OpenStack Ocata 超详细搭建文档

    前言 搭建前必须看我本文档搭建的是分布式O版openstack(controller+ N compute + 1 cinder)的文档.openstack版本为Ocata.搭建的时候,请严格按照文档 ...

  7. centos超详细搭建jumpserver跳板机

    一.官网 https://docs.jumpserver.org/zh/master/  二.一站式.分布式安装文档  三.选择最新版 四.在线安装文档 五.按文档部署(4G.二核.50G硬盘)  六 ...

  8. zabbix 监控报警详细邮件内容

    AlarmHost:{HOSTNAME1} AlarmTime:{EVENT.DATE} {EVENT.TIME} AlarmLevel:{TRIGGER.SEVERITY} AlarmMessige ...

  9. 搭建zabbix监控系统详解

    搭建zabbix监控系统详解 文:warren   博文大纲:一.前言 二.zabbix监控架构三.搭建Zabbix监控服务器四.搭建过程中遇到有些服务无法正常启动的解决办法 一.前言 : 要想实时的 ...

随机推荐

  1. PAT 1080. Graduate Admission

    It is said that in 2013, there were about 100 graduate schools ready to proceed over 40,000 applicat ...

  2. python 用PIL Matplotlib处理图像的基本操作

    在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...

  3. Python 设置字体样式

    # 1.先导入分别可指定单元格字体相关,颜色,和对齐方式的类 from openpyxl.styles import Font, colors, Alignment # 2.配置字体格式为:样式(Ti ...

  4. 【hihocoder 1297】数论四·扩展欧几里德

    [题目链接]:http://hihocoder.com/problemset/problem/1297 [题意] [题解] 问题可以转化为数学问题 即(s1+v1*t)%m == (s2+v2*t)% ...

  5. (10)Spring Boot修改端口号【从零开始学Spring Boot】

    Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port=9090 常用配置: #### ...

  6. ExtJs之Ext.view.View

    要注意MODEL的定义和实例化的代码,注释掉的是老式的不兼容4.0以上的.而下面的定义才是新推荐的. 我网上可是查的了.是书上的代码老了. <!DOCTYPE html> <html ...

  7. HDU 4528

    一直在纠结怎么样表示找到了人,,,开始时竟灰笨得设两个BOOL.后来参考别人的可以使用二进制位. 另外,此处有一个剪枝就是,就到达该点之后的状态的found(即找到人的状态)在之前已出现过,可以剪去. ...

  8. Spring技术内幕:SpringIOC原理学习总结

    前一段时候我把Spring技术内幕的关于IOC原理一章看完,感觉代码太多,不好掌握,我特意又各方搜集了一些关于IOC原理的资料,特加深一下印象,以便真正掌握IOC的原理. IOC的思想是:Spring ...

  9. 车牌识别(end-to-end-for-chinese-plate-recognition)项目搭建基于Mxnet(Python 3.5)

    最近看到geihub上有个车牌识别的项目,感觉很有意思,从上面fork了一下弄到本地自己跑了下.在安装过程中遇到了一些问题,记录如下. 项目github连接:https://github.com/sz ...

  10. Bone Collector(hdoj--2602--01背包)

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...