您的位置:首页 > 运维架构

zabbix监控超详细搭建过程

2018-01-12 10:14 946 查看
监控及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检查
<
e0de
/p> 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
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: