Zabbix监控自动化(Zabbix Mnitoring Automation)

发布于:2025-03-20 ⋅ 阅读:(18) ⋅ 点赞:(0)

​​​​​​zabbix监控自动化

1、自动化监控(网络发现与自动注册只能用其一)

1.1 ansible安装zabbix agent

新采购100台服务器:

1、安装操作系统

2、初始化操作系统

3、安装zabbix agent

1.手动部暑

2.脚本部暑(shell expect)

3.ansible

4、纳入监控

1.A机房,B机房

2.模板

3.主机

1.1.1 ansible安装zabbix agent

# cat hosts

[webservers]

192.168.0.16

# cat zabbix_agent.yml

---

- hosts: webservers

  vars:

  - zabbix_server: 192.168.0.13

  tasks:

    - name: Install zabbix agent - CentOS6

      yum: name=https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-agent-4.0.0-2.el6.x86_64.rpm state=present

      when: ansible_distribution == "CentOS" and ansible_distribution_major_version == "6"

    - name: Install zabbix agent - CentOS7

      yum: name=https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm state=present

      when: ansible_distribution == "CentOS" and ansible_distribution_major_version == "7"

    - name: Copy zabbix agent configuration file

      template: src=zabbix_agentd.conf.j2 dest=/etc/zabbix/zabbix_agentd.conf

    - name: Start zabbix agent

      service: name=zabbix-agent state=started enabled=true

# cat zabbix_agentd.conf.j2

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

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

DebugLevel=3

Server={{ zabbix_server }}

ListenPort=10050

ListenIP={{ ansible_default_ipv4.address }}

ServerActive={{ zabbix_server }}

Hostname={{ ansible_default_ipv4.address }} 

Include=/etc/zabbix/zabbix_agentd.d/*.conf

#监控tcp连接

UserParameter=tcp.status[*],ss -antp |awk '{a[$$1]++}END{print a["$1"]}'

#异常IP登录

UserParameter=check.ssh, who | grep -v 192.168.5.101 | wc -l

#异常用户登录

UserParameter=check.user, who | grep -v root | wc -l

#密码尝试失败次数

UserParameter=check.fail, grep "Failed password" /var/log/secure | wc -l

#检查用户数量

UserParameter=get_user_num,wc -l /etc/passwd | awk '{print $1}'

#可以登陆的用户

UserParameter=get_login_users,awk -F":" '$7=="/bin/bash"{j++}END{print j}' /etc/passwd

#不可以登陆的用户

UserParameter=get_nologin_users,awk -F":" '$7!="/bin/bash"{i++}END{print i}' /etc/passwd

# ansible-playbook -i hosts zabbix_agent.yml -k

1.2 网络发现

# ntpdate time.windows.com  #同步一下时间

动作:

1.3 自动注册

ServerActive=192.168.0.13  #zabbix agent配置文件

HostMetadataItem=system.uname

2、zabbix agentd一键部暑脚本

#!/bin/bash

# author: old driver

# date: 2019-04-01

# 安装依赖包

yum install -y libxml2-devel libcurl-devel libevent-devel net-snmp-devel gcc gcc-c++

# 安装zabbix agentd

groupadd zabbix

useradd -g zabbix zabbix -s /sbin/nologin

cd /opt && tar -xzf zabbix-4.0.0.tar.gz

cd zabbix-4.0.0

./configure --prefix=/usr/local/zabbix --enable-agent

make && make install

# 修改配置文件 

rm -rf /usr/local/zabbix/etc/zabbix_agentd.conf

# zabbix agentd主动模式

cat > /usr/local/zabbix/etc/zabbix_agentd.conf  <     <EOF< span>      </EOF<>

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

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

DebugLevel=3

ListenPort=10050

ListenIP=172.23.101.101

StartAgents=0

ServerActive=172.23.101.207   #zabbix server

Hostname=172.23.101.101

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

#UserParameter

EOF

# 开机启动

cp /opt/zabbix-4.0.0/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/

mkdir -p /var/log/zabbix

mkdir -p /var/run/zabbix

chown zabbix:zabbix /var/log/zabbix

chown zabbix:zabbix /var/run/zabbix

ln -s /usr/local/zabbix/bin/* /usr/bin/

ln -s /usr/local/zabbix/sbin/* /usr/sbin/

cp /opt/zabbix-4.0.0/misc/init.d/fedora/core/zabbix_* /etc/init.d/

chmod 755 /etc/init.d/zabbix_*

sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd

#启动zabbix_agentd

/etc/init.d/zabbix_agentd  start

/etc/init.d/zabbix_agentd  stop

systemctl start zabbix_agentd

ps -ef |grep zabbix

3、ansible安装zabbix agent

方法一:

# cat zabbix_agent.yaml

---

- hosts: all

  vars:

  - zabbix_server: 10.213.94.202

  tasks:

    - name: Add zabbix repo

      yum_repository:

        name: zabbix

        description: zabbix repo

        baseurl: http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/

        gpgcheck: no

        enabled: 1

    - name: Install zabbix agent

      yum: name=zabbix-agent state=present

    - name: Copy zabbix agent configuration file

      template: src=zabbix_agentd.conf.j2 dest=/etc/zabbix/zabbix_agentd.conf

    - name: Start zabbix agent

      service: name=zabbix-agent state=started enabled=true

# cat zabbix_agentd.conf.j2

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

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

DebugLevel=3

Server={{ zabbix_server }}

ListenPort=10050

ListenIP={{ ansible_default_ipv4.address }}

ServerActive={{ zabbix_server }}

Hostname={{ ansible_default_ipv4.address }} 

Include=/etc/zabbix/zabbix_agentd.d/*.conf

# UserParameter=

安装:

# ansible-playbook zabbix_agent.yaml

方法二:

# cat zabbix_agent.yaml 

- hosts: zabbix_agent

  remote_user: root

  tasks:

  - name: install zabbix_agent packages

    yum: name={{ item }} state=latest

    with_items:

    - curl-devel

  - name: copy install_shell to clien

    copy: src=/etc/ansible/zabbix_agent.sh dest=/usr/local/src/zabbix_agent.sh

  - name: sent tar

    copy: src=/usr/local/src/zabbix-4.2.6.tar.gz dest=/usr/local/src/zabbix-4.2.6.tar.gz

    notify: install shell

  handlers: 

  - name: install shell

shell: /bin/bash /usr/local/src/zabbix_agent.sh

# cat zabbix_agent.sh 

#!/bin/bash

useradd zabbix -s /sbin/nologin

cd /usr/local/src

tar -xf zabbix-4.2.6.tar.gz

cd zabbix-4.2.6

./configure --with-net-snmp --with-libcurl --enable-agent --prefix=/usr/local/zabbix

make && make install

cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

chmod 700 /etc/init.d/zabbix_agentd

sed -i  's\ZABBIX_BIN="/usr/local/sbin/zabbix_agentd\ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd\g' /etc/init.d/zabbix_agentd

sed -i  's\Server=127.0.0.1\Server=192.168.15.11\g' /usr/local/zabbix/etc/zabbix_agentd.conf

/etc/init.d/zabbix_agentd start

chkconfig zabbix_agentd on

安装:

# ansible-playbook zabbix_agent.yaml