1、环境 系统为centos7.6 zabbix版本为zabbix 4.2 数据库使用的是RDS-mysql
2、在zabbix_server上安装zabbix源
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
3、重构缓存
yum clean all
yum makecache
4、安装zabbix-server和angent
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
5、初始化zabbix数据库,host、user、password、dbname填写实际的信息
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -h host -u user -p password dbname
6、修改zabbix_server配置文件 /etc/zabbix/zabbix_server.conf 中db相关信息
7、
systemctl restart zabbix-server zabbix-agent httpd
8、
systemctl enable zabbix-server zabbix-agent httpd
9、通过http://ip/zabbix访问开始配置
10、如果有PHP option "date.timezone" unknown Fail 报错 修改/etc/php.ini 将里面的;date.timezone = 改成date.timezone = Asia/Shanghai/
sed -i 's/;date.timezone =/date.timezone = Asia/Shanghai/' /etc/php.ini
查看并修改/etc/httpd/conf.d/zabbix.conf配置文件的配置
vi /etc/httpd/conf.d/zabbix.conf
1
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai //修改时区
11、
全部ok点击下一步
12、
输入DB相关信息,下一步
13、
下一步
14、
下一步
15、
点击完成
16、
登陆 默认账户名密码:admin zabbix
17、
点击小人。可以设置语言
18、
新建一个主机群组 配置-主机群组-新建主机群组
19、
新建一个主机 配置-主机-新建一个主机
至此server已经部署完成,并且server已经正常监控
20、添加agent
在agent的机器上运行
21、rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
22、yum clean all
23、yum -y install zabbix-agent
24、vim /etc/zabbix/zabbix_agentd.conf 修改配置文件里的server地址 、ServerActive=serverip Hostname=system.hostname ListenIP=本机ip
server : sed -i 's/Server=127.0.0.1/Server=172.16.196.74/' /etc/zabbix/zabbix_agentd.conf
serveractive ansible all -m shell -a "sed -i 's/ServerActive=127.0.0.1/ServerActive=172.16.196.74/' /etc/zabbix/zabbix_agentd.conf"
hostname [root@iZbp11rab6309tezha2fsqZ zabbix]# more ~/test.sh
#! /bin/bash
a=`ip a|grep 172.16|awk '{print $2}'|awk -F '/' '{print $1}'` && sed -i "s/Hostname=system.hostname/Hostname=$a/" /etc/zabbix/zabbix_agentd.conf
ansible all -m script -a "~/test.sh"
listenip
#! /bin/bash
a=`ip a|grep 172.16|awk '{print $2}'|awk -F '/' '{print $1}'` && sed -i "s/# ListenIP=0.0.0.0/ListenIP=$a/" /etc/zabbix/zabbix_agentd.conf
25、
systemctl restart zabbix-agent
26、
systemctl enable zabbix-agent
27、打开web界面新建主机将agent和server监控一样加到监控中即可
28、zabbix 监控项报sudo tty这样的报错 需要在visduo中加上zabbix ALL = NOPASSWD: ALL
二、增加钉钉和电话告警
1、增加钉钉告警,在zabbix_server服务器上的/usr/lib/zabbix/alertscripts/下添加钉钉告警脚本。脚本内容如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://oapi.dingtalk.com/robot/send?access_token=dingding机器人
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
"1xxxxxxxxxxxxx"
],
"isAtAll": False
}
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
print (text)
msg(text)
2、
打开zabbix的web监控界面点击管理-报警媒介类型-创建新的媒体类型
3、添加钉钉告警媒介类型,名称自定义,类型选择脚本,脚本名称填zabbix_server /usr/lib/zabbix/alertscripts/下的钉钉告警名称,脚本参数写告警内容,{ALERT.MESSAGE}指动作里操作中的消息内容。
4、配置用户报警媒介 管理-用户-选择用户-报警媒介
5、配置动作 ,配置-动作-创建动作
新增一个操作
至此钉钉告警完成
7、配置报警媒介类型 管理-报警媒介类型-创建媒体类型
8、配置用户 管理-用户-创建用户
9、配置动作 配置-动作-新建动作-操作-新的
至此告警添加完成,需要注意的是创建用户的时候,要给用户读写权限,zabbi_server上的脚本要有执行权限。需要给脚本中的日志文件更改成属主属组为zabbix用户
zabbix 主机自动发现
首先确保agent配置文件中的hostanme为system.hostname或者为本机ip
打开zabbix 页面 配置-动作 事件源选自动发现 -创建动作
创建自动发现
添加jvm 自动发现
首先把应用名和关键字放入tinyplatapp.txt 然后把所有脚本拷到特定目录下,接着ansible auto -m shell -a "sed -i 's/# UnsafeUserParameters=0/UnsafeUserParameters=1/' /etc/zabbix/zabbix_agentd.conf"