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