Showing posts with label ELK. Show all posts
Showing posts with label ELK. Show all posts
Published November 24, 2020 by with 0 comment

ELK Stack : Shipping metrics data with metricbeat


     Halo semua, pada kesempatan kali ini kami akan share tutorial tentang mengirimkan data metrics dari sebuah server menggunakan metricbeat. Metricbeat adalah beat yang sangat populer yang mengumpulkan dan melaporkan berbagai metrik tingkat sistem untuk berbagai sistem dan platform. Metricbeat juga mendukung modul internal untuk mengumpulkan statistik dari platform tertentu. Anda dapat mengonfigurasi frekuensi Metricbeat mengumpulkan metrik dan metrik spesifik apa yang akan dikumpulkan menggunakan modul dan sub-pengaturan ini yang disebut metricsets. Metric mewakili pengukuran raw penggunaan sumber daya atau perilaku yang dapat diamati dan dikumpulkan di seluruh sistem Anda. Ini mungkin ringkasan penggunaan tingkat rendah yang disediakan oleh sistem operasi, atau dapat berupa jenis data tingkat yang lebih tinggi yang terkait dengan fungsionalitas atau pekerjaan tertentu dari suatu komponen, seperti permintaan yang disajikan per detik atau keanggotaan dalam kumpulan server web. Beberapa metrik disajikan dalam kaitannya dengan kapasitas total, sementara metrik lainnya direpresentasikan sebagai tingkat yang menunjukkan "kesibukan" suatu komponen. Kurang lebih itu penjelasan yang dapat kami ambil, lebih lengkap bisa baca di sini. Untuk langkah-langkahnya sebagai berikut :

1.  Installasi metricbeat 
```bash
$ sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key 
add -
$ sudo echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo 
tee -a /etc/apt/sources.list.d/elastic-7.x.list
$ sudo apt-get update && sudo apt-get install metricbeat
```
2. Konfigurasi metricbeat
```bash
$ sudo cp /etc/metricbeat/metricbeat.yml /etc/metricbeat/metricbeat.yml.origin
$ sudo vi /etc/metricbeat/metricbeat.yml

# berikut adalah contoh untuk send metric dari system dan apache
```
```yaml
metricbeat.modules:
- module: system
  metricsets: ["cpu","memory","network"]
  enabled: true
  period: 15s
  processes: ['.*']
- module: apache
  metricsets: ["status"]
  enabled: true
  period: 5s
  hosts: ["http://10.20.21.23"]
```
```bash
# check apakah index sudah berjalan
$ sudo metricbeat modules enable system
```
3. Atur output dari metricbeat
```bash
# dikirim ke elasticsearch langsung
output.elasticsearch:
  hosts: ["10.20.21.254:9200"]

# dikirim ke logstash
output.logstash:
  hosts: ["10.20.21.254:5044"]
  
# dikirim ke kafka
output.kafka:
  hosts: ["ip_server_kafka:9092"]
  topic: "topicname"
  
# dikirim ke redis
output.redis:
  hosts: ["ip_redis_server:6379"]
  index: "redis.index.for.logstash"
  key: "metricbeat.to.redis"
```
4. Jalankan metricbeat
```bash
# check config untuk verifikasi
$ sudo metricbeat -c /etc/metricbeat/metricbeat.yml test config
$ sudo service metricbeat start
```
5. Verifikasi
```bash
$ curl -XGET '10.20.21.254:9200/_cat/indices?v&pretty'
```
Yaps, sampai jumpa di turorial berikutnya!

Read More
      edit
Published November 24, 2020 by with 0 comment

ELK Stack : Shipping logs with filebeat

 

Halo semua, pada kesempatan kali ini kami akan share tentang bagaimana client mengirimkan log ke ELK server, dengan menggunakan filebeat yang merupakan salah satu shipper yang ringan dan banyak digunakan. Untuk environment dari lab kali ini masih sama dengan environmet pada post berikut. Karen bisa dibilang, pada lab ini adalah lanjutannya. Baik, Berikut adalah langkah-langkahnya :

1. Instalasi Filebeat di Ubuntu 18.04
```bash
$ sudo apt -y update

$ sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
$ sudo apt -y install apt-transport-https
$ sudo echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
$ sudo apt -y update && apt -y install filebeat

$ sudo systemctl enable filebeat
$ sudo systemctl status filebeat
```
2. Konfigurasi pada Logstash
```bash
# pada ELK server

$ sudo vi /etc/logstash/conf.d/filter-syslog.conf

```
```json
filter {
  if [fields][log_name] == "syslog" {
    mutate {
      add_tag => [ "syslog" ]
    }
  }
}
```

```bash
$ sudo systemctl restart logstash
$ sudo systemctl status logstash
```
3. Konfigurasi Filebeat
```bash
$ sudo mv /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.original
$ sudo vi /etc/filebeat/filebeat.yml
```
```yaml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/syslog
  fields:
    log_name: syslog

output.logstash:
  hosts: ["10.20.21.254:5044"]
```
4. Aktifkan layanan filebeat
```bash
$ sudo systemctl restart filebeat
$ sudo systemctl status filebeat
```
5. Verifikasi
```bash
$ curl http://10.20.21.254:9200/_cat/indices?v
```
6. Atur dashboard
```bash
# Klik Menu Management > Elasticsearch > Index Management
# Membuat Index Pattern
# Klik Menu Management -> Kibana -> Index Patterns
# Klik Create Index Pattern
# Index Pattern Name: syslog_*
# Klik Next Step
# Time Filter field name: @timestamp
# Klik Create Index Pattern
```

Yaps, sampai jumpa di tutorial berikutnya! 

Read More
      edit
Published November 21, 2020 by with 0 comment

ELK Stack : Elasticsearch, Logstash and Kibana Installation

 

Halo semua, pada kesempatan kali ini kami akan mulai untuk tutorial dari ELK stack ini. Pada sesi kali ini akan dimulai dengan Installasi dari ELK stack, bagi yang belum paham komponen dan penjelasan tentang ELK, Bisa tengok di postingan berikut. Disana akan menjadi landasan sebelum kita melakukan praktek, agar paham apa saja komponen dan fungsinya. Oke, Sebelum masuk ke langkah-langkah percobaan, kita akan tunjukan environment dari lab kita nantinya.

 - ELK stack Server : 
|     Hostname   | pod0-elk |
| ----------- | ----------- |
| IP Adress   | 10.20.21.254|
| OS | Ubuntu 18.04 |
| Ram | 4GB |

- Client Server/ Beat
|     Hostname   | pod1-elk |
| ----------- | ----------- |
| IP Adress   | 10.20.21.253|
| OS | Ubuntu 18.04 |
| Ram | 512MB |

Pada lab ini, kami menggunaka Ubuntu 18.04, pada semua node/podnya. Tapi dalam penerapannya baik client/server dapat menggunakan sistem operasi lainya. Lengkapnya untuk support dari ELK dapat di check di sini. Jika environment sudah siap, mari kita lanjut ke langkah-langkah percobaan berikut :

Install ElasticSearch

1.  Update repository
```bash
$ sudo apt -y update
```
2.  Install dependensi
```bash
$ sudo apt -y install openjdk-8-jdk
$ java -version
```
3.  Install ElasticSeach
```bash
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
$ sudo apt -y install apt-transport-https
$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
$ sudo apt -y update && apt -y install elasticsearch
```
4.  Konfigurasi ElasticSearch
```bash
$ cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.original
$ vi /etc/elasticsearch/elasticsearch.yml
```
```yaml
# cari bagian berikut dan uncoment atau hilangkan pagar didepanya
# lalu ganti localhost dengan ipaddress dari server
network.host: 10.20.21.254
network.port: 9200
# tambahkan juga, karena jika kita runing dengan host berupa IP, 
# dianggap production jadi perlu kita set tipe discover
discovery.type: single-node
```
5.  jalankan ElasticSearch
```bash
$ sudo systemctl daemon-reload
$ sudo systemctl enable elasticsearch
$ sudo systemctl start elasticsearch
$ sudo systemctl status elasticsearch
```
6.  Verifikasi
```bash
$ netstat -tupln
$ curl -XGET 'localhost:9200/?pretty'
$ curl -XGET '10.20.21.254:9200/?pretty'
```

Install LogStash

1.  Installasi Logstash
```bash
$ sudo apt -y install logstash
```
2.  Konfigurasi Logstash
```bash
$ sudo vi /etc/logstash/conf.d/input-filebeat.conf
```
```bash
input {
  beats {
    port => 5044
  }
}
```
3.  Membuat Output dari Logstash
```bash
$ sudo vi /etc/logstash/conf.d/output-elasticsearch.conf
```
```bash
output {
  elasticsearch {
    hosts => ["10.20.21.254:9200"]
    manage_template => false
    index => "%{[fields][log_name]}_%{[agent][hostname]}_%{+YYYY.MM}"
  }
}
```
4.  Jalankan Logstash
```bash
$ sudo systemctl enable logstash
$ sudo systemctl start logstash
$ sudo systemctl status logstash
$ netstat -tupln
```

Install Kibana

1.  Installasi Kibana
```bash
$ sudo apt -y install kibana
```
2.  Konfigurasi dan integrasi dengan ElasticSearch
```bash
$ sudo cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.original
$ sudo vi /etc/kibana/kibana.yml
```
```bash
server.port: 5601
server.host: "10.20.21.254"
elasticsearch.hosts: ["http://10.20.21.254:9200"]
```
3.  Jalankan Kibana
```bash
$ sudo systemctl enable kibana
$ sudo systemctl start kibana
$ sudo systemctl status kibana
```
4.  Installasi nginx dan konfigurasi
```bash
$ sudo apt -y install nginx apache2-utils
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original
$ sudo vi /etc/nginx/sites-available/default
```
```bash
#hapus semua dan ganti seperti berikut
server {
    listen 80;

    server_name _;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.kibana;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
```
5.  Buat user dan jalankan Nginx
```bash
# ganti [username] dengan username yang akan kita gunakan
$ sudo htpasswd -c /etc/nginx/htpasswd.kibana [username]
$ sudo systemctl enable nginx
$ sudo systemctl restart nginx
$ sudo systemctl status nginx
$ netstat -tupln
```
6. Verifikasi

Coba untuk akses via browser




Yaps, diatas adalah installasi ELK stack, untuk install beat akan dibahas pada tutorial berikutnya, sampai jumpa!

Read More
      edit
Published November 21, 2020 by with 0 comment

ELK Stack : What is ELK? (ElasticSearch , Logstash , Kibana)

 

    Halo semua, pada kesempatan kali ini, kami akan share tentang salah satu tools monitoring yang banyak digunakan, yaitu ELK Stack. Stack ini menjadi kesatuan karena biasa digunakan untuk monitoring menjadi satu paket, walaupun pada aslinya berbebeda aplikasi. Dan kali ini kami akan share beberapa hal tentang hal tersebut. Elasticsearch, Logstash dan Kibana adalah tool yang berguna untuk mengumpulkan log dan juga menvisualisasi,Elasticsearch berguna untuk menyimpan semua log yang berasal dari server, Logstash merupakan sebuah perangkat lunak open source untuk mengumpulkan dan memparsing log dan juga membuat index untuk log, kemudian disimpan pada elasticsearch. Kibana adalah web interface yang berguna untuk menampilkan log baik dalam bentuk grafik maupun visualisasi lainnya. untuk file agent di perlukan filebeat yang berguna untuk mengirim log dari setiap server kepada logstash. 

    Kenapa perlu untuk memusatkan log ?. Karena, Log yang tersentralisasi sangat berguna jika suatu saat seorang DevOps akan melakukan identifikasi masalah pada server atau aplikasi. Hal tersebut membuat mereka mampu mencari histori data atau log, intinya memudahkan dalam proses monitoring dan juga troubleshooting. 

Dan berikut adalah komponen dari ELK Stack :

-  Elasticsearch : Bertugas untuk menyimpan semua log.
-  Logstash        : Bertugas untuk memproses log dan membuat index log.
-  Kibana       : Sebagai Web interface untuk mencari dan memvisualisasikan log baik dalam grafik yang di inginkan

Sedangkan untuk yang berikut adalah opsional :
- Filebeat          : Berfungsi mengirim log ke logstash. Berfungsi sebagai shipping agent untuk log. Menggunakan lumberjack networking protocol untuk berkomunikasi dengan logstash. Filebeat akan dipasang di server yang mempunyai log (yang akan diproses).

Untuk filebeat ini kenapa bersifat opsional, karena dapat digantikan dengan agent lain, karena si filebeat ini bertugas mengirimkan log dari sisi client  yang akan dimonitor. Untuk penggambarannya dapat dilihat seperti diagram berikut :

Untuk check beberapa agent yang bisa dipakai atau recomended  bisa check di sini, Untuk melihat beberapa daftar beatsnya . [source]

Yaps, sampai jumpa di postingan berikutnya!

Read More
      edit