zabbix 、高可用(part1)

(第十八周作业)

1、搭建zabbix服务,实现监控linux和windows的内存,cpu,磁盘,网络等基础指标

1)安装zabbix服务端,zabbix  服务端IP为192.168.184.130
安装apache
# yum -y install httpd  php  php-fpm  php-mysql  httpd-manual mod_ssl mod_perl mod_auth_mysql
安装php扩展包
# yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel
安装Mysql扩展包
# yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
安装依赖包
# yum install -y net-snmp-devel libevent-devel
下载zabbix
# cd /usr/src/
# wget  https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.25/zabbix-3.0.25.tar.gz
#tar xf zabbix-3.0.25.tar.gz
配置zabbix用户和组
# groupadd -r zabbix
# useradd -r -g zabbix -M -s /sbin/nologin zabbix
安装数据库
# yum install  mariadb-server  mariadb  -y
# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges  on  zabbix.* to zabbix@localhost identified  by  'zabbixpasswd';
mysql> grant all privileges  on  zabbix.* to zabbix@127.0.0.1  identified  by  'zabbixpasswd';
mysql> flush privileges;
mysql> quit
# cd /usr/src/zabbix-3.0.25/database/mysql/
# mysql -uzabbix -pzabbixpasswd zabbix < schema.sql
# mysql -uzabbix -pzabbixpasswd zabbix < images.sql
# mysql -uzabbix -pzabbixpasswd zabbix < data.sql
编译安装zabbix
# cd /usr/src/zabbix-3.0.25
# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
# make && make install
修改服务端配置文件 设置数据库信息
#  vim /usr/local/etc/zabbix_server.conf

DBPassword=zabbixpasswd          #数据库连接密码

启动zabbix_server和zabbix_agentd
# zabbix_server
# zabbix_agentd
修改/etc/php.ini的配置
# vi  /etc/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai

# service php-fpm restart
# mkdir -p  /usr/local/apache/htdocs/zabbix
#cp -a frontends/php/* /usr/local/apache/htdocs/zabbix/
配置apache虚拟主机
# vim /etc/httpd.conf
在配置文件的末尾加入下内容

<VirtualHost *:80>
         DocumentRoot "/usr/local/apache/htdocs/zabbix"
        ServerName 192.168.184.130
        ProxyRequests Off
         ProxyPassMatch   ^/(.*\.php)$   fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
        <Directory "/usr/local/apache/htdocs/zabbix">
                Options none
                AllowOverride none
                Require all granted
       </Directory>
</VirtualHost>

设置zabbix/conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
# chmod     777     /usr/local/apache/htdocs/zabbix/conf
重启apache
# apachectl stop
# apachectl start 
禁用Selinux以及禁用防火墙
# systemctl disable firewalld
#systemctl stop firewalld
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
安装zabbix web 界面,打开本地浏览器http://192.168.184.130/zabbix
在php依赖检查都通过,配置数据库连接信息,(这里就不截图
zabbix默认登入用户和密码:Admin   zabblix 
恢复zabbix/conf目录的权限为755
#chmod 755 /usr/local/apache/htdocs/zabbix/conf
2)Linux 安装zabbix客户端,客户端IP为192.168.184.131
安装zabbix客户端软件
# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
#yum install zabbix_agent
修改配置文件
# vi /etc/zabbix/zabbix_agentd.conf 

PidFile=/var/run/zabbix/zabbix_agentd.pid         # agent pid 的运行目录
LogFile=/var/log/zabbix/zabbix_agentd.log        # agent 运行日志目录
Server=192.168.184.130                                   # 被动模式服务器地址
ServerActive=192.168.184.130:10051                # 主动模式服务器地址
Hostname=192.168.184.131                                # 客户端主机名或 IP 地址

禁用Selinux以及禁用防火墙
# systemctl disable firewalld
#systemctl stop firewalld
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
启动Zabbix agent,并配置开机自启
#  systemctl start zabbix-agent
#  systemctl enable zabbix-agent
在zabbix页面上设置被监控客户端,上方的导航栏,选择:“Configuration"-->"Hosts",再点右上角的“Create hosts”按钮。
    在Host页面的host选项卡:
        Hostname写入客户端IP,Groups栏目点旁边的“select"按钮来选择”Linux Servers“,
        Agent interfaces 栏目的IP address写客户端地址
        Enabled要打勾
    在Host页面的Templates选项卡:
        点Link new templates栏目右边的”select"按钮,选择“Template OS Linux“,要记得点一下”Add“链接,这样才会添加到Linked templates,然后再点update
然后回到Host页面,可以看到刚才配置的主机名称,等待Availability列的”ZBX“变成绿色。
在zabbix页面上设置监控页面,上方的导航栏,选择
“Monitoring"-->"Screens",再点"Create screen"按钮,
输入Name,给这个监控页面起名,这里输入“Linux131",保存
点击“Linux131”,点右上角的"Edit Screen"按钮,可以编辑监控页面。
点"+"/"-"按钮可以增加或减少相应位置的行和列。
点"change"链接,显示图形选择页面,在Graph栏目中点右边的"Select"按钮,选择相应的项目。
这里要依次添加以下监控图形:
CPU load:CPU负载
CPU utilization:CPU使用率
Disk space usage/:显示/文件系统的使用图
Memory usage:内存
Network traffic on eno16777736:网卡
最后Screen如下图所示:


3)Windows安装zabbix客户端,客户端IP为192.168.184.132
下载用于windows的zabbix客户端  https://assets.zabbix.com/downloads/3.0.25/zabbix_agents-3.0.25-win-amd64.zip
解压下载到的文件:zabbix_agents-3.0.25-win-amd64.zip
修改解压目录D:\conf\zabbix_agentd.win.conf

LogFile=D:\Zabbix\zabbix_agentd.log
Server=192.168.184.130  
ServerActive=192.168.184.100:10051
Hostname= 192.168.184.132

打开dos窗口
cd  d:\Zabbix\bin
-i参数为安装指令,-c参数为执行配置文件的目
zabbix_agentd.exe -i -c "D:\Zabbix\conf\zabbix_agentd.win.conf"
-s为启动Zabbix agent服务
zabbix_agentd.exe -s
在zabbix页面上设置被监控客户端,上方的导航栏,选择:“Configuration"-->"Hosts",再点右上角的“Create hosts”按钮。
    在Host页面的host选项卡:
        Hostname写入客户端IP,Groups栏目点旁边的“select"按钮来选择”Templates/Operating systems“,
        Agent interfaces 栏目的IP address写客户端地址
        Enabled要打勾
    在Host页面的Templates选项卡:
        点Link new templates栏目右边的”select"按钮,选择“Template OS Windows",要记得点一下”Add“链接,这样才会添加到Linked templates,然后再点update
然后回到Host页面,可以看到刚才配置的主机名称,等待Availability列的”ZBX“变成绿色。但是Item这列显示22个记录,点进去看不到磁盘和网络。所以回到Windows上面。修改D:\conf\zabbix_agentd.win.conf,找到“PerfCounter”段,通过查看这段的帮助信息,增加以下几行:

PerfCounter = interrupts,"\Processor(0)\Interrupts/sec",60
PerfCounter = Net_Incoming,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Received/sec",30
PerfCounter = Net_Outgoing,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Sent/sec",30

重启服务管理器中的zabbix agent服务。再回到zabbix页面上,发现item数量大量增加到112,点进去看到磁盘和网络的数据项。
在zabbix页面上设置监控页面,上方的导航栏,选择
“Monitoring"-->"Screens",再点"Create screen"按钮,
输入Name,给这个监控页面起名,这里输入“Windows132",保存
点击“Windows132”,点右上角的"Edit Screen"按钮,可以编辑监控页面。
点"+"/"-"按钮可以增加或减少相应位置的行和列。
点"change"链接,显示图形选择页面,在Graph栏目中点右边的"Select"按钮,选择相应的项目。
这里要依次添加以下监控图形:
CPU load :CPU负载
Memory usage :内存使用情况
Disk space usage C: C盘使用情况
Network traffic on Intel(R) PRO/1000 MT Network Connection: 网络流量
最后Screen如下图所示:

2、搭建zabbix服务,监控nginx status

在客户端机上假设已完装了nginx,它的IP是192.168.184.131
修改nginx配置文件
vi  /usr/local/nginx/conf/nginx.conf

……
server {

        listen      80;
……

         location /nginx-status {

                stub_status on;

                access_log off;

                allow 127.0.0.1;

                deny all;

        }

}

……

保存配置文件重启nginx.编写nginx状态查询脚本
# vi  /usr/local/nginx/nginx-status.sh

#!/bin/bash

UrlStr="http://127.0.0.1/nginx-status"

function active(){

curl $UrlStr 2>/dev/null |grep "Active"|awk '{print $NF}'

}

function accepts(){

        curl $UrlStr 2>/dev/null|awk NR==3 |awk '{print $1}'

}

function handled(){

        curl $UrlStr 2>/dev/null|awk NR==3 |awk '{print $2}'

}

function requests()

{

        curl $UrlStr 2>/dev/null|awk NR==3 |awk '{print $3}'

}

function reading(){

        curl $UrlStr 2>/dev/null|grep "Reading"|awk '{print $2}'

}

function writing(){

        curl $UrlStr 2>/dev/null|grep "Writing"|awk '{print $4}'

}

function waiting(){

        curl $UrlStr 2>/dev/null|grep "Waiting"|awk '{print $6}'

}

$1

修改zabbix客户端配置文件,
# vi  /etc/zabbix/zabbix_agentd.conf 
增加以下几行:

UserParameter=nginx.active , sh  /usr/local/nginx/nginx-status.sh active
UserParameter=nginx.accepts, sh  /usr/local/nginx/nginx-status.sh accepts
UserParameter=nginx.handled, sh  /usr/local/nginx/nginx-status.sh handled
UserParameter=nginx.requests, sh  /usr/local/nginx/nginx-status.sh requests
UserParameter=nginx.reading, sh  /usr/local/nginx/nginx-status.sh reading
UserParameter=nginx.writing, sh  /usr/local/nginx/nginx-status.sh writing
UserParameter=nginx.waiting, sh  /usr/local/nginx/nginx-status.sh waiting

重启zabbix_agentd
然后在zabbix页面上,host--》131主机--》“items"选项卡,点右上方的”Create item"按钮
在页面上,name输入 nginx.active ,key输入nginx.active ,Newapplication输入 nginx,点“ADD”按钮。
依此法,添加上面的所有item:nginx.active ,nginx.accepts,nginx.handled,nginx.requests,nginx.reading,nginx.writing,nginx.waiting
再点“Graphs",把这几个item添加到同一个图形中。
在”monitor“--》Screens-->"Edit Screens"-->把这个图形添加进来就可以了。


(part2  的链接为   https://www.jianshu.com/p/9373e2b9a2b6  )

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容

  • 这个例子主要实现了类似微信的聊天界面,首先效果如图: 1.界面构造:准备两个uitableviewcell,分别是...
    hmj1993阅读 2,689评论 0 3
  • 关于本书的内容,社会学家郑也夫在序言中总结得很妙,他说:“米哈里在本书的全部研讨都是在证明幸福不是人生的主题,而是...
    马太花阅读 554评论 0 0
  • 这是春节后的第一篇博客,我在构思这篇博客的时候,一度想放弃,想想要不要换个东西写,因为毕竟个人水平有限,Sprin...
    CoderBear阅读 2,504评论 4 12