zabbix安装配置及使用

 

搭建zabbix前准备(zabbix服务器ip:192.168.1.191;客户端:192.168.1.105)

1).需要连接外网一定要关防火墙

2).需要更新yum,纯净版的yum源需要更新,步骤如下:

更换yum源,将原有源删除或备份到别的目下下:

    #cd /etc/yum.repos.d/

    #wget  http://mirrors.163.com/.help/CentOS6-Base-163.repo

   #vi CentOS6-Base-163.repo

    编辑文件,把文件里面的$releasever全部替换为版本号:6(注意,不是6.5!)最后保存!

   :%s/$releasever/6/g

清除原有缓存,重建缓存:

#yum clean all

#yum makecache

更新系统:

#yum update

  1. Zabix监控服务器搭建过程
  1. 客户端服务器为lnmp
  2. zabix官方文档:

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

  1. 安装zabbix(安装过程需要虚拟机联网)

注意:zabbix-agent 部署在被监控机上面,zabbix-server 建议部署在另外一台主机上,zabbix-agent 会发送数据到zabbix-server 或者zabbix-server 主动索取数据,zabbix-server 将获取的数据存在mysql 数据库中(或者其他的数据库),web 从server上获取数据,然后显示给用户。

安装php:yum install -y php*

安装mysql mysql-server:yum install -y mysql mysql-server

安装http(或nginx)

安装zabbix’

[root@localhost iftop-0.17]# cd /tmp

[root@localhost tmp]# rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

[root@localhost tmp]# 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@localhost tmp]# ll /etc/yum.repos.d/zabbix.repo

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

安装过程中保留zabbix包:

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

[root@localhost tmp]# grep keepcache /etc/yum.conf

keepcache=0

2.1需先安装php、mysql、http(nginx)服务

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客户端与服务端

  1. 配置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.8/create

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

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

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

上面密码输入zabbix

[root@linux-node1 create]# mysqladmin -u root 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(可用vim修改成php_value date.timezone Asia/Shanghai)

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@localhost create]# service mysqld restart

停止 mysqld:                                        [确定]

[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

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

5).web监控界面安装

https://images2015.cnblogs.com/blog/997304/201609/997304-20160907120002160-995632603.png

https://images2015.cnblogs.com/blog/997304/201609/997304-20160907120056894-64412784.png

https://images2015.cnblogs.com/blog/997304/201609/997304-20160907120132176-1506937743.png

https://images2015.cnblogs.com/blog/997304/201609/997304-20160907120205004-877399924.png

以上创建了一个配置文件,然后如果写错就可以去配置文件修改。

登录Admin/zabbix,进入后改密码。

https://images2015.cnblogs.com/blog/997304/201609/997304-20160907120332410-1880031461.png

默认登陆用户及登陆密码为:Admin:zabbix

https://images2015.cnblogs.com/blog/997304/201609/997304-20160907120448269-155790396.png

 

 

  1. 安装zibbix客户端(客户端安装)

rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

yum install zabbix-agent -y

vim /etc/zabbix/zabbix_agentd.conf

Server= 192.168.1.191 (服务端ip) 

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

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

LogFileSize=0

Server= 192.168.1.191 (服务端ip)

ServerActive=127.0.0.1 

Hostname=Zabbix server 

/etc/init.d/zabbix-agentd start

1).添加zabbix主机组和主机

添加组demo

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908102458566-1892658794.png

创建组内主机

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908102532644-338912894.png

 

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908102619598-1840661904.png

 

2).创建用户和组

组和用户必须添加,zabbix报警是针对用户和用户组的。

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

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908102710207-2019693363.png

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

(192.168.1.191/zabbix/popup_media.php?dstfrm=userForm)

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

3)添加项目及触发器

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

vim /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 192.168.1.105 -k login-user

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

3、web界面添加

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

 

4.添加触发器

 

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908102953191-553697150.png

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

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908103025988-993975168.png

 

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908102826066-1932785500.jpg

 

5.创建图形

 

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908103145707-1004554217.png

 

6. 设置报警

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908103234598-1514764395.png

 

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908103300723-89123688.png

7.服务器自定义报警类型

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

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

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

之后写相应脚本login.sh

脚本要支持三个参数

$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

8. 添加媒介类型

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908103404457-1592292969.png

 

设置相应动作:

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908103502394-648768245.png

 

为用户配置示警媒介

 

 

8.简单自定义脚本模板

客户端:
[root@lb-node2 zabbix]# mkdir /etc/zabbix/zabbix_agentd.conf.d 
[root@lb-node2 zabbix]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.d/zabbix-linux-plugin.conf 
[root@lb-node2 zabbix]#创建/etc/zabbix/zabbix_linux_plugin.sh(内容在最最下面)
UserParameter=linux_status[*],/etc/zabbix/zabbix_linux_plugin.sh "$1" "$2" "$3"  #写在/etc/zabbix/zabbix_agentd.conf中

服务器:zabbix_get -s 192.168.1.105 -p 10050 -k linux_status[tcp_status]

 

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908103720269-1893697496.png

9.web监控

Web监控主要是和针对主机

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908103755238-1749432177.jpg

 

 

4). 分布式监控、客户端主动模式

4.1客户端被动模式

修改客户端:

Vim /etc/zabbix/zabbix_agentd.conf  

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

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

LogFileSize=0

StartAgents=3

Server= 192.168.1.191 服务器ip

ServerActive=127.0.0.1

Hostname=Zabbix server

 4.2客户端主动模式

客户端:# vim  /etc/zabbix/zabbix_agentd.conf

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

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

LogFileSize=0

StartAgents=0

ServerActive=192.168.1.191

Hostname=linux-node2.example.com

Include=/etc/zabbix/zabbix_agentd.d/

# /etc/init.d/zabbix-agent restart

(报错可能是文件中Include=/etc/zabbix/zabbix_agentd.d/

重复出现)

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

4.3zabbix分布式

客户端安装zabbix-proxy:

# yum install -y zabbix-proxy zabbix-proxy-mysql mysql-server

配置分布式

# 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.8

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

/usr/share/doc/zabbix-agent-2.4.8/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.8

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

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

客户端数据库配置

# /etc/init.d/mysqld start

mysql -u root -p

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.8/create/schema.sql;

Query OK, 0 rows affected (0.02 sec)

配置文件配置

# vim  /etc/zabbix/zabbix_proxy.conf

ProxyMode=0   #0主动,1被动

Server=192.168.1.191   #主动模式设置服务器ip

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

# /etc/init.d/zabbix-proxy start

Starting Zabbix proxy:                                     [确定]

# lsof -i:10051

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

之后添加主机(选上代理即可,选客户端主机即可),要监控的机器/etc/zabbix/zabbix_agent.conf配置文件ip改成代理的ip(192.168.1.191),服务多重启几次,先stop再start

4.4自动化监控

客户端:zabbix-agent自动注册(使用proxy)

vim  /etc/zabbix/zabbix_agentd.conf

HostMetadataItem=system.uname

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

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

LogFileSize=0

StartAgents=0

ServerActive=192.168.1.191  #此时为代理的服务器ip

Hostname=linux-node2.example.com

Include=/etc/zabbix/zabbix_agentd.d/

组态-动作-事件源选择自动注册-创建动作:

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908104210863-326944860.png

 

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

客户端:

vim  /etc/zabbix/zabbix_agentd.conf

 

组态-探索--使用默认

https://images2015.cnblogs.com/blog/997304/201609/997304-20160908104411754-807087800.png

之后创建动作,事件源选探索,其他同上。

5)使用zabbix-api

手册帮助:https://www.zabbix.com/documentation/2.4/manual/api/reference

服务器端编辑:# /usr/share/zabbix/api_jsonrpc.php

获取验证

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

{

    "jsonrpc": "2.0",

    "method": "user.login",

    "params": {

        "user": "Admin",

        "password": "123456"

    },

    "id": 1

}' http://192.168.1.191/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://images2015.cnblogs.com/blog/997304/201609/997304-20160908104506832-1220196942.jpg

 

以下为添加主机实例:

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

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:// 192.168.6.134/zabbix/api_jsonrpc.php | python -mjson.tool

 

/etc/zabbix/zabbix_linux_plugin.sh内容:

# cat zabbix_linux_plugin.sh

#!/bin/bash

############################################################

# $Name:         zabbix_linux_plugins.sh

# $Version:      v1.0

# $Function:     zabbix plugins

# $Create Date:  2014-08-10

# $Description:  Monitor Linux Service Status

############################################################

tcp_status_fun(){

    TCP_STAT=$1

    ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > /tmp/netstat.tmp

    TCP_STAT_VALUE=$(grep "$TCP_STAT" /tmp/netstat.tmp | cut -d ' ' -f2)

    if [ -z "$TCP_STAT_VALUE" ];then

        TCP_STAT_VALUE=0

    fi

    echo $TCP_STAT_VALUE

}

 

main(){

    case $1 in

        tcp_status)

            tcp_status_fun $2;

        ;;

        *)

            echo $"Usage: $0 {tcp_status key}"

    esac

}

main $1 $2 $3

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值