🔥 Prometheus - Cài đặt + Grafana / CentOS 7
Post
Cancel

🔥 Prometheus - Cài đặt + Grafana / CentOS 7

Trong bài này mình sẽ hướng dẫn các bạn cài đặt Prometheus và Grafana bằng 2 cách.

Cách 01: Cài đặt Prometheus bằng Docker.

Cách 02: Cài đặt Prometheus bằng Package.

I. Cấu hình chung cho hệ thống trước khi bạn cài đặt Prometheus: 

Update linux,  sync NTP linux, disables selinux

Chạy lệnh : 

yum update -y
ntpdate 1.ro.pool.ntp.org
vim /etc/sysconfig/selinux

Change “SELINUX=enforcng” to “SELINUX=disabled”.

Save và exit file. Sau đó reboot lại server.

Cài iptables thay thế cho firewalld trên Centos 7

=> Do mình thích sử dụng iptables hơn là firewalld.

Bước 1: remove firewalld 

systemctl stop firewalld
systemctl disable firewalld
systemctl mask --now firewalld

Bước 2: Cài đặt Iptables

yum install iptables-services -y
systemctl start iptables
systemctl enable iptables

Mở các port sau: 

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT

II. Cài đặt prometheus bằng Docker

Cài đặt Docker

Link tham khảo: https://docs.docker.com/install/linux/docker-ce/centos/ 

Bước 1: Cài các gói cần thiết

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Bước 2: Cấu hình docker-ce repo

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Bước 3: Cài đặt docker-ce

sudo yum install docker-ce docker-ce-cli containerd.io
systemctl enable docker
systemctl restart docker

Check docker version

docker vesion

Cài đặt prometheus với docker

Có 2 cách:

Cách 1: Bạn có thể pull trực tiếp image về và dùng

Search Images: 

docker search prometheus

Thông tin Image trực tiếp từ trang chủ: https://hub.docker.com/u/prom 

Bước 1: Tải image về: 

docker search prometheus

Bước 2: Run docker với image mình đã pull về

docker run --restart=always --mount source=prometheus-data,target=/prometheus --mount source=prometheus-config,target=/etc/prometheus --name prometheus -d -p ip-prometheus:9090:9090 prometheus

Cách 2 (khuyến nghị): Git clone code về sau đó build image

=> Cách này có thể kiểm soát dc code

Dùng git clone để download code về local

git  clone https://github.com/prometheus/prometheus
cd prometheus/

Sử dụng Go Lang để build  file config của prometheus (binary)

make build

Edit Dockerfile -> check xem Dockerfile 

Ở đây mình check thấy đường dẫn không đúng và mình chỉnh lại cho phù hợp

1 1 [Prometheus từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Hình 01. [Monitor System từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Build Image:

docker image build -t prometheus:latest .

Run Image sau mình đã build 

docker run --restart=always --mount source=prometheus-data,target=/prometheus --mount source=prometheus-config,target=/etc/prometheus --name prometheus -d -p 9090:9090 prometheus

Check lại kết quả image đang chạy:

docker ps

2 1 [Prometheus từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Hình 02: [Monitor System từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Truy cập vào Prometheus: http://IP:9090

3 1 [Prometheus từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Hình 03: [Monitor System từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Note :

docker run:  lệnh dùng để chạy docker

–restart=always: khởi động lại image sau khi docker start lại

. tượng trưng cho thư mục hiện tại chứa Dockerfile

–mount source=prometheus-data,target=/prometheus: kỹ thuật dùng mount data tránh mất datda khi mình xóa container

Thường mình sẽ inspect image ra để xem nên mount những thư mực nào.

docker image inspect prometheus

4 1 [Prometheus từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Hình 04: [Monitor System từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

=> Nhìn hình mình sẽ cần mount Workingdir và thư mực chức file config chính.

-d -p 9090:9090: Nat port bên ngoài vào port container

Cài đặt grafana

Bước 1:  Pull image grafana về local

docker pull grafana/grafana

Bước 2: Run image grafana

docker run --restart=always -d -p 3000:3000 grafana/grafana 

=> Mình không mount thư mực vì mình check image không có gì đễ lưu

Truy cập vào Grafana: http://IP:3000

5 1 [Prometheus từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Hình 05: [Monitor System từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

=> Passwork mặt định là admin/admin, và sau đó sẽ đổi password sau lần đầu tiên đăng nhập

Bước 3: Connect Grafana tới prometheus

Chọn Configuration, sau đó chọn data source type là Prometheus

6 1 [Prometheus từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Hình 06: [Monitor System từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Nhập thông tin của prometheus, sau đó save lại.

7 1 [Prometheus từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Hình 07: [Monitor System từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

=> Như vậy chúng ta đã hoàn thành việc kết nối giữa Grafana và Prometheus

II. Cài đặt Prometheus bằng Package

Cài đặt prometheus

Download here: https://prometheus.io/download/

wget https://github.com/prometheus/prometheus/releases/download/v2.10.0/prometheus-2.10.0.linux-amd64.tar.gz
tar -xvzf prometheus-2.10.0.linux-amd64.tar.gz
mv prometheus-2.10.0.linux-amd64 /usr/local/prometheus/

Tạo service prometheus trong systemd

vim /etc/systemd/system/prometheus.service

Nội dung file là:

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file /usr/local/prometheus/prometheus.yml \
--storage.tsdb.path /usr/local/prometheus/ \
--web.console.templates=/usr/local/prometheus/consoles \
--web.console.libraries=/usr/local/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

Restart và enable services.

systemctl daemon-reload
systemctl start prometheus
systemctl status prometheus

Cài đặt Grafana

https://grafana.com/grafana/download

wget https://dl.grafana.com/oss/release/grafana-6.2.1-1.x86_64.rpm
sudo yum localinstall grafana-6.2.1-1.x86_64.rpm
sudo service grafana-server start
sudo /sbin/chkconfig --add grafana-server
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
sudo systemctl enable grafana-server.service

Truy cập vào Grafana: http://IP:3000

5 1 [Prometheus từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Hình 08: [Monitor System từ A đến Z] Phần 01. Cài đặt Prometheus và Grafana trên CentOS 7

Sau bài này mình sẽ tiếp tục hướng dẫn mọi người đưa các thiết bị vào để monitor. Ví dụ như Server Windows, Server Linux và monitor những thiết bị mạng qua snmp.

Tất cả bài viết về prometheus tại đây.

Giới thiệu về giải pháp giám sát hệ thống Prometheus và Grafana

Phần 01 – Cài đặt Prometheus và Grafana trên Centos 07

Phần 02 – Giám sát Windows Server với Prometheus

Phần 03 – Giám sát firewall Fortigate với Prometheus

Phần 04 – Giám sát thiết bị mạng Cisco với Prometheus

Phần 05 – Giám sát firewall Pfsense và Linux Server với Prometheus

Phần 06 – Giám sát VMWARE với Prometheus

Phần 07 –  Cấu hình alert trong Prometheus và gửi tin nhắn qua telegram

Credit: Itforvn.com

This post is licensed under CC BY 4.0 by the author.